CodeIgniterでCRUDアプリを作ってみよう!基本構成から完成まで
生徒
PHPのフレームワークであるCodeIgniterを使って、自分でWebアプリを作ってみたいです。まずは何から始めればいいですか?
先生
素晴らしい挑戦ですね。まずはアプリの基本であるCRUD(クラッド)という概念を理解することから始めましょう。
生徒
CRUDとは何ですか?パソコン初心者でもわかるように教えてください。
先生
CRUDとは、データの作成、読み取り、更新、削除という4つの基本操作のことです。仕組みを順を追って解説しますね。
1. CodeIgniterとCRUDの基本概念
PHPのフレームワークであるCodeIgniter(コードイグナイター)は、Webアプリケーションを効率よく開発するための道具箱のようなものです。初心者にも扱いやすく、高速に動作することが特徴です。Web開発において最も重要な機能がCRUD(クラッド)です。
CRUDは以下の言葉の頭文字をとったものです。
- Create(作成):新しいデータを保存する
- Read(読み取り):保存されたデータを表示する
- Update(更新):既存のデータを書き換える
- Delete(削除):不要なデータを消去する
この4つの操作をマスターすれば、掲示板やTODOリストなど、あらゆるWebサービスを作るための基礎が身につきます。パソコンのファイル操作を想像してみてください。新しいファイルを作り、中身を読み、修正して、不要になったら捨てる、これと同じことをプログラムで行うのがCRUDです。
2. MVCモデルという考え方
CodeIgniterではMVCモデルという設計手法を使います。これは役割を3つに分けることで、プログラムを整理整頓する仕組みです。初心者には少し難しく感じるかもしれませんが、部屋の片付けに例えると簡単です。
- Model(モデル):データの管理係。データベースとのやり取りを担当します。
- View(ビュー):見た目の係。ユーザーが見る画面のデザインを担当します。
- Controller(コントローラー):司令塔。モデルとビューに指示を出し、全体の流れを調整します。
この3つの役割を分けることで、プログラムが長くなっても修正しやすくなり、誰が見ても分かりやすいコードを書くことができます。まずはこの「役割分担」という概念を意識してみましょう。
3. データベースの設定と接続
CRUDアプリを作るには、情報を保存する場所が必要です。ここで使うのがデータベースです。データベースとは、情報を整理して保存しておく巨大な本棚のようなものです。CodeIgniterからデータベースに接続するには、設定ファイルであるdatabase.phpを編集します。
初心者の方は、まずローカル環境でMySQLというデータベースソフトを使うのが一般的です。以下のような設定を環境に合わせて記述します。
$db['default'] = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'my_app_db',
'dbdriver' => 'mysqli',
);
ここで重要なのは、ホスト名、ユーザー名、パスワードを間違えないことです。設定が完了すれば、プログラムから自由自在にデータを出し入れできるようになります。プログラミングにおいて、この「環境構築」や「接続設定」は最初の大きな関門ですが、一度成功すれば次からはスムーズに進めることができます。
4. データを保存するCreate処理
それでは、実際にユーザーから入力された情報を受け取り、データベースに保存するCreate処理を見ていきましょう。画面から入力されたデータは、コントローラーを経由してモデルへと渡されます。コードでは以下のように記述します。
public function create_data() {
$data = array(
'title' => $this->input->post('title'),
'content' => $this->input->post('content')
);
$this->db->insert('tasks', $data);
}
$this->input->postは、HTMLのフォームから送信されたデータを受け取るためのコマンドです。そして$this->db->insertでデータベースのテーブルに情報を書き込みます。初心者の方は、まずこの「送信されたデータを受け取ってデータベースに入れる」という一連の流れを何度も練習して、感覚を掴むことが大切です。
5. データを表示するRead処理
保存したデータを画面に表示するのがReadの役割です。データベースからデータを取り出し、ビュー(画面)に渡すコードをコントローラーに書きます。Web開発において、データを取り出す操作をクエリと呼ぶこともあります。これはデータベースに対する「問い合わせ」という意味です。
public function show_list() {
$query = $this->db->get('tasks');
$data['tasks'] = $query->result();
$this->load->view('task_list', $data);
}
$this->db->get('tasks')は、指定したテーブルの全データを取得する命令です。これによって、データベースの中に何が入っているのかをリスト形式で画面に出すことができます。これがWebアプリの基本となる「情報の表示」です。もしデータが空であれば画面には何も出ませんが、テストデータを入れることで動作を確認できます。
6. フォームとビューの連携
最後に、ユーザーが入力を行う画面を作るためのHTMLについて解説します。CodeIgniterではビューファイルの中にHTMLを書きますが、Bootstrapなどのフレームワークを使うと、初心者でもきれいなデザインの画面をすぐに作れます。以下は投稿フォームの簡単な例です。
<form method="post" action="/tasks/create">
<input type="text" name="title" placeholder="タイトルを入力">
<textarea name="content" placeholder="内容を入力"></textarea>
<button type="submit" class="btn btn-primary">保存する</button>
</form>
このフォームにあるname属性は、コントローラー側でデータを受け取るための「荷札」のようなものです。placeholderは、入力欄が空の時にヒントを表示してくれる便利な機能です。このように、HTMLで画面を作り、PHPで裏側の処理を組み立てることで、初めてのアプリケーションが完成に近づきます。小さなボタン一つからでも、実際に動くものを作っていくプロセスは、プログラミング学習において非常に重要です。