- ディレクトリ構造
- ディレクトリ構造と名前については以下のように解釈しました
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)イベントディスパッチャー