Dietcubeの使い方メモ

Dietcube(のスケルトンプロジェクト)を触って、個人的に躓いたり気を付けたところをメモしておきます。 ※普段PHPフレームワークをあまり触らないので、Dietcube特有というよりPHPのクラスとか普遍的な内容も一部含みます。また、過去の記事と一部内容が重複しますがご容赦を。
  • ディレクトリ構造
    • ディレクトリ構造と名前については以下のように解釈しました
      • Controller/: C
      • Service/: M、ないしビジネスロジック
      • template/: V
  • 設定パラメータ
    • Twigでconfig.phpの内容を参照したい
      • configという変数がtemplate/の中に渡されているのでTwigで{{ config.hoge }}と記述して参照可
  • Twig
    • 基本的にpiyo.html.twigというファイル名の模様
  • サービス、DI
    • 以下の記述により実現
      • Application.phpuseを使って名前空間指定
      • $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が消えるので注意
  • ルーティング
    • Route.phpで指定
      • 配列$routeに配列を追加することでルーティング追加可
        • 第一引数: HTTPメソッド
        • 第二引数: URI
        • 第三引数: コントローラクラスのメソッド
  • デプロイ
触ってて気付いた点はざっとこのくらいでしょうか。

参考

過去記事

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。