Action and pass variable to all actions in symfony 1.4

后端 未结 2 1931
后悔当初
后悔当初 2021-01-26 18:43

I want to make some action (php script) before all actions in my frontend app and then pass a result from that script to actions in variable - so I can get variable value from a

相关标签:
2条回答
  • 2021-01-26 18:59

    If the filter solution dont feet your needs, you can also create a base action class with a preExecute function:

    // app/frontend/lib/baseActions.class.php
    
    class baseActions extends sfActions
    {
       public function preExecute()
       {
          $this->myVar = .... // define your vars...
       }
    }
    

    Then your module actions class extends your baseActions class:

    // app/frontend/modules/myModule/actions/actions.class.php
    
    class myModuleActions extends baseActions
    {
       public function executeIndex(sfWebRequest $request)
       {
          // var $this->myVar is available in any action and in your template
          ... 
       }
    }
    

    if you have to use the preExecute function in your module class action, remember to call parent::preExecute() in it.

    0 讨论(0)
  • 2021-01-26 19:01

    What kind of information ?

    I would recommend you to use filters.

    In your apps/frontend/config/filters.yml:

    rendering: ~
    myfilter:
      class: myCustomFilter
    

    Create the file lib/filter/myCustomFilter.php:

    <?php
    class myCustomFilter extends sfFilter
    {
      public function execute ($filterChain)
      {
        if ($this->isFirstCall())
        {
          // do what ever you want here.
          $config = Doctrine_Core::getTable('Config')->findAll();
          sfConfig::set('my_config', $config);
        }
    
        $filterChain->execute();
      }
    }
    

    And then, every where, you can retrieve your data:

    sfConfig::get('my_config');
    
    0 讨论(0)
提交回复
热议问题