Home > Program | symfony > [ symfony ] symfonyのcomponents.class.phpを分割する

[ symfony ] symfonyのcomponents.class.phpを分割する

前回のactions.class.php分割に引き続き・・・というか全く同じです。
symfony 1.0なので微妙に1.1や1.2では違うかもしれません。 そこだけ注意。

symfonyはページのサイドペインなどをコンポーネント化させることが出来ます。
うちの会社だとヘッダ・フッタ・レフトペイン・ライトペインをコンポーネント化し、真ん中だけをxxxxSuccess.phpに書いています。

コンポーネントはcomponentsモジュール/actionsアクションにcomponents.class.phpという名前で置く必要があります。
中身はこんな感じ。

class componentsComponents extends sfComponents{
 public function executeHeader()
 {

 }

 public function executeFooter()
 {

 }

 public function executeLeftPane()
 {

 }

 public function executeRightPane()
 {

 }
}

分割の際の命名ルールはアクションと全く同様です。
コンポーネント名Component.class.php です。
アクションのときはComponentではなく、hogeAction.class.phpでしたね。

それぞれのコンポーネントは

headerComponent.class.php
footerComponent.class.php
leftPaneComponent.class.php
rightPaneComponent.class.php

となります。

クラス名もそれぞれ

headerComponent
footerComponent
leftPaneComponent
rightPaneComponent

となります。 継承はsfComponentsです。

アクション同様、components.class.phpと両方に同じコンポーネントがある場合は分割されたものが使用されるようです。

実行部分はexecute()内に書けばいんですが、validate()やhandleError()が使えるかどうかは今の所未確認。
その内確認しときまーす。

てか、この辺のことってマニュアルに書いてないような気がするんだけど、見落としですかな・・・。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://francisca.cc/2009/06/03/symfony-symfony%e3%81%aecomponentsclassphp%e3%82%92%e5%88%86%e5%89%b2%e3%81%99%e3%82%8b/trackback/
Listed below are links to weblogs that reference
[ symfony ] symfonyのcomponents.class.phpを分割する from 私事。 跡地

Home > Program | symfony > [ symfony ] symfonyのcomponents.class.phpを分割する

Search
Feeds
Meta

Return to page top