zend www instalar framework composer album zend-framework2 zend-config

zend framework2 - www - Zend framework 2 accede a la configuración global en la clase de modelo



zend framework composer (3)

Tengo una clase de modelo que no extiende ningún módulo central de Zend. Este modelo fue importado de mi aplicación Zend framework 1 anterior. Puedo llamar a sus métodos convirtiéndolo en espacio de nombres. El problema que tengo es al leer la configuración global al lado de los métodos definidos.

En el caso del controlador, pude acceder a la configuración global usando el código a continuación

$config = $this->getServiceLocator()->get(''config''); // This gives a union of global configuration along with module configuration .

Pero, ¿qué deberíamos hacer para acceder a la configuración en el lado de una clase de modelo? A continuación se muestra cómo mi clase de modelo es

<?php namespace test/Http; class Request { protected $client; public function abc( $c) { return $something; } ...... }

Soy nuevo en el marco 2 de Zend, por favor sugiera amablemente cualquier método para lograr esto.

En la descripción anterior, el modelo significa (clase de modelo MVC) que tiene cierta lógica comercial.


Suponiendo que construyes tu servicio (tu código parece un servicio) probablemente lo crearás en una fábrica de servicios (en este caso lo puse en la configuración del módulo):

class MyModule { public function getServiceConfig() { return array( ''factories'' => array( ''my_request_object'' => function ( /Zend/ServiceManager/ServiceLocatorInterface $sl ) { $config = $sl->get(''config''); return new /GaGooGl/Http/Request($config); }, ), ); } }

De esta forma, está inyectando el objeto de configuración directamente en su consumidor (sin tener una referencia al localizador de servicios en el consumidor)

Otra forma es implementar Zend/ServiceManager/ServiceLocatorAwareInterface en su GaGooGl/Http/Request . Personalmente, lo desanimo , pero esto básicamente le permite que su objeto Request mantenga una referencia interna del localizador de servicios, por lo que es posible recuperar el servicio config en tiempo de ejecución.


La forma más simple de hacer esto

$config = new /Zend/Config/Config( include APPLICATION_PATH.''/config/autoload/global.php'' );


Mira esto Tiene dos soluciones. Uno está implementando una interfaz de localizador de servicios. Otra es inyectar el administrador de servicios en su modelo. Para ambos, necesita instanciar su objeto modelo a través del administrador de servicios.