普段あまり使用しないフレームワークの知識は覚えてられないので,個人的なメモを残しておく.
▼ ページ遷移する方法
ブラウザのURL表記が変更される場合とされない場合があるので,適宜検討する.
1 2 3 | <a href="">タグを使用する $this->redirect( 移動先アドレス ); $this->setAction( アクション名 ); |
▼ ビルダー
ViewBuilder
QueryBuilder
▼ ヘルパー
・ヘルパーとは,ビューの作成で利用するもの.
・ビューの機能を拡張する仕組み.
面倒な HTML テキストを簡単な呼び出しで自動生成してくれる.
Html Helper
Form Helper
(チェックボックス,ラジオボタン,ドロップダウン,テキストボックスなど)
▼ コンポーネント
・コントローラの機能を拡張するプログラム.
Flashコンポーネント
CSRFコンポーネント
Cookieコンポーネント
Securityコンポーネント
RequestHandlerコンポーネント
Authコンポーネント
・メモ:Auth コンポーネントは,DBのpasswordカラムにハッシュ値をセットしておかないと認証できない.
▼ ビヘイビア
・モデルの機能を拡張するプログラム.
▼ プラグイン
・MVCの全てをパッケージにまとめたもの.
・「plugins」フォルダにコピーすることで利用できる.
▼ レイアウト,エレメント
ビューーテンプレートの組み合わせを定義するのがレイアウト.
エレメントはビューの一部分を共通化して再利用可能にしたもの.
Cake/src/Template/Element/ の .ctp ファイル.
▼ コントローラーなどを生成する方法
テーブルを作成しておき,アプリフォルダで,以下のコマンドを実行することで自動生成できる.
以下の例では books テーブルを作成しておく.
$ php bin/cake.php bake all books
BooksTable クラスが用意される.
また,コントローラーからは,$this->Books で参照することが出来る.
・コントローラ クラスのメンバ変数は public にする.
・コントローラ クラスは,namespace App\Controller; に配置する.
▼ コントローラーからビューに値を渡す方法
コントローラー側で以下の処理を行うと,ビュー側に指定した名前(result)の変数が用意され,値をセットできる.
$this->set(‘result’, $result);
▼ クラス名称について
クラス名称は,キャメル記法にする.
HelloController.php
クラス名は大文字から
メソッドは小文字から
データベースのテーブルは「複数形」
モデルは,「単数形」
テーブルクラスは,「複数形+Table」
エンティティクラスは,「単数形」
ビューテンプレートファイル名は,アクションメソッド名をアンダースコアでつなぐ.
(クラスに関連しないファイルは,アンダースコア記法.)
▼ パス指定について
.ctp でのパスの指定は以下のようにする
HelloController クラスに sendForm メソッドがある場合,
1 | <form method="get" action="./hello/sendForm"> |
▼ 設定ファイル
データベース設定は,Config/app.php に保持されている.
▼ 多言語対応
翻訳ファイルを作成する
$php bin/cake.php i18n
▼ その他
・デフォルトページは,webroot フォルダにある.
リクエスト情報の取得は,以下のようにする.
$str = $this->request->query[‘text1’];
・ショートタグ
1 | <?= は,<?php echo のショートタグ |
・スタイルシート
スタイルシートは,webroot/css/cake.hello.css などのように配置する.
・OS の違いを吸収する定数
定数:DIRECTORY_SEPARATOR (ファイルパスの区切り文字)
osx では,ファイルパスの区切り文字は,/ を使用.
namespace は,\ を使用.