9章 コンポーネント

目次

9.1. プレゼンテーション
9.2. 自作方法
9.3. コンポーネントを公開する

9.1. プレゼンテーション

コンポーネントは、特定の状況で、コントローラを手伝うために用います。 特別な機能は Cake のコアライブラリを拡張するのでなく、 コンポーネントの中に入れられます。

olle は IRC チャンネルでこう言いました: “ コンポーネントというのは、共有できる小さな“コントローラレット”だ。 ” これは良い定義だと思います。 実際に目標は再利用性(reusability)です。 コントローラにはコンポーネントがあるのに対して、ビューにはヘルパーがあります。この二つの大きな違いは、 コンポーネントが ビジネスロジック をカプセル化するのに対して、ヘルパーは、プレゼンテーションロジックをカプセル化する、ということです。 実はこのポイントはとても重要で、新しい Baker たちが混乱するところです。 再利用性を実現しようとします。よし、X ということに挑戦しよう。 これはコンポーネント、それともヘルパー? 答えは非常にシンプルです。Xは何をするのですか?ビジネスロジック?それともプレゼンテーションロジック? もしかすると両方? もしそれがビジネスロジックだったら、それはコンポーネントです。 もしそれがプレゼンテーションロジックなら、ヘルパーになります。 両方なら、う~ん、それはコンポーネントとヘルパーの両方でしょう。 後半部分の例として、認証システムが出てきます。 ログイン、ログアウト、アクセスの制限、 ユーザの操作に関する権限テスト(アクション: edit, add, del .. or a url)などを追加したいとしたら、それはビジネスロジックです。 ですから、この認証システムはコンポーネントにするべきです。 でも、ユーザがログインした時、メインメニューにいくつか項目を増やしたいとします。 これはプレゼンテーションロジックです。