概要
PHPのSlimフレームワークを試してみるの続き
PHPのSlimフレームワークでMVCを実現させてみる
ソースコードはこちら:tomsato/slim-sample
本サンプルではSlim-Skeletonでスケルトンを作成してから以下の変更を行っている
- DI・DIコンテナの削除 (初学者の人には敷居が高いため)
- テンプレートエンジンとしてTwigを採用
- MVC対応
MVCについて
FuelPHPでMVCについて調べつつ簡単に実装してみる
以前の記事でMVCについてはまとめているので全く同じことを書く
概要図
※ 上記の図では例としてModelはデータベースからデータを引いていますがもちろんデータベース以外からもデータをひくことがあります
MVCはM(Model)・V(View)・C(Controller)の略です
Modelがデータ取得などデータを扱ってViewが表示部分を担当します
ControllerがModelとViewの架け橋となって処理を行います
メリットとしては「機能分離」と「再利用性」があります
機能分離
機能毎の分離が明確になるのでそれぞれの機能を独立して考えて開発することができる
得意分野の実装に集中ができる
再利用性
コンポーネント間の依存が最小限に抑えられているので他の部分の影響を受けにくい
コンポーネントを再利用できる
準備
基本的なインストール方法などはPHPのSlimフレームワークを試してみるに記述しているのでそっちを参考にする
$ git clone git@github.com:tomsato/slim-sample.git $ cd slim-sample/ $ composer install
アプリケーションを動かす
$ sudo composer start > php -S 0.0.0.0:80 -t public public/index.php
http://{ipアドレス}/hoge/testにアクセスして「Home testtttt.」と表示されることを確認する
(表示内容が適当過ぎてすみません)
テスト実行方法
$ sudo composer test > phpunit PHPUnit 5.5.5 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 50 ms, Memory: 6.00MB OK (1 test, 2 assertions)
MVCの流れ
画面が表示されるまでの流れ
- public/index.php
- conf/settings.phpやconf/routes.phpなどの設定ファイル類を読み込む
- conf/routes.php
- ルーティングの設定をする
- /hoge/testのアクセスの場合はsrc/Controller/SampleApp.phpのSampleAppクラスのindex関数を実行する
- src/Controller/SampleApp.php (SampleAppクラスのindex関数)
- Modelからデータを取得する
- src/Model/SampleModel.phpのSampleModelクラスのgetStr関数から文字列を取得する
- Viewで画面描画を行う
- PHPのテンプレートエンジンであるTwigを使っている
- テンプレートファイルとしてsrc/View/test.twigを読んでいる
- Modelからデータを取得する
Controllerの中でModelからデータを引いてViewに渡して画面表示するという流れは抑えている
コメントを書く
コメント一覧