Funcionalidad Básica

Aquí encontrará documentación del tipo API acerca de todos los componentes básicos de Zend_Application .

Zend_Application

Zend_Application proporciona la funcionalidad básica del componente, y el punto de entrada a su aplicación Zend Framework. Su propósito es doble: para configurar el medio ambiente PHP (incluyendo autocarga), y ejecutar su aplicación bootstrap.

Tabla 2. Zend_Application options

Option Description
phpSettings

Array of php.ini settings to use. Keys should be the php.ini keys.

includePaths

Additional paths to prepend to the include_path . Should be an array of paths.

autoloaderNamespaces

Array of additional namespaces to register with the Zend_Loader_Autoloader instance.

bootstrap

Either the string path to the bootstrap class, or an array with elements for the 'path' and 'class' for the application bootstrap.


Option names

Please note that option names are case insensitive.

Típicamente, pasará toda la configuración al constructor Zend_Application , pero también puede configurar totalmente el objeto utilizando sus propios métodos. En esta referencia se ilustran ambos casos de uso.

Tabla 3. Métodos de Zend_Application

Método Valor de Retorno Parámetros Descripción
__construct($environment, $options = null) Void
  • $environment : requerido ,. String que representa el actual entorno de aplicación. Strings típicos podrían incluir "desarrollo", "pruebas", "qa", o "producción", pero será definido por sus requisitos organizacionales.

  • $options : opcional . El argumento puede ser uno de los siguientes valores:

    • String : path al archivo Zend_Config para cargarlo como donfiguración de su aplicación. $environment se utilizará para determinar qué sección de la configuración se traerá.

      As of 1.10, you may also pass multiple paths containing config files to be merged into a single configuration. This assists in reducing config duplication across many contexts which share common settings (e.g. configs for HTTP, or CLI, each sharing some characteristics but with their own conflicting values for others) or merely splitting a long configuration across many smaller categorised files. The parameter in this case is an array with a single key "configs" whose value is an array of the files to merge. Note: this means you either pass a literal path, or array("configs"=>array("/path1","/path2"[,...]));.

    • Array : array asociativo de datos de configuración para su aplicación.

    • Zend_Config : instancia del objeto de configuración.

Constructor. Los argumentos son como se describe, y será utilizado para establecer el estado incial del objeto. Una instancia de Zend_Loader_Autoloader es registrada durante la instanciación. Las opciones pasadas al onstructor se pasan a setOptions() .

getEnvironment() String N/A

Recuperar el string del medio ambiente que se pasó al constructor.

getAutoloader() Zend_Loader_Autoloader N/A

Recuperar la instancia de Zend_Loader_Autoloader registrados durante la instanciación.

setOptions(array $options) Zend_Application
  • $options : requerido . Un array de opciones de aplicación.

Todas las opciones se almacenan internamente, y llamando al método varias veces las opciones se fusionarán. Las opciones concordantes con los diversos métodos setter se pasarán a esos métodos. Como ejemplo, la opción "phpSettings" será pasada a setPhpSettings() . (Los nombres de opciones son indiferentes a mayúsculas/ minúsculas.)

getOptions() array N/A

Recuperar todas las opciones usadas para inicializar el objeto; podría ser utilizada para guardar en cache a través de Zend_Config las opciones para serializar un formato entre reqerimientos.

hasOption($key) Boolean
  • $key : String opcional de la clave de lookup

Determinar si una opción con la clave ha sido registrada o no. Las claves son indiferentes a mayúsculas/ minúsculas.

getOption($key) mixed
  • $key : String opcional de la clave de lookup

Recuperar el valor de la opción de una clave dada. Retorna NULL si la clave no existe.

setPhpSettings(array $settings, $prefix = '') Zend_Application
  • $settings : requerido . Array asociativo en los settings de PHP INI .

  • $prefix : opcional . Prefijo de tipo string para anteponer a la opción claves. Usado internamente para permitir el mapping anidado de matrices separados por puntos en las claves de php.ini . En el uso normal, este argumento nunca debe ser pasado por un usuario.

