Foros del Web » Programando para Internet » PHP » Zend »

Zend_Config

Estas en el tema de Zend_Config en el foro de Zend en Foros del Web. Hola Quisiera saber si debo hacer algo parecido a initDatabase o _initSession en el bootstrap para trabajar con el objeto zend_config ya que en ciertos ...
  #1 (permalink)  
Antiguo 17/02/2011, 15:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Pregunta Zend_Config

Hola

Quisiera saber si debo hacer algo parecido a initDatabase o _initSession en el bootstrap para trabajar con el objeto zend_config ya que en ciertos controladores debo extraer parámetros desde el archivo de configuración que se encuentra en configs/application.ini.

Esto para tener ese objeto en un ámbito "global" y capturarlo como lo hago con el objeto session,
Código PHP:
Ver original
  1. $ns = $this->getInvokeArg('bootstrap')->session;

algo asi. se puede, como lo hago
Código PHP:
Ver original
  1. $this->getInvokeArg('bootstrap')->config;


Saludos
  #2 (permalink)  
Antiguo 17/02/2011, 15:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend_Config

Código PHP:
Ver original
  1. $config = $this->getInvokeArg('bootstrap')->getOptions();
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 17/02/2011, 15:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Zend_Config

Hola masterpuppet

Gracias por responder, pero como se que el metodo getOptions() me retorna un objeto Zend_Config? pareciera que retorna un array de objetos o algo por el estilo
  #4 (permalink)  
Antiguo 17/02/2011, 15:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend_Config

Te devuelve la configuración como array, si es solo para lectura te debería servir, ahora si lo que queres es un objeto Zend_Config, tenes que crearlo en el Bootstrap(como se hacia antes) y setearlo en el registry o bien retornarlo para que se guarde en el container del frontcontroller o los dos, eso ya depende de tus necesidades, a la vieja usanza seria así:

Código PHP:
Ver original
  1. protected function _initConfig()
  2. {
  3.      $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini');
  4.      Zend_Registry::set('config', $config);
  5.      return $config;
  6. }

y para acceder a través del container

Código PHP:
Ver original
  1. $config = $this->getInvokeArg('bootstrap')->getContainer()->config;

o bien por registry

Código PHP:
Ver original
  1. $config = Zend_Registry::get('config');

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 17/02/2011, 15:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Zend_Config

yo lo he hecho así, pero te pregunto esta bien como lo hice o es mejor que ocupe las instrucciones que tu me haz sugerido

Código PHP:
Ver original
  1. public function _initConfig()
  2.     {
  3.         $config = new Zend_Config_Ini(APPLICATION_PATH. '/configs/application.ini');
  4.         return $config;
  5.     }

someController
Código PHP:
Ver original
  1. $config = $this->getInvokeArg('bootstrap')->config;

En realidad por ahora solo necesito el objeto para extraer datos no para modificar attributos del archivo

Saludos
  #6 (permalink)  
Antiguo 17/02/2011, 16:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend_Config

Si es solo para leer usa
Código PHP:
Ver original
  1. $config = $this->getInvokeArg('bootstrap')->getOptions();

Saludos!
  #7 (permalink)  
Antiguo 17/02/2011, 18:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Zend_Config

Ok gracias por la respuesta y orientación,

consulta, si tengo esta configuración, para acceder a appName tengo que hacer esto $config['general']['appName]; o no

[general]
default_time_zone = timezone
appName = MY_SYSTEMA_INFO

Saludos
  #8 (permalink)  
Antiguo 18/02/2011, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend_Config

No, en ese caso sí tendrías que hacer algo como lo que te puso masterpuppet:

Código PHP:
Ver original
  1. protected function _initConfig()
  2. {
  3.      $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini');
  4.      Zend_Registry::set('config', $config);
  5.      return $config;
  6. }

Ya que con $this->getOptions() te devuelve las opciones ya parseadas de la sección que esta en tu environment.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:17.