somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【symfony】sfActionsの拡張とおまけ【1.0】

symfonyのsfActions拡張って見たことないなぁとつぶやいてから、試しにautoload対象のディレクトリに拡張したActionおいてみました。

格納ディレクトリ

autoload対象の/libと/frontend/lib配下にactionsディレクトリを作って継承してみたらあたりまえだけどクラス読み込みできました。しかし、しっくりこない・・・。

sfAction拡張

ファイル名をactions.class.phpにしてみました。コードは以下の通りです。親クラスを通ることをpreExecuteとpostExecuteで試しています。

<?php
class baseActions extends sfActions
{
  public function preExecute()
  {
    $this->echoModuleAndActionName();
  }

  public function postExecute()
  {
    $this->echoModuleAndActionName();
  }

  protected function echoModuleAndActionName()
  {
     printf('モジュール名:%s, アクション名:%s<br />', $this->getModuleName(), $this->getActionName());
  }
}
<?php
// testモジュール内
class testActions extends baseActions
{
  public function executeTest()
  {
    $this->echoModuleAndActionName();
  }
}
結果:http://localhost/test/Test
モジュール名:test, アクション名:Test
モジュール名:test, アクション名:Test
モジュール名:test, アクション名:Test

symfony使いの人たちなら当たり前だろうし、OpenPNE3使った時に確認しておくこともできたのかなと思うと悲しいです。