Establece un conjunto de ajustaes en php.ini . para run-time. Las configuraciones separadas por punto pueden ser anidadas jerárquicamente (lo que puede ocurrir con los archivos INI Zend_Config ) mediante un array de de arrays, y aún resolver correctamente.

setAutoloaderNamespaces(array $namespaces) Zend_Application
  • $namespaces : requerido . Array de strings representando los namespaces a registrar con la instancia Zend_Loader_Autoloader .

Registra los namespaces con la instancia Zend_Loader_Autoloader .

setBootstrap($path, $class = null) Zend_Application
  • $path :: requerido . Puede ser tanto una instancia de Zend_Application_Bootstrap_Bootstrapper , un string del path a la clase bootstrap, un arrray asociativo de classname =>nombre_de_archivo, o un array asociativo con las claves 'class' y 'path'.

  • $class : opcional . Si $path : es un string, entonces $class puede ser especificado, y debe ser el string nombre de clase de la clase contenida en el archivo representado por path.

 
getBootstrap() NULL | Zend_Application_Bootstrap_Bootstrapper N/A

Recuperar la instancia del bootstrap registrado.

bootstrap() void N/A

Llamar al método bootstrap() para cargar la aplicación.

run() void N/A

Llamar al método run() del bootstrap para despachar la aplicación.


Zend_Application_Bootstrap_Bootstrapper

Zend_Application_Bootstrap_Bootstrapper es la interfaz base que deben implementar todas clases bootstrap. Las funcionalidades de base están encaminadan a la configuración, identificación de los recursos, bootstraping (ya sea de los recursos individuales o de toda la aplicación), y de despachar la aplicación.

Los siguientes métodos conforman la definición de la interfaz.

Tabla 4. Zend_Application_Bootstrap_Bootstrapper Interface

Método Valor Retornado Parámetros Descripción
__construct($application) void
  • $application : requerido . Debe aceptar un objeto Zend_Application o Zend_Application_Bootstrap_Bootstrapper como único argumento.

Constructor. Acepta un solo argumento, que debe ser un objeto Zend_Application , u otro objero bootstrap.

setOptions(array $options) Zend_Application_Bootstrap_Bootstrapper
  • $options : requerido . Array de opciones a establecer.

Típicamente, cualquier opción que tiene un setter concordante invocará ese setter; de lo contrario, la opción será simplemente almacenada para su recuperación posterior.

getApplication() Zend_Application | Zend_Application_Bootstrap_Bootstrapper N/A

Recuperar el objeto aplicación/bootstrap pasado via constructor.

getEnvironment() String N/A

Recuperar el string del medio ambiente registrado con el objeto padre de la aplicación o del bootstrap.

getClassResources() array N/A

Recuperar una lista de los recursos inicializadores de nombres disponibles con los que fueron definidos en la clase. Esto puede ser de implementación específica.

bootstrap($resource = null) Mixed
  • $resource : optional .

Si $resource está vacío, ejecutar todos los recursos del bootstrap. Si es un string, ejecutar ese único recurso; si es un array, ejecutar cada recurso del array.

run() void N/A

Define qué lógica de aplicación ejecutar luego del bootstrap.


Zend_Application_Bootstrap_ResourceBootstrapper

Zend_Application_Bootstrap_ResourceBootstrapper es una interfaz para usar cuando una clase de arranque cargará recursos externos -- por ejemplo, uno o más recursos no se definirán directamente en la clase, sino más bien via plugins. Debe ser utilizado en conjunción con Zend_Application_Bootstrap_Bootstrapper ; Zend_Application_Bootstrap_BootstrapAbstract que implementan esta funcionalidad.

Los siguientes métodos conforman la definición de la interfaz.

Tabla 5. Zend_Application_Bootstrap_ResourceBootstrapper Interface

