Действие и передача переменной для всех действий в symfony 1.4

Я хочу сделать некоторые действия (php-скрипт) перед всеми действиями в моем приложении frontend, а затем передать результат от этого сценария к действиям в переменной – поэтому я могу получить значение переменной из всех действий. Где я должен объявить это так?

Если решение фильтра не соответствует вашим потребностям, вы также можете создать базовый класс действий с функцией preExecute:

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

Затем класс действий вашего модуля расширяет класс baseActions:

 // 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 ... } } 

если вам нужно использовать функцию preExecute в вашем действии класса модуля, не забудьте вызвать в нем parent::preExecute() .

Какая информация?

Я бы рекомендовал вам использовать фильтры .

В ваших apps/frontend/config/filters.yml :

 rendering: ~ myfilter: class: myCustomFilter 

Создайте файл 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(); } } 

И затем, где угодно, вы можете получить свои данные:

 sfConfig::get('my_config');