Introducción a Zend Framework

 Aprendiendo Zend Framework

Apéndice

 Referencia de Zend Framework


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Traducción al 26.9% - Actualizado el 2011-11-16 - Revisión 24249 - Versión ZF 1.11.x

    14.2. Inicio rápido con Zend_Application

    Hay dos caminos para empezar con Zend_Application , y dependen de cómo inicia su proyecto. En cada caso, siempre se comienza con la creación de la clase Bootstrap , y un archivo de configuración asociado.

    Si se planea utilizar Zend_Tool para crear su proyecto, continúe leyendo. Si va añadir Zend_Application a un proyecto existente, debe ir aquí .

    14.2.1. Usando Zend_Tool

    La forma más rápida para comenzar a utilizar Zend_Application es usar Zend_Tool para generar su proyecto. Esto también creará su clase y archivo Bootstrap .

    Para crear un proyecto, ejecute el comando zf (en sistemas *nix):

    zf create project newproject

    O el comando zf.bat en Windows:

    C:> zf.bat create project newproject

    Ambos crearán una estructura del proyecto que se parece a lo siguiente:

    newproject
    |-- application
    |   |-- Bootstrap.php
    |   |-- configs
    |   |   `-- application.ini
    |   |-- controllers
    |   |   |-- ErrorController.php
    |   |   
    `-- IndexController.php
    |   |-- models
    |   `-- views
    |       |-- helpers
    |       
    `-- scripts
    |           |-- error
    |           |   `-- error.phtml
    |           
    `-- index
    |               `-- index.phtml
    |-- library
    |-- public
    |   
    `-- index.php
    `-- tests
        |-- application
        |   
    `-- bootstrap.php
        
    |-- library
        
    |   `-- bootstrap.php
        
    `-- phpunit.xml

    En el diagrama anterior, su bootstrap se encuentra en newproject/application/Bootstrap.php , y al principio se vería así:

    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {}

    También notará que se ha creado un archivo de configuración, newproject/application/configs/application.ini . Con el siguiente contenido:

    [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

    Todos las opciones en este archivo de configuración son para su uso con Zend_Application y su bootstrap.

    Otro archivo de interés es newproject/public/index.php , el cual invoca a Zend_Application y lo envía.

    <?php
    // Define el path al directorio de la aplicación
    defined('APPLICATION_PATH')
        || 
    define('APPLICATION_PATH',
                  
    realpath(dirname(__FILE__) . '/../application'));

    // Define el entorno de la aplicación
    defined('APPLICATION_ENV')
        || 
    define('APPLICATION_ENV',
                  (
    getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                             : 
    'production'));

    /** Zend_Application */
    require_once 'Zend/Application.php';

    // Crea la application, el bootstrap, y lo ejecuta
    $application = new Zend_Application(
        
    APPLICATION_ENV,
        
    APPLICATION_PATH '/configs/application.ini'
    );
    $application->bootstrap()
                 ->
    run();

    Para continuar con el inicio rápido, por favor vaya a la sección de Recursos .

    14.2.2. Añadir Zend_Application a su aplicación

    Los fundamentos de Zend_Application son bastante simples:

    • Crear un archivo application/Bootstrap.php , con la clase Bootstrap .

    • Crear un archivo de configuración application/configs/application.ini con la configuración básica necesaria para Zend_Application .

    • Modificar su public/index.php para usar Zend_Application .

    Primero, genere su clase Bootstrap . Crear un archivo, application/Bootstrap.php , con el siguiente contenido:

    <?php
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    }

    Ahora, debe crear su configuración. Para este tutorial, usaremos una configuración de estilo INI ; puede, por supuesto, usar un archivo de configuración XML o PHP . Cree el archivo application/configs/application.ini , proporcionando el siguiente contenido.

    [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

    Ahora, modifiquemos su script de entrada (gateway), public/index.php . Si el archivo no existe, cree uno; de lo contrario, sustitúyalo por el siguiente contenido:

    <?php
    // Define la ruta al directorio de la aplicación
    defined('APPLICATION_PATH')
        || 
    define('APPLICATION_PATH',
                  
    realpath(dirname(__FILE__) . '/../application'));

    // Define el entorno de la aplicación
    defined('APPLICATION_ENV')
        || 
    define('APPLICATION_ENV',
                  (
    getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                             : 
    'production'));

    // Typically, you will also want to add your library/ directory
    // to the include_path, particularly if it contains your Zend Framework installed
    set_include_path(implode(PATH_SEPARATOR, array(
        
    dirname(dirname(__FILE__)) . '/library',
        
    get_include_path(),
    )));

    /** Zend_Application */
    require_once 'Zend/Application.php';

    // Crea la aplicación, el bootstrap, y lo ejecuta
    $application = new Zend_Application(
        
    APPLICATION_ENV,
        
    APPLICATION_PATH '/configs/application.ini'
    );
    $application->bootstrap()
                ->
    run();

    Se puede observar que el valor constante del entorno de la aplicación busca una variable de entorno "APPLICATION_ENV". Recomendamos este ajuste en el entorno de su servidor web. En Apache, puede también configurarlo en la definición de su vhost, o en su archivo .htaccess . Recomendamos el siguiente contenido para su archivo public/.htaccess :

    SetEnv APPLICATION_ENV development

    RewriteEngine On
    RewriteCond 
    %{REQUEST_FILENAME} -[OR]
    RewriteCond %{REQUEST_FILENAME} -[OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule 
    ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    [Nota] Más información sobre mod_rewrite

    Las reglas de reescritura le permitin reescribir el acceso a cualquier archivo en la raíz de los documentos web de su host virtual. Si hay archivos que no desea que esten expuestos y desea ocualtarlos, puedes ser mas restrictivo en tus reglas Ir a la página web de Apache para obtener más información acerca de about mod_rewrite .

    En este punto, está listo para comenzar a usar las ventajas de Zend_Application .

    14.2.3. Agregando y Creando Recursos

    Si ha seguido las instrucciones anteriores, entonces su clase de arranque estará utilizando un controlador frontal (front controller), y cuando se ejecute, enviará el controlador frontal (front controller). Sin embargo, con toda probabilidad, necesitará un poco más de configuración que ésta.

    En esta sección, veremos como añadir dos recursos a su aplicación. En primer lugar, estableceremos los layouts, y luego vamos a personalizar sus objetos de la vista.

    Uno de los recursos estándar provistos con Zend_Application es el recurso "layout". Este recurso espera que definas valores de configuración, los que entonces utilizará para configurar su instancia Zend_Layout .

    Para usarlo, todo lo que tenemos que hacer es actualizar el archivo de configuración.

    [production]
    phpSettings.display_startup_errors 0
    phpSettings
    .display_errors 0
    bootstrap
    .path APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    resources.frontController.controllerDirectory APPLICATION_PATH "/controllers"
    ADD THE FOLLOWING LINES
    resources
    .layout.layout "layout"
    resources.layout.layoutPath APPLICATION_PATH "/layouts/scripts"

    [staging production]

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

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

    Si hasta ahora no lo ha hecho, genere el directorio application/layouts/scripts/ , y el archivo layout.phtml dentro de ese directorio. Un buen layout inicial es como sigue (y vincularlo con los recursos de la vista que cubriremos a continuación):

    <?php echo $this->doctype() ?>
    <html>
    <head>
        <?php echo $this->headTitle() ?>
        <?php echo $this->headLink() ?>
        <?php echo $this->headStyle() ?>
        <?php echo $this->headScript() ?>
    </head>
    <body>
        <?php echo $this->layout()->content ?>
    </body>
    </html>

    En este punto, usted tendrá un layout ya trabajando.

    Ahora, vamos añadir una vista de recurso personalizada. Cuando se inicializa la vista, queremos establecer el DocType HTML y un valor predeterminado del título para utilizarlo en la cabecera de HTML . Esto puede llevarse a cabo editando su clase Bootstrap para agregar un método.

    <?php
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {    protected function _initView()
        {
            
    // Inicializar la vista
            
    $view = new Zend_View();
            
    $view->doctype('XHTML1_STRICT');
            
    $view->headTitle('My First Zend Framework Application');

            
    // Añadir al ViewRenderer
            
    $viewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper(
                
    'ViewRenderer'
            
    );
            
    $viewRenderer->setView($view);

            
    // Retorno, de modo que pueda ser almacenada en el arranque (bootstrap)

            
    return $view;
        }
    }

    Este método se ejecuta automáticamente cuando arranca la aplicación, y se asegurará que su vista sea inicializada según las necesidades de su aplicación.

    14.2.4. Próximos pasos con Zend_Application

    Con lo anterior debería poder comenzar con Zend_Application y con la creación del bootstrap de su aplicación. De aquí, usted debe comenzar a crear sus métodos de recursos, o para la máxima re-usabilidad, clases de recursos de plugin. Y seguir leyendo para aprender más!

    digg delicious meneame google twitter technorati facebook

    Comentarios

    Loading...