Método Valor de Retorno Parámetros Descripción
registerPluginResource($resource, $options = null) Zend_Application_Bootstrap_ResourceBootstrapper
  • $resource : requerido . Un nombre de recurso o un objeto Zend_Application_Resource_Resource .

  • $options : opcional . Un array o un objeto Zend_Config para pasar al recurso en instanciación.

Registre un recurso con la clase, proporcionando configuración opcional para pasar al recurso.

unregisterPluginResource($resource) Zend_Application_Bootstrap_ResourceBootstrapper
  • $resource : requerido . Nombre de un recurso para des-registrar desde la clase.

Eliminar un recurso de plugin de la clase.

hasPluginResource($resource) Boolean
  • $resource : requerido . Nombre del recurso.

Determinar si un recurso específico se ha registrado en la clase.

getPluginResource($resource) Zend_Application_Resource_Resource
  • $resource : requerido . Nombre de un recurso a recuperar (string).

Recuperar una instacia de un recurso de plugin por su nombre.

getPluginResourceNames() Array N/A

Recuperar una lista de todos los nombres de recursos de plugin registrados.

setPluginLoader(Zend_Loader_PluginLoader_Interface $loader) Zend_Application_Bootstrap_ResourceBootstrapper
  • $loader : requerido . Instancia del cargador de plugin para utilizar cuando se resuelven nombres de plugin a las clases.

Registre una instancia del cargador de plugin para utilizar cuando se resuelven nombres de clases de plugin.

getPluginLoader() Zend_Loader_PluginLoader_Interface N/A

Recuperar el cargador de plugin registrado.


Zend_Application_Bootstrap_BootstrapAbstract

Zend_Application_Bootstrap_BootstrapAbstract es una clase abstracta que proporciona la base funcional de un arranque (bootstrap) común. Implementa a ambos Zend_Application_Bootstrap_Bootstrapper y a Zend_Application_Bootstrap_ResourceBootstrapper .

Tabla 6. Métodos de Zend_Application_Bootstrap_BootstrapAbstract

Método Valor de Retorno Parámetros Descripción
__construct($application) void
  • $application : requerido . Acepta tanto a Zend_Application o al objeto Zend_Application_Bootstrap_Bootstrapper como único argumento.

Constructor. Acepta un solo argumento, que debe ser un objeto Zend_Application , u otro objeto bootstrap.

setOptions(array $options) Zend_Application_Bootstrap_Bootstrapper
  • $options : requerido . Array de opciones a establecer.

Cualquier opción que tiene un setter concordante invocará ese setter; de lo contrario, la opción será simplemente almacenada para su recuperación posterior. Como ejemplo, si su clase extendida definió un método setFoo() , la opción 'foo' pasaría el valor a ese método.

También pueden usarse dos opciones especiales clave. pluginPaths puede ser utilizada para especificar prefijos de paths para los recursos plugin; debería ser un array de la clase pares prefijo/path. resources puede ser utilizada para especificar los recursos plugin a utilizar, y debería estar constituído por pares de opciones plugin recurso/instanciación.

getOptions() array N/A

Devuelve todas las opciones registradas via setOptions() .

hasOption($key) boolean
  • $key : requerido . Clave de opción a probar.

Determinar si una opción clave está presente.

getOption($key) mixed
  • $key : requerido . Clave de opción para recuperar.

Recuperar el valor asociado con una opción clave; retorna NULL si ninguna opción está registrada con esa clave.

setApplication(Zend_Application | Zend_Application_Bootstrap_Bootstrapper $application) Zend_Application_Bootstrap_BootstrapAbstract
  • $application : requerido .

Registrar al objeto padre de la aplicación o en el bootstrap.

getApplication() Zend_Application | Zend_Application_Bootstrap_Bootstrapper N/A

Recuperar el objeto aplicación/bootstrap pasado via constructor.

getEnvironment() string N/A

Recuperar el string del entorno registrado con el objeto padre de la aplicación o del bootstrap.

getClassResources() array N/A

Recuperar una lista de los recursos inicializadores de nombres disponibles con los fueron definidos en la clase. Esto puede ser de implementación específica.

