Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/12/2009, 13:57
Avatar de Snaft_J1
Snaft_J1
 
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: APORTE: ZF Iniciación Rapida

Sistema de Arranque (Bootstrap)

La clase Bootstrap define los recursos y componentes a inicializar. De forma predeterminada, Zend Framework's inicializa los controladores (Front Controller), y utiliza los application/controllers/ como el directorio predeterminado en el cual buscara los controladores de acción (hablaremos más sobre esto más adelante). La clase tiene el siguiente aspecto:

Código PHP:
   //Application/bootstrap.php
    
 
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
 

 } 

Como puede ver, no es necesario mucho más para empezar.

Configuración (Configuration)

Mientras que Zend Framework es en sí mismo configurable, a menudo tendrá que configurar la aplicación. La configuración por defecto se coloca en application/configs/application.ini, y contiene algunas directrices básicas para el establecimiento de su entorno PHP (por ejemplo, transformando los reportes de error), lo que indica la ruta a su clase Bootstrap (como nombre de clase), y la ruta de acceso a los controladores acción (action controllers). Se puede visualizar como sigue:

Cita:
; application/configs/application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1


Hay varias cosas acerca de este archivo que debe tener en cuenta. En primer lugar, cuando se utiliza archivos de configuración INI, puede referenciar constantes directamente y ampliarlas;
APPLICATION_PATH en realidad es una constante. Además tenga en cuenta que hay varias secciones definidas: producción, montaje, pruebas y desarrollo (production, staging, testing, and development). Los tres últimos heredan la configuración desde el ambiente de "producción”. Esta es una manera útil de organizar la configuración para asegurarse de que los ajustes apropiados están disponibles en cada etapa de desarrollo de la aplicacion.

Controladores (Action Controllers)

En su aplicación los controladores de acción contienen el flujo de trabajo de la aplicación, y realizan el trabajo de mapear las peticiones apropiadas a los modelos y vistas.

Un controlador de acción debe incluir uno o más métodos que terminan en "Action"; estos métodos pueden entonces ser solicitados a través de la web. Por defecto, las URL en Zend Framework siguen el esquema /controller/action, Donde el "controller" se asigna al nombre del controlador de la acción (menos el sufijo de "controlador") y "action" se asigna a un método de la acción (menos el sufijo de "acción").

Normalmente, siempre se necesita un IndexController, Que es un controlador de reserva y que también sirve a la página principal del sitio, y un ErrorController, Que se utiliza para indicar cosas como errores HTTP 404 (controlador o acción que no fue encuentrado) y errores HTTP 500 (errores de aplicación).

El IndexController por defecto quedaría como se muestra a continuación:

Código PHP:
    // application/controllers/IndexController.php
  
class IndexController extends Zend_Controller_Action
 
{
     public function 
init()
     {
         
/* inicializar aqui los controladores de acción */
     
}
       public function 
indexAction()
     {
         
// cuerpo de la acción
     
}
 } 


Y el ErrorController por defecto quedaría como siguiente:

Código PHP:
   // application/controllers/ErrorController.php
   
class ErrorController extends Zend_Controller_Action
 
{
       public function 
errorAction()
     {
         
$errors $this->_getParam('error_handler');
                  switch (
$errors->type) {
             case 
Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
             case 
Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                          
// 404 error -- controller or action not found
                 
$this->getResponse()->setHttpResponseCode(404);
                 
$this->view->message 'Página no encontrada';
                 break;
             default:
                 
// application error
                 
$this->getResponse()->setHttpResponseCode(500);
                 
$this->view->message 'Error de aplicación';
                 break;
         }
                  
$this->view->exception $errors->exception;
         
$this->view->request   $errors->request;
     }
 } 


observe que:
1.
la clase IndexController no contiene código real.
2.la clase ErrorController hace referencia a una propiedad "view". Que observaremos muy bien en nuestro próximo tema.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....