コードを舐める日々

わからないことがわからないことをしる日々

CakePHPのチュートリアルをやってみた

できたもの

Posts

分かったこと

  • オブジェクト指向プログラミングになっている(当たり前か)
  • 必要な機能は全てコントローラに記載する
  • ここでいうと単体記事閲覧、削除、編集、新規作成
  • フォーム値のバリデーション機能がついている
  • PHPで書くと膨大な処理を書かなければならない。(メールチェック、文字数チェック、半角英数字チェックなど)
  • リンクの書き方が簡潔(オブジェクト指向なので)
<?php echo $html->link('リンクタイトル','リンク先'); ?>
  • html関連(文書宣言、CSS、リンクアンカー、フォーム)は全てhtmlヘルパーで生成

cakePHPに慣れるためには

今のところ、チュートリアルを一回やっただけ(公式サイトのブログチュートリアル)
toDoリストのチュートリアルをやっておく。
CakePHPで高速Webアプリ開発:第5回 CakePHPで作るToDoアプリ(1)|gihyo.jp … 技術評論社

気をつけること

DBテーブル名とmodelsフォルダ内のモデル名は同一じゃないと動かないこと。(cakePHPの規約なので)
公式サイトのブログチュートリアルを作成する時にあったSQL文の中には"posts"という名称のテーブルだった。
その名前だと分かりにくいので"cake_posts"と変更したら動かなくなった。
原因を確認したら、このフレームワークを実施する最初の段階であるモデルクラスの作成時にPostクラスを作成すると、テーブル名がpostsという認識をcakePHP側でやってくれるそうだ。よって、クラス名をテーブル名に合わせて作る必要があることが分かった。
解説リンク先

テーブル名は、慣習的に小文字で、アンダースコアで区切られた複数単語のテーブル名をもちます。たとえば、Ingredient のモデル名は ingredients というテーブル名だと予測します。EventRegistration というモデル名は、event_registrations というテーブル名だと予測します。CakePHP はテーブルを検索し、各フィールドのデータ型を決定し、この情報を使用してビューでフォームのフィールドを出力するといったさまざまな特徴を自動化します。

これも参照して気をつけて作る必要があるなあ