PHPのSlimでMVCを実装してみる

■ 目次

  1. 概要
  2. MVCについて
  3. 準備
  4. MVCの流れ

■ 概要

PHPのSlimフレームワークを試してみるの続き
PHPのSlimフレームワークでMVCを実現させてみる

ソースコードはこちら:tomsato/slim-sample

本サンプルではSlim-Skeletonでスケルトンを作成してから以下の変更を行っている

  • DI・DIコンテナの削除 (初学者の人には敷居が高いため)
  • テンプレートエンジンとしてTwigを採用
  • MVC対応

■ MVCについて

FuelPHPでMVCについて調べつつ簡単に実装してみる
以前の記事でMVCについてはまとめているので全く同じことを書く

概要図
mvc02

※ 上記の図では例として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の流れ

画面が表示されるまでの流れ

  1. public/index.php
    • conf/settings.phpやconf/routes.phpなどの設定ファイル類を読み込む
  2. conf/routes.php
    • ルーティングの設定をする
    • /hoge/testのアクセスの場合はsrc/Controller/SampleApp.phpのSampleAppクラスのindex関数を実行する
  3. src/Controller/SampleApp.php (SampleAppクラスのindex関数)
    • Modelからデータを取得する
      • src/Model/SampleModel.phpのSampleModelクラスのgetStr関数から文字列を取得する
    • Viewで画面描画を行う
      • PHPのテンプレートエンジンであるTwigを使っている
      • テンプレートファイルとしてsrc/View/test.twigを読んでいる

Controllerの中でModelからデータを引いてViewに渡して画面表示するという流れは抑えている


Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です