getContainer() object N/A

Recupera el contenedor que almacena recursos. Si no hay un contenedor actualmente registrado, registra una instancia Zend_Registry antes de retornarlo.

setContainer($container) Zend_Application_Bootstrap_BootstrapAbstract
  • $container , requerido . Un objeto en el cual almacenar recursos.

Proporciona un contenedor en el que se almacenan recursos. Cuando un método de recurso o plugin devuelve un valor, será almacenado en este contenedor para su recuperación posterior.

hasResource($name) boolean
  • $name , requerido . Nombre del recurso a comprobar.

Cuando un método de recurso o plugin devuelve un valor, será almacenado en el contenedor de recursos (ver getContainer() y setContainer() . Este método indicará si se ha establecido o no un valor para ese recurso.

getResource($name) mixed
  • $name , requerido . Nombre del recurso a recuperar.

Cuando un método de recurso o plugin devuelve un valor, será almacenado en el contenedor de recursos (ver getContainer() y setContainer() . Este método recuperará recursos del contenedor.

bootstrap($resource = null) mixed
  • $resource : opcional .

Si $resource está vacío, ejecutar todos los recursos del bootstrap. Si es un string, ejecutar ese único recurso; si es un array, ejecutar cada recurso del array.

Este método puede ser utilizado para ejecutar bootstraps individuales, ya hayan sido definidos en la propia clase o mediante clases de recursos de plugin. Un recurso definido en la clase será ejecutado en preferencia por sobre un recurso de plugin en el caso de conflicto de nombres.

run() void N/A

Define qué lógica de aplicación ejecutar luego del bootstrap.

__call($method, $args) mixed
  • $method : requerido . El nombre del método a llamar.

  • $args : requerido . Array de argumentos para usar en el método de llamada.

Ofrece comodidad para bootstrapping de recursos individuales permitiéndole llamar 'bootstrap<ResourceName>()' en vez de usar el método bootstrap() .


Zend_Application_Bootstrap_Bootstrap

Zend_Application_Bootstrap_Bootstrap es una implementación concreta de Zend_Application_Bootstrap_BootstrapAbstract . Su principal característica es que registra el recurso Front Controller , y que el método run() primero comprueba esté definido un módulo por defecto y luego despacha el front controller.

En muchos casos, usted quisiera extender esta clase por sus necesidades de bootstrapping, o simplemente utilizar esta clase y proporcionar una lista de los plugins de recursos a utilizar.

Enabling Application Autoloading

Additionally, this bootstrap implementation provides the ability to specify the "namespace" or class prefix for resources located in its tree, which will enable autoloading of various application resources; essentially, it instantiates a Zend_Application_Module_Autoloader object, providing the requested namespace and the bootstrap's directory as arguments. You may enable this functionality by providing a namespace to the "appnamespace" configuration option. As an INI Ejemplo:

appnamespace = "Application"

O en XML :

<appnamespace>Application</appnamespace>

By default, Zend_Tool will enable this option with the value "Application".

Alternately, you can simply define the $_appNamespace property of your bootstrap class with the appropriate value:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected $_appNamespace = 'Application';
}

Zend_Application_Resource_Resource

Zend_Application_Resource_Resource es una interfaz para recursos de plugin utilizados con clases bootstrap implementando Zend_Application_Bootstrap_ResourceBootstrapper . Se espera que los recursos de plugins permitan la configuración, estar enterados del bootstrap, y aplicar un patrón de estrategia para la inicialización de recursos.

Tabla 7. Zend_Application_Resource_Resource Interface

Método Valor de Retorno Parámetros Descripción
__construct($options = null) Void
  • $options : opcional . Opciones con las cuales establecer el estado de los recursos.

El constructor debería permitir pasar opciones con las cuales inicializar el estado.

setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) Zend_Application_Resource_Resource
  • $bootstrap : requerido . Padre del bootstrap inicializando este recurso.

