Powiel możliwe:
How could read application.ini on controller using zend frameworkJak pobrać parametry z pliku Zend application.ini podczas sesji?
application.ini
jest plik konfiguracyjny w ZF. Mam więcej ustawień niż te domyślne, o których pisze ZF manual. Ale jak mogę na przykład pobrać te parametry z moich kontrolerów akcji? I gdzie jest lepiej przechowywać tę konfigurację podczas sesji?
Klasa Bootstrap_Abstract
ma getOptions()
metodę, która zwraca prostą tablicę PHP odczytać application.ini
plik:
$app = new Zend_Application(APPLICATION_ENV, '/application.ini');
$config = $app->bootstrap()->getOptions(); // $config is a php array of application.ini
I chciałbym dostać elementem tworzą to oop-style:
$param = $config[one][two]; // vs.
$param = $config->one->two; // like this
ZF ma klasę Zend_Config_Ini
, która czyta .ini
i zwraca dokładnie ArrayObject. Ale chciałbym uniknąć czytania application.ini
z Zend_Config_Ini
jeszcze raz po tym, jak Zend_Application
już to przeczytał. Ale klasy Bootstrap
lub Zend_Application
nie zapewniają automatycznego tworzenia obiektu ArrayObject z application.ini
.
A druga, gdzie mogę przechowywać tę konfigurację $? W Zend_Registry
?
Zend_Registry::set('config', $config);
A potem w moim jakiegoś kontrolera akcji odzyskać go:
$config = Zend_Registry::get('config'); // I retrieve config
$param = $config->one->two; // I retrieve parameter from it and use it
Ale wydaje się trochę nieefektywne: Mam jedną kopię application.ini
w Bootstrap
w formie zwykłej tablicy php i jeden kopia tego samego application.ini
, ale również w postaci ArrayObject w Zend_Registry
. I trzeba zrobić dwa kroki, aby uzyskać parametr z mojej konfiguracji. Jak mogę efektywniej rozwiązać ten problem?
Zobacz także http://akrabat.com/zend-framework/accessing-your-configuration-data-in-application-ini/ – Phil