Symfony 1.4 にベースコントローラー (ベースの actions.php ファイル) がある状況があります。そのベースコントローラーを拡張する、同じモジュール用の別のコントローラーを作成したいと考えています。
URL の ID に基づいて識別される特定の訪問者の動作をカスタマイズしたいので、その基本コントローラーを拡張する必要があります。
ヒントはありますか?
Symfony 1.4 にベースコントローラー (ベースの actions.php ファイル) がある状況があります。そのベースコントローラーを拡張する、同じモジュール用の別のコントローラーを作成したいと考えています。
URL の ID に基づいて識別される特定の訪問者の動作をカスタマイズしたいので、その基本コントローラーを拡張する必要があります。
ヒントはありますか?
同じモジュールの別のコントローラ クラス、symfony では不可能だと思います。
あなたにとって最も簡単な解決策は、同じクラスに別のメソッドを作成し、それをベースのメソッドから呼び出すことだと思います。
例: actions.class.php:
public function executeBaseAction(sfWebRequest $request) {
.. if($user....) then return $this->executeCustomAction($request);
}
public function executeCustomAction(sfWebRequest $request) {
// $this->setTemplate('anotherTemplate?');
}
実際には、同じモジュールに別のコントローラー クラスを追加できます。
次の方法で、アクション ディレクトリに複数のファイルを含めることができます。
action1Action.class.php で
class action1Action extends sfAction
{
public function execute($request) {
//Your code here
}
}
これはテンプレート action1Success.php を使用します
action2Action.class.php 内
class action2Action extends sfAction
{
public function execute($request) {
//Your code here
}
}
これはテンプレート action2Success.php を使用します