- ディレクトリ構造
- ディレクトリ構造と名前については以下のように解釈しました
Controller/: CService/: M、ないしビジネスロジックtemplate/: V
- ディレクトリ構造と名前については以下のように解釈しました
- 設定パラメータ
- Twigで
config.phpの内容を参照したいconfigという変数がtemplate/の中に渡されているのでTwigで{{ config.hoge }}と記述して参照可
- Twigで
- Twig
- 基本的に
piyo.html.twigというファイル名の模様
- 基本的に
- サービス、DI
- 以下の記述により実現
Application.phpでuseを使って名前空間指定$container['SERVICE_NAME']の中でService/の中で定義したクラスのインスタンス生成して戻り値に指定Controller/の中で$this->get('SERVICE_NAME')してインスタンスを取得、処理実行
- 以下の記述により実現
- コントローラ
- 基本的にDietcube本体の
Controllerクラスを継承してHogeControllerを作成→Hogeというクラスで認識されるRoute.phpの$routeに追加する配列は、第三引数にHogeを使用できる(実際はメソッド指定なのでHoge::fugaのような形になる)- 名前や「Controller」のスペルをtypoると認識してくれないので注意
- Dietcube本体の
Controllerクラスを継承するので、メソッド等はdietcube/Controller.php at master · mercari/dietcubeを参照- HTTPステータスコードをセットする場合は
$response = $this->getResponse();でResponseインスタンスを取得した後$response->setStatusCode(STATUS_CODE);でセットできる $this->renderでTwigによるレンダリング実行。第一引数にTwigのテンプレートの名前(piyo.html.twigならばpiyo)を指定、第二引数に配列でパラメータを渡すことができる- 迂闊に
__constructを独自コンストラクタに上書きすると$containerが消えるので注意
- HTTPステータスコードをセットする場合は
- 基本的にDietcube本体の
- ルーティング
Route.phpで指定- 配列
$routeに配列を追加することでルーティング追加可- 第一引数: HTTPメソッド
- 第二引数: URI
- 第三引数: コントローラクラスのメソッド
- 配列
- デプロイ
- 基本的に
webrootをルートディレクトリにして、app/やvendor/は遡れない場所にする
- 基本的に
参考
- Dietcube
- DI
- (Symfony)イベントディスパッチャー