¿Cómo funciona Bootstrap en general y particularmente en Zend Framework?

Estoy leyendo el manual de Zend Framework y no puedo entender cómo funciona el arranque, particularmente en ZF y en general. Escriben:

Su clase Bootstrap define qué recursos y componentes inicializar.

Está bien. Significa que la clase Bootstrap debe instanciarse en primer lugar. Pero luego escriben sobre la configuración. ini Archivo. Y hay directivas sobre el Bootstrap clasifíquese en él:

1.  bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
2.  bootstrap.class = "Bootstrap"

Entonces, según tengo entendido, significa que no es el Bootstarp clase que se instancia en primer lugar. Lo primero de todo algo tiene que leer el archivo de configuración, obtener la información sobre el Bootstrap clase y tener esa información para instanciar. De lo contrario, no hay necesidad de tener información sobre el Bootstrap clase en el archivo de configuración. Porque solo puedo hacer esto:

require_once(/application/bootstrap.php) 
$b = new Bootstrap();

y se crea una instancia de Bootstrap.

Pero no dicen nada sobre el que lee el archivo de configuración y luego crea una instancia del Bootstrap.

  1. ¿Cómo funciona realmente Bootstrap?
  2. ¿Quién lo instancia y en qué etapa?
  3. Dicen que el APPLICATION_PATH es una constante Una constante debe definirse en alguna parte antes de que pueda usarse. ¿Dónde se puede definir si se usa en la clase Bootstrap?

Gracias por su atención.

preguntado el 12 de junio de 12 a las 19:06

2 Respuestas

Si nos fijamos en el index.php archivo que se envía con ZF, esto debería responder a la mayoría de esas preguntas.

La APPLICATION_PATH constante se define en index.php, y ahí es también donde el Zend_Application se crea un objeto que simplemente arranca la aplicación y luego la ejecuta.

Hay 2 maneras de decirle a su Zend_Application donde se encuentra su bootstrap en ZF1.

Primera forma (establecido explícitamente):

$application = new Zend_Application(
    APPLICATION_ENV,
    array(
        'bootstrap' => array(
            'class' => 'Bootstrap',
            'path' => APPLICATION_PATH . '/Bootstrap.php',
        ),
        'config' => APPLICATION_PATH . '/configs/application.ini',
    )
);

En el ejemplo anterior, la clase de arranque y el script de arranque se pasan como parte del $options directamente a Zend_Applicationconstructor de , junto con el application.ini archivo.

Si coloca la clase de arranque y el script en su application.ini archivo, entonces puede inicializar Zend_Application al igual que:

$application = new Zend_Application(
    APPLICATION_ENV,
    array('config' => APPLICATION_PATH . '/configs/application.ini')
);

Zend_Application procesará el application.ini file y recopile la información de Bootstrap desde allí.

Entonces puedes llamar $application->bootstrap()->run(); para ejecutar la aplicación.

Para responder directamente a sus preguntas:

  1. El bootstrap configura su aplicación. Después de procesar su ini archivo, es lo primero que se lleva a cabo. Esto configura todos los componentes necesarios para su aplicación ZF (por ejemplo, controlador frontal, Zend_View, diseños, conexión DB, etc.).
  2. index.php lo instancia prácticamente desde el principio.
  3. APPLICATION_PATH se define inmediatamente en index.php

Respondido el 12 de junio de 12 a las 19:06

Aquí está mi breve explicación:

Bootstrap inicializa los recursos del marco, inicializa la configuración del marco, carga las clases y otros trabajos de preparación del marco, se inicia en cada solicitud, iniciado por el archivo index.php en la configuración predeterminada.

  1. Nombre index.php se llama donde APPLICATION_PATH constante se define y se pasa a Application constructor de clases.
  2. La instancia de la clase de aplicación creada en el marco del constructor lee el archivo de configuración y lo almacena para su uso posterior.
  3. Luego comienza el arranque del marco:

    I. Instancia de clase de aplicación/Bootstrap creada (Framework comienza a crear los complementos necesarios, recursos que se definieron en su archivo *.ini).

    II. Toma su clase de arranque personalizada e inicializa métodos con init prefijo.

    tercero Carga el recurso FrontController y el controlador frontal inicia el proceso de envío de solicitudes (carga el módulo, el controlador, las vistas, llama a las devoluciones de llamada del complemento).

En general, puede realizar un seguimiento de todo usted mismo a partir de index.php archivo, luego a la biblioteca e intente comprender qué clases se cargan, en qué orden.

Respondido el 12 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.