【CakePHP】ドットインストールのレッスンを理解する

先日ドットインストールのレッスン「CakePHP2入門」を一通りやってみたのですが、
感想としては「なるほど、わからん。」といった感じでした。

 

ドットインストールのレッスンは非常にわかりやすく、私もここ最近大変お世話になっていたのですが、
今回のレッスンは「ざっくり流れを学ぶ」ような側面が強く、ソースコード
「今はここの意味がよくわからないかもしれませんが、とりあえず書いてみてください」と天下り的に教えられることが多かったように思います。
頭の悪い人な私は最後まで数多くの疑問点が残ったままだったので(笑)、CakePHP公式のチュートリアルを見ながらもう少し詳細に学んでみることにしました。
内容は「記事の投稿・編集・削除ができるブログサイトを作ってみよう!」というものでした。

なんとまあ、ドットインストールのレッスンはここを参考に作られてたみたいですね。
けっこー長い文章ですが、語り口が妙に軽快なのもあって割りと楽しく読めました。

 

今回は、命名規則に関することをまとめていきます。

 

命名規則の謎
レッスンの中で何箇所か「ファイルや変数の名前をこうしてね!」と指示される場面があったと思います。
CakePHPでは命名規則が超大事な要素となっていて、
ちゃんとした名前をつけているかどうかが動作に直接関わってきます。

嫌でも命名規則の大切さを仕込まれるわけですね。

    1. モデルのファイル名とコントローラのファイル名
      Post.php』というモデルファイルを作った場合、
      CakePHPは「これはPostsController.phpってコントローラで操作するんやろなあ」と解釈します。
      『PostsController.php』の中では
      $this->Post->find('all')
      みたいな形でモデルを参照します。

    2. ビューのファイル名
      『PostsController.php』は『Posts.php』というモデルと、『app/view/Posts』というディレクトリの橋渡しの役割を担います。
      基本的にはこのディレクトリの中にページの表示内容を『index.ctp』とか『add.ctp』などといった形で書いていきます。
      ユーザーが行きたいであろうページ(indexとか)やアクション(addとか)にアクセスしたときの動作は『PostsController.php』内に

      public function index() {
      $this->set('posts', $this->Post->find('all'));
      }
      といった同名の関数を定義して書いていきます。


    3. データベースのテーブル名
      テーブル名を『posts』としておくと、モデル『Post.php』が
      勝手にテーブルを配列として認識してくれます。
      テーブルに’modified’ と ‘created’ というフィールドを用意しておくと、CakePHPがレコードの作成日時、最終更新日時を勝手に管理してくれるようになります。