Yo no usaría la Zend_Registry ni constantes, por dos razones
- En el registro nunca está seguro de lo que sucedió con las variables. Cada parte de la aplicación puede cambiarlos y no se notarán. Veo el registro en realidad como un anit-pattern.
- Las constantes están contaminando su aplicación innecesariamente. ¿Qué pasa si usas para cada configuración alguna constante? Debe mantener un documento adicional con todas las constantes definidas, es horrible de mantener.
Lo que la mejor opción es, es obtener directamente el objeto config del programa de arranque. En próximos ejemplos, que se supone que tiene esto en su application.ini:
someservice.apikey = 12345678
someservice.passkey = 87654321
El arranque se establece como un parámetro en la frontController. Si tiene un controlador de acción, esto hace que sea tan simple como esto:
$serviceOptions = $this->getInvokeArg('bootstrap')->getOption('someservice');
Si usted tiene un servicio de instancia en su controlador, ahora puede pasarlas a través del constructor y/o colocador.
Si quiere obtener las opciones que no están dentro de su controlador, sino en otro lugar, puede usar el patrón singleton que implementa frontController.Por lo tanto en cualquier lugar (por supuesto, sólo durante la planificación, no durante el arranque en sí) que es capaz de hacer esto:
$frontController = Zend_Controller_Front::getInstance();
$serviceOptions = $frontController->getParam('bootstrap')
->getOption('someservice');
Con método anterior que estés seguro que tiene siempre la opción de configuración derecho y no algunos posiblemente uno mutado
Los archivos de configuración están destinados a ser utilizados para especificar parámetros, utilizados como insumos para su aplicación licación. No debería agregar nada programáticamente – Phil