CodeIgniterのMVC設計とは?初心者向けディレクトリ構成と仕組みを解説
生徒
PHPフレームワークのCodeIgniterを使いたいのですが、ファイルが多すぎてどこに何を書けばいいのかわかりません。
先生
最初は戸惑いますよね。CodeIgniterはMVCという設計方針を採用しています。これを理解すると、整理整頓されたきれいなプログラムが書けるようになりますよ。
生徒
MVCとは何ですか?詳しく教えてください。
先生
それでは、Web開発の基本となるMVC設計と、CodeIgniterでのディレクトリ構成について一緒に見ていきましょう!
1. MVC設計とは何か?役割分担の仕組み
MVCとは、プログラムを3つの役割に分けて管理する設計手法のことです。M(Model)、V(View)、C(Controller)の頭文字をとったものです。なぜ役割を分けるのかというと、役割ごとにコードを整理することで、後から修正しやすくなったり、他の人と協力して開発しやすくなったりするからです。料理店に例えると、Mは「食材を管理する倉庫番」、Vは「完成した料理をお客様に出す接客担当」、Cは「注文を聞いて料理人に指示を出すホールスタッフ」のようなものです。
2. Model(モデル)の役割とディレクトリ
モデルは、データを扱う専門家です。データベースへの接続や、情報の保存、更新、削除を行う場所です。データベースとは、Webサイト上のブログ記事やユーザー情報などを保存しておく箱のようなものです。モデルに処理を書いておけば、他の場所から同じデータを簡単に呼び出すことができます。CodeIgniterでは、app/Modelsというディレクトリに配置します。
namespace App\Models;
use CodeIgniter\Model;
class BlogModel extends Model {
protected $table = 'blogs';
}
3. View(ビュー)の役割と画面表示
ビューは、画面に表示される部分を担当します。HTMLやCSSを使って、ユーザーが目にするページのデザインを作ります。複雑なプログラム計算はここには書かず、あくまで見た目を整えることに集中します。ユーザーがアクセスしたときに「何を表示するか」を準備する場所です。CodeIgniterでは、app/ViewsというディレクトリにHTMLファイルを置きます。
<html>
<body>
<h1>私のブログへようこそ</h1>
<p>初めてのプログラミング記事です。</p>
</body>
</html>
4. Controller(コントローラー)の交通整理
コントローラーは、アプリケーション全体の司令塔です。ユーザーからのリクエスト(ページを開くなど)を受け取り、モデルからデータを取得して、ビューに渡して表示させるという一連の処理の流れを作ります。例えば、ブログのタイトルを表示したいとき、コントローラーは「モデル君、記事データを取ってきて!」「ビュー君、そのデータを使ってページを作って!」と指示を出す役割です。app/Controllersディレクトリに配置します。
namespace App\Controllers;
class Home extends BaseController {
public function index() {
return view('welcome_message');
}
}
5. CodeIgniterのディレクトリ構成の全体像
CodeIgniterをインストールすると、フォルダがたくさん生成されますが、最初は以下の主要な場所だけ覚えれば大丈夫です。appというフォルダの中に、先ほどのMVCのファイルが入ります。フレームワークとは、Web開発でよく使う機能が最初からまとめられている枠組みのことです。この構成を守ることで、開発効率が劇的に向上し、プログラムが壊れにくくなります。
- app/Controllers: コントローラーを保存
- app/Models: モデルを保存
- app/Views: ビューを保存
- public: ブラウザから直接アクセスされる場所
6. ルーティングの設定方法
ルーティングとは、URLとコントローラーを紐付ける設定のことです。どのURLにアクセスしたら、どのコントローラーのどの処理が動くかを決定します。例えば、サイトのトップページにアクセスしたときに、どのファイルを読み込むかはapp/Config/Routes.phpというファイルで決まります。これがわかると、WebサイトのURLを自由に決めることができます。
$routes->get('/', 'Home::index');
$routes->get('/blog', 'Blog::index');
7. MVCを使うメリットと開発の流れ
MVC設計を意識すると、例えば「見た目を変えたいときはViewだけ変えればいい」「保存の仕方を変えたいときはModelだけ変えればいい」というふうに、修正がとても楽になります。パソコンの操作に慣れていない初心者の方でも、ファイルごとに役割が分かれているため、どこに何を書けばいいのかが明白になります。この規約(ルール)に従うことが、プログラミング学習における最初の大切なステップです。