3 Stimmen

Wie kann man die Zend_Config abrufen, die von Zend_Application verwendet wird?

Ich migriere meine App zur Verwendung von Zend_Application für Bootstrap. Früher hatte ich die Zend_Config als Schlüssel für meine $registry.

Jetzt weiß ich nicht mehr, wie ich es auf diese Weise verwenden kann (ohne die Konfigurationsdatei neu laden zu müssen). Ich weiß, dass es möglich ist, $application->getOptions() zu verwenden, aber das gibt mir ein Array und ich müsste überall in meinem Code, wo $config wie ein Objekt ($config->services->storage) verwendet wird, auf Array-ähnlich ($config['services']['storage']) ändern.

4voto

Benjamin Cremer Punkte 4802
Zend_Registry::set('config', new Zend_Config($this->getOptions()));

ist alles, was Sie brauchen.

2voto

Alister Bulman Punkte 33148

Zend_Application verwendet (und speichert) nur die Datei config.ini, wie sie im zweiten Parameter des Aufrufs von ' new Zend_Application(ENV, '.../app.ini'); ' als ein Array. Um es als Objekt speichern zu können, müssen Sie es neu parsen.

Sie können dazu eine Funktion in den Bootstrap einfügen und diese in der Registrierung speichern,

<?php
// in 'class Bootstrap extends Zend_Application_Bootstrap_Bootstrap'

protected function _initConfig()
{
    // config
    //#Zend_Registry::set('config', $this->getOptions());  // as an array

    $ZFOptions      = array(); // could be: 'allowModifications'=>true
    $section        = 'production';  // or from the environment
    $configFilename = APPLICATION_PATH .'/configs/application.ini';
    $config = new Zend_Config_Ini($configFilename, $section, $ZFOptions);
    Zend_Registry::set('config', $config);  // as an object
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X