webアプリケーションシステムでは、様々な機能があるとはいえある程度どのシステムにも絶対必要なものは決まっていたりします(登録ユーザーの認証など)
もともとある程度使うだろうという事が想定されているものに関しては、あらかじめ用意されている場合が多くあります
それら用意されているものの機能で主なものには以下の3つがありそれぞれこのような役割があります
ヘルパー | ビューに追加されるもので、テンプレートのコード生成を行います |
コンポーネント | コントローラーに追加されるものです |
ビヘイビア | モデル関係に追加されるものです |
ヘルパー
ヘルパーは主にビュークラスで宣言します
コントローラーのアクションによって条件分岐させることも可能です
主にこれらの機能を使いたい時宣言します
Breadcrumbs (パンくず)
Flash
Form
Html
Number
Paginator
Rss
Session
Text
Time
Url
参照:https://book.cakephp.org/3.0/ja/views/helpers.html
コンポーネント
cakeの中に含まれるデフォルトのコンポーネントは以下のものがあります
AuthComponent
クッキー
クロスサイトリクエストフォージェリ
フラッシュ
セキュリティ
ページネーション
リクエストハンドリング
設定はコントローラーのinitialize()メソッドないでloadComponent()で利用するコンポーネントを指定するか、$components配列をしようします
ここで宣言したものを各メソッドでよびだします
コンポーネントに独自の名前をつけたい時はclassNameを指定します
$this->loadComponent(‘Auth’, [
‘className’ => ‘MyAuth’
]);
共通のロジックを使う時
アプリケーションの作成過程で共通して行える処理が出てきた場合は独自コンポーネントを作成します
独自のコンポーネントを作る場合のファイルはControllerディレクトリの直下にあるComponentディレクトリです
ファイル名は命名規則に従い「名前Component.php」とします(最初は大文字。これと同じ名前をクラス名として宣言します
<?php
・・・・
class コンポーネント名 extends Component{
呼び出し方はこちらです(Abcコンポーネントを作った場合)
$this->loadComponent’\(‘Abc’);
参照:https://book.cakephp.org/3.0/ja/controllers/components.html
ビヘイビア
基本機能として利用できるビヘイビアは以下のものがあります
CounterCache
Timestamp
Translate
Tree
まず対象のモデルで利用したいビヘイビアを追記します
必要に応じてコントローラー・モデル・ビューを新たに作成、ないしは関係する場所を編集します