| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20763 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.application.quick-start">
- <title>Inicio rápido con Zend_Application</title>
- <para>
- Hay dos caminos para empezar con
- <classname>Zend_Application</classname>
- , y dependen de cómo inicia su
- proyecto. En cada caso, siempre se comienza con la creación de
- la
- clase
- <classname>Bootstrap</classname>
- , y un archivo de configuración asociado.
- </para>
- <para>
- Si se planea utilizar
- <classname>Zend_Tool</classname>
- para crear su
- proyecto, continúe leyendo. Si va añadir
- <classname>Zend_Application</classname>
- a un proyecto existente,
- debe
- <link linkend="zend.application.quick-start.manual"> ir aquí</link>
- .
- </para>
- <sect2 id="zend.application.quick-start.zend-tool">
- <title>Usando Zend_Tool</title>
- <para>
- La forma más rápida para comenzar a utilizar
- <classname>Zend_Application</classname>
- es usar
- <classname>Zend_Tool</classname>
- para generar su proyecto.
- Esto también creará su clase y archivo
- <classname>Bootstrap</classname>
- .
- </para>
- <para>
- Para crear un proyecto, ejecute el comando
- <command>zf</command>
- (en sistemas *nix):
- </para>
- <programlisting language="sh"><![CDATA[
- % zf create project newproject
- ]]></programlisting>
- <para>
- O el comando
- <filename>zf.bat</filename>
- en Windows:
- </para>
- <programlisting language="dos"><![CDATA[
- C:> zf.bat create project newproject
- ]]></programlisting>
- <para>
- Ambos crearán una estructura del proyecto que se parece a lo siguiente:
- </para>
- <programlisting language="text"><![CDATA[
- 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
- ]]></programlisting>
- <para>
- En el diagrama anterior, su bootstrap se encuentra en
- <filename>newproject/application/Bootstrap.php</filename>
- , y al principio
- se vería así:
- </para>
- <programlisting language="php"><![CDATA[
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {}
- ]]></programlisting>
- <para>
- También notará que se ha creado un archivo de configuración,
- <filename>newproject/application/configs/application.ini</filename>
- .
- Con el siguiente contenido:
- </para>
- <programlisting language="dosini"><![CDATA[
- [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
- ]]></programlisting>
- <para>
- Todos las opciones en este archivo de configuración son para
- su uso con
- <classname>Zend_Application</classname>
- y su bootstrap.
- </para>
- <para>
- Otro archivo de interés es
- <filename>newproject/public/index.php</filename>
- ,
- el cual invoca a
- <classname>Zend_Application</classname>
- y lo envía.
- </para>
- <programlisting language="php"><![CDATA[
- <?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();
- ]]></programlisting>
- <para>
- Para continuar con el inicio rápido, por favor
- <link linkend="zend.application.quick-start.resources">
- vaya a la sección de Recursos</link>
- .
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.manual">
- <title>Añadir Zend_Application a su aplicación</title>
- <para>
- Los fundamentos de
- <classname>Zend_Application</classname>
- son bastante simples:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Crear un archivo
- <filename>application/Bootstrap.php</filename>
- , con la
- clase
- <classname>Bootstrap</classname>
- .
- </para>
- </listitem>
- <listitem>
- <para>
- Crear un archivo de configuración
- <filename>application/configs/application.ini</filename>
- con la configuración básica necesaria para
- <classname>Zend_Application</classname>
- .
- </para>
- </listitem>
- <listitem>
- <para>
- Modificar su
- <filename>public/index.php</filename>
- para usar
- <classname>Zend_Application</classname>
- .
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Primero, genere su clase
- <classname>Bootstrap</classname>
- . Crear un archivo,
- <filename>application/Bootstrap.php</filename>
- , con el siguiente contenido:
- </para>
- <programlisting language="php"><![CDATA[
- <?php
- class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
- {
- }
- ]]></programlisting>
- <para>
- Ahora, debe crear su configuración. Para este tutorial, usaremos
- una configuración de
- estilo
- <acronym>INI</acronym>
- ; puede, por supuesto,
- usar un archivo de configuración
- <acronym>XML</acronym>
- o
- <acronym>PHP</acronym>
- . Cree el archivo
- <filename>application/configs/application.ini</filename>
- , proporcionando
- el siguiente contenido.
- </para>
- <programlisting language="dosini"><![CDATA[
- [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
- ]]></programlisting>
- <para>
- Ahora, modifiquemos su script de entrada (gateway),
- <filename>public/index.php</filename>
- . Si el archivo no existe, cree uno;
- de lo contrario, sustitúyalo por el siguiente
- contenido:
- </para>
- <programlisting language="php"><![CDATA[
- <?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();
- ]]></programlisting>
- <para>
- 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
- <filename>.htaccess</filename>
- . Recomendamos el siguiente
- contenido para su archivo
- <filename>public/.htaccess</filename>
- :
- </para>
- <programlisting language="conf"><![CDATA[
- SetEnv APPLICATION_ENV development
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} -s [OR]
- RewriteCond %{REQUEST_FILENAME} -l [OR]
- RewriteCond %{REQUEST_FILENAME} -d
- RewriteRule ^.*$ - [NC,L]
- RewriteRule ^.*$ index.php [NC,L]
- ]]></programlisting>
- <note>
- <title>Más información sobre mod_rewrite</title>
- <para>
- 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
- <ulink url="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">para obtener más información acerca de about mod_rewrite</ulink>
- .
- </para>
- </note>
- <para>
- En este punto, está listo para comenzar a usar las ventajas de
- <classname>Zend_Application</classname>
- .
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.resources">
- <title>Agregando y Creando Recursos</title>
- <para>
- 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.
- </para>
- <para>
- 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.
- </para>
- <para>
- Uno de los recursos estándar provistos con
- <classname>Zend_Application</classname>
- es el recurso "layout".
- Este recurso espera que definas valores de configuración, los
- que
- entonces utilizará para configurar su instancia
- <classname>Zend_Layout</classname>
- .
- </para>
- <para>
- Para usarlo, todo lo que tenemos que hacer es actualizar el
- archivo de configuración.
- </para>
- <programlisting language="dosini"><![CDATA[
- [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
- ]]></programlisting>
- <para>
- Si hasta ahora no lo ha hecho, genere el directorio
- <filename>application/layouts/scripts/</filename>
- , y el archivo
- <filename>layout.phtml</filename>
- dentro de ese directorio. Un buen layout
- inicial es como sigue
- (y vincularlo con los
- recursos de la vista que cubriremos a continuación):
- </para>
- <programlisting language="php"><![CDATA[
- <?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>
- ]]></programlisting>
- <para>
- En este punto, usted tendrá un layout ya trabajando.
- </para>
- <para>
- Ahora, vamos añadir una vista de recurso personalizada.
- Cuando se inicializa la vista,
- queremos establecer el DocType
- <acronym>HTML</acronym>
- y un valor predeterminado del título para utilizarlo en la cabecera
- de
- <acronym>HTML</acronym>
- . Esto puede llevarse a cabo editando su clase
- <classname>Bootstrap</classname>
- para agregar un método.
- </para>
- <programlisting language="php"><![CDATA[
- <?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;
- }
- }]]></programlisting>
- <para>
- 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.
- </para>
- </sect2>
- <sect2 id="zend.application.quick-start.next-steps">
- <title>Próximos pasos con Zend_Application</title>
- <para>
- Con lo anterior debería poder comenzar con
- <classname>Zend_Application</classname>
- 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!
- </para>
- </sect2>
- </sect1>
|