Cytat(cyklotrial @ 7.06.2010, 11:17:04 )

Czy można stworzyć plik tak aby działał w obrębie całego serwisu (dla wszystkich aplikacji :backend i frontend)?
Np. tworze plik w katalogu "/config" o nazwie "mojeUstawienia.yml"
Jak do niego odnosić się we wszystkich aplikacjach?
Odpowiem na moim przykładzie. Potrzebowałem aby we wszystkich aplikacjach mieć wspólny routing więc:
po pierwsze primo:
- w katalogu
"config" projektu zrobiłem plik wspolny_routing.yml w którym definiuje wspólne wpisy Routingu
po drugie primo:
- w katalogu
"lib" projektu zrobiłem sobie klasę
MojeNarzedzia w której zdefiniowałem funkcję która parsuje plik i dołącza elementy do każdej z aplikacji:
class MojeNarzedzia {
public static function loadRouting
(sfEvent
$event) { $r = $event->getSubject();
$route = sfYaml::load(sfConfig::get('sf_config_dir').DIRECTORY_SEPARATOR.'wspolny_routing.yml');
if($route)
foreach ($route as $routeName=>$params) {
$r->prependRoute($routeName, new sfRoute($params['url'], $params['param']));
}
}
}
po trzecie primo:
- w katalogu config każdej aplikacji jest plik
nazwaAplikacjiConfiguration.class.php a w nim definiuje funkcję configure() w której odwołuje się do mojej klasy w momencie gdy występuje event routing.load_configuration. Wygląda do tak:
class frontendConfiguration extends sfApplicationConfiguration
{
public function configure()
{
// ładowanie wspólnego routingu
$this->dispatcher->connect('routing.load_configuration', array('MojeNarzedzia', 'loadRouting')); }
}
I tak w każdej aplikacji mogę sobie dołączyć wczytywanie wspólnego pliku konfiguracyjnego. Co do eventów pod które możesz coś podpiąć to przeczytaj
ten manual.