Componentの使い方

Cakephpのコンポーネント

CakephpにはComponentというコントローラの拡張機能が用意されている。

view → helper
model → behavior
controller → component

という感じでmvcの各レイヤーで拡張機能が用意されているので、サイトの規模に応じて、各レイヤーで拡張機能を利用してコードを分けることで管理運用面でメリットを得ることができるようになっている。

使用方法

宣言

Componentの使い方について書いてみようと思う。前提としてコントローラで利用するComponentを定義しておかないといけない。

1.2系、2.3系共通

public $components = array('isRobots');

上の例はisRobotsというコンポーネントを読み込むように設定した例です。

実装

isRobotsはどこにどうやってコーディングされているのでしょうか。Cakephpのバージョンによってコンポーネントのファイル名は異なっています。具体的には以下のようになります。

1.2系の場合
app\controllers\components\is_Robots.php

2.3系の場合
app\Controller\Component\isRobotsComponent.php

ファイルの中身は以下のようになります。

1.2系、2.3系共通

class isRobotsComponent extends Object {
	function gen()
	{

	}
}

コンポーネントのコーディング方法については、バージョンにより差はないようですが、ファイル名の設定が異なっているので注意が必要です。

呼び出し

コントローラからコンポーネントを利用するには以下のようにします。

1.2系、2.3系共通

$this->isRobots->gen();

上の方法でコンポーネントを定義することができます。例えば、robots(ウェブ上の任意のクローラ)を判定する処理をgen()の中に記述して、真偽を返すコンポーネントとしてコントローラから利用することができます。

Webエンジニアブログにコメント

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

Componentの使い方の記事にコメントを投稿