CakePHP3のヘルパー・コンポーネント・ビヘイビアの違いと機能

cakePHP3

Written by:

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

 

まず対象のモデルで利用したいビヘイビアを追記します

必要に応じてコントローラー・モデル・ビューを新たに作成、ないしは関係する場所を編集します

 

参照:https://book.cakephp.org/3.0/ja/orm/behaviors.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です