Debería permitir registrar el objeto padre del bootstrap.

getBootstrap() Zend_Application_Bootstrap_Bootstrapper N/A

Recuperar la instancia del bootstrap registrado.

setOptions(array $options) Zend_Application_Resource_Resource
  • $options : requerido . Opciones con las cuales establecer el estado.

Establecer el estado del recurso.

getOptions() Array N/A

Recuperar opciones registradas.

init() Mixed N/A

Patrón de estrategia: ejecute inicialización de los recursos.


Zend_Application_Resource_ResourceAbstract

Zend_Application_Resource_ResourceAbstract es una clase abstracta implementando Zend_Application_Resource_Resource , y es un buen punto de partida para crear sus propios recursos de plugin personalizados.

Nota: esta clase abstracta no implementa el método init() ; esto se deja para la definición de extensiones concretas de la clase.

Tabla 8. Zend_Application_Resource_ResourceAbstract Methods

Método Valor de Retorno Parámetros Descripción
__construct($options = null) Void
  • $options : opcional . Opciones con las cuales establecer el estado del recurso.

El constructor debería permitir pasar opciones con las cuales inicializar el estado.

setBootstrap(Zend_Application_Bootstrap_Bootstrapper $bootstrap) Zend_Application_Resource_ResourceAbstract
  • $bootstrap : requerido . Padre del bootstrap inicializando este recurso.

Debería permitir registrar el objeto padre del bootstrap.

getBootstrap() Zend_Application_Bootstrap_Bootstrapper N/A

Recuperar la instancia registrada del bootstrap.

setOptions(array $options) Zend_Application_Resource_ResourceAbstract
  • $options : requerido . Opciones con las cuales establecer el estado.

Establecer el estado del recurso.

getOptions() Array N/A

Recuperar opciones registradas.


Resource Names

When registering plugin resources, one issue that arises is how you should refer to them from the parent bootstrap class. There are three different mechanisms that may be used, depending on how you have configured the bootstrap and its plugin resources.

First, if your plugins are defined within a defined prefix path, you may refer to them simply by their "short name" -- i.e., the portion of the class name following the class prefix. As an example, the class " Zend_Application_Resource_View " may be referenced as simply "View", as the prefix path " Zend_Application_Resource " is already registered. You may register them using the full class name or the short name:

$app = new Zend_Application(APPLICATION_ENV, array(
    'pluginPaths' => array(
        'My_Resource' => 'My/Resource/',
    ),
    'resources' => array(
        // if the following class exists:
        'My_Resource_View' => array(),

        // then this is equivalent:
        'View' => array(),
    ),
));

In each case, you can then bootstrap the resource and retrieve it later using the short name:

$bootstrap->bootstrap('view');
$view = $bootstrap->getResource('view');

Second, if no matching plugin path is defined, you may still pass a resource by the full class name. In this case, you can reference it using the resource's full class name:

$app = new Zend_Application(APPLICATION_ENV, array(
    'resources' => array(
        // This will load the standard 'View' resource:
        'View' => array(),

        // While this loads a resource with a specific class name:
        'My_Resource_View' => array(),
    ),
));

Obviously, this makes referencing the resource much more verbose:

$bootstrap->bootstrap('My_Resource_View');
$view = $bootstrap->getResource('My_Resource_View');

This brings us to the third option. You can specify an explicit name that a given resource class will register as. This can be done by adding a public $_explicitType property to the resource plugin class, with a string value; that value will then be used whenever you wish to reference the plugin resource via the bootstrap. As an example, let's define our own view class:

class My_Resource_View extends Zend_Application_Resource_ResourceAbstract
{
    public $_explicitType = 'My_View';

    public function init()
    {
        // do some initialization...
    }
}

We can then bootstrap that resource or retrieve it by the name " My_View ":

$bootstrap->bootstrap('My_View');
$view = $bootstrap->getResource('My_View');

Using these various naming approaches, you can override existing resources, add your own, mix multiple resources to achieve complex initialization, and more.