Mögliche Duplizieren:
How could read application.ini on controller using zend frameworkWie Parameter aus Zend application.ini Datei während der Sitzung abgerufen werden?
application.ini
ist eine Konfigurationsdatei in ZF. Ich habe dort mehr Einstellungen als nur die Standardeinstellungen, über die das ZF-Handbuch schreibt. Aber wie kann ich diese Parameter beispielsweise von meinen Action-Controllern abrufen? Und wo ist es besser, diese Konfiguration während der Sitzung zu speichern?
Die Bootstrap_Abstract
Klasse getOptions()
Methode, die von einer einfachen PHP-Array zurückgibt lesen application.ini
Datei:
$app = new Zend_Application(APPLICATION_ENV, '/application.ini');
$config = $app->bootstrap()->getOptions(); // $config is a php array of application.ini
Und Ich mag würde zu Element, um es bekommen zu bilden oop-style:
$param = $config[one][two]; // vs.
$param = $config->one->two; // like this
ZF hat Zend_Config_Ini
Klasse, die .ini
liest und genau das ArrayObject zurückgibt. Aber ich möchte vermeiden, application.ini
mit Zend_Config_Ini
noch einmal zu lesen, nachdem Zend_Application
sowieso schon gelesen hat. Aber Bootstrap
oder Zend_Application
Klassen bieten keine automatische Erstellung von ArrayObject von application.ini
.
Und die zweite, wo kann ich diese $ config dann speichern? In Zend_Registry
?
Zend_Registry::set('config', $config);
Und dann in meiner etwas Action Controller abrufen ich es:
$config = Zend_Registry::get('config'); // I retrieve config
$param = $config->one->two; // I retrieve parameter from it and use it
Aber es scheint ein wenig ineffizient: Ich eine Kopie application.ini
in den Bootstrap
in Form von üblichem PHP-Array und einem Kopie der gleichen application.ini
aber in Form von ArrayObject in Zend_Registry
auch. Und müssen zwei Schritte machen, um einen Parameter von meiner Konfiguration zu erhalten. Wie kann ich dieses Problem effizienter lösen?
Siehe auch http://akrabat.com/zend-framework/accessing-your-configuration-data-in-application-ini/ – Phil