CakePHP のメモ

普段あまり使用しないフレームワークの知識は覚えてられないので,個人的なメモを残しておく.

▼ ページ遷移する方法

ブラウザの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 は,\ を使用.

CakePHPをインストールする方法

ひさしぶりにCakePHPをインストールしたので,手順をメモしておきます.

1. osxにMAMPをインストール

XAMPPを使用する方法もあるが,私にはMAMPを使用した方が簡単だった.
mod_rewrite.soなど使用できる状態か?httpd.confファイルの設定を確認しておく.

2. PHP intlが有効化確認する

php -i | grep intl

有効でないなら,php.iniの設定を確認する.

extension=php_intl.so

3. Composerをインストール

curl -sS https://getcomposer.org/installer | php

パスが通った場所に移動しておく

mv composer.phar /usr/local/bin/composer

コマンドとして認識できているかテスト

composer

4. CakePHPをセットアップする

composer create-project --prefer-dist cakephp/app cake3アプリ名