Zend_Application-QuickStart.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.application.quick-start">
  4. <title>Inicio Rápido con Zend_Application</title>
  5. <para>
  6. Hay dos caminos para iniciarse con
  7. <classname>Zend_Application</classname>, y dependen de cómo inicia su
  8. proyecto. En cada caso, usted siempre comienza con la creación de la
  9. clase <code>Bootstrap</code>, y un archivo de configuración asociado.
  10. </para>
  11. <para>
  12. Si usted planea utilizar <classname>Zend_Tool</classname> para crear su
  13. proyecto, continúe leyendo abajo. Si usted va añadiendo
  14. <classname>Zend_Application</classname> a un proyecto existente,
  15. usted querrá <link linkend="zend.application.quick-start.manual">saltearse hacia adelante</link>.
  16. </para>
  17. <sect2 id="zend.application.quick-start.zend-tool">
  18. <title>Usando Zend_Tool</title>
  19. <para>
  20. La forma más rápida para comenzar a utilizar
  21. <classname>Zend_Application</classname> es usar
  22. <classname>Zend_Tool</classname> para generar su proyecto.
  23. Esto también creará su clase y archivo <code>Bootstrap</code>.
  24. </para>
  25. <para>
  26. Para crear un proyecto, ejecute el comando <code>zf</code> (en sistemas *nix):
  27. </para>
  28. <programlisting role="sh"><![CDATA[
  29. % zf create project newproject
  30. ]]></programlisting>
  31. <para>
  32. O el comando <code>zf.bat</code> en Windows:
  33. </para>
  34. <programlisting role="dos"><![CDATA[
  35. C:> zf.bat create project newproject
  36. ]]></programlisting>
  37. <para>
  38. Ambos crearán una estructura del proyecto que luce como lo siguiente:
  39. </para>
  40. <programlisting role="text"><![CDATA[
  41. newproject
  42. |-- application
  43. | |-- Bootstrap.php
  44. | |-- configs
  45. | | `-- application.ini
  46. | |-- controllers
  47. | | |-- ErrorController.php
  48. | | `-- IndexController.php
  49. | |-- models
  50. | `-- views
  51. | |-- helpers
  52. | `-- scripts
  53. | |-- error
  54. | | `-- error.phtml
  55. | `-- index
  56. | `-- index.phtml
  57. |-- library
  58. |-- public
  59. | `-- index.php
  60. `-- tests
  61. |-- application
  62. | `-- bootstrap.php
  63. |-- library
  64. | `-- bootstrap.php
  65. `-- phpunit.xml
  66. ]]></programlisting>
  67. <para>
  68. En el diagrama de arriba, su arranque(bootstrap) está en
  69. <code>newproject/application/Bootstrap.php</code>, y al principio
  70. se vería así:
  71. </para>
  72. <programlisting role="php"><![CDATA[
  73. class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
  74. {
  75. }
  76. ]]></programlisting>
  77. <para>
  78. Usted también notará que se ha creado un archivo de configuración,
  79. <code>newproject/application/configs/application.ini</code>.
  80. Tiene los siguientes contenidos:
  81. </para>
  82. <programlisting role="dosini"><![CDATA[
  83. [production]
  84. phpSettings.display_startup_errors = 0
  85. phpSettings.display_errors = 0
  86. includePaths.library = APPLICATION_PATH "/../library"
  87. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  88. bootstrap.class = "Bootstrap"
  89. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  90. [staging : production]
  91. [testing : production]
  92. phpSettings.display_startup_errors = 1
  93. phpSettings.display_errors = 1
  94. [development : production]
  95. phpSettings.display_startup_errors = 1
  96. phpSettings.display_errors = 1
  97. ]]></programlisting>
  98. <para>
  99. Todos los settings en este archivo de configuración son para
  100. su uso con <classname>Zend_Application</classname>
  101. y su bootstrap.
  102. </para>
  103. <para>
  104. Otro archivo de interés es <code>newproject/public/index.php</code>,
  105. el cual invoca a
  106. <classname>Zend_Application</classname> y lo despacha.
  107. </para>
  108. <programlisting role="php"><![CDATA[
  109. <?php
  110. // Define el path al directorio de la aplicación
  111. defined('APPLICATION_PATH')
  112. || define('APPLICATION_PATH',
  113. realpath(dirname(__FILE__) . '/../application'));
  114. // Define el medio ambiente de la aplicación
  115. defined('APPLICATION_ENV')
  116. || define('APPLICATION_ENV',
  117. (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
  118. : 'production'));
  119. /** Zend_Application */
  120. require_once 'Zend/Application.php';
  121. // Crea la application, el bootstrap, y lo ejecuta
  122. $application = new Zend_Application(
  123. APPLICATION_ENV,
  124. APPLICATION_PATH . '/configs/application.ini'
  125. );
  126. $application->bootstrap()
  127. ->run();
  128. ]]></programlisting>
  129. <para>
  130. Para continuar el inicio rápido, por favor
  131. <link linkend="zend.application.quick-start.resources">
  132. salte a la sección de Recursos</link>.
  133. </para>
  134. </sect2>
  135. <sect2 id="zend.application.quick-start.manual">
  136. <title>Añadir Zend_Application a su aplicación</title>
  137. <para>
  138. Los fundamentos de <classname>Zend_Application</classname> son bastante simples:
  139. </para>
  140. <itemizedlist>
  141. <listitem><para>
  142. Crear un archivo <code>application/Bootstrap.php</code>, con la
  143. clase <code>Bootstrap</code>.
  144. </para></listitem>
  145. <listitem><para>
  146. Crear un archivo de configuración
  147. <code>application/configs/application.ini</code>
  148. con la configuración básica necesaria para
  149. <classname>Zend_Application</classname>.
  150. </para></listitem>
  151. <listitem><para>
  152. Modificar su <code>public/index.php</code> para usar
  153. <classname>Zend_Application</classname>.
  154. </para></listitem>
  155. </itemizedlist>
  156. <para>
  157. Primero, genere su clase <code>Bootstrap</code>. Crear un archivo,
  158. <code>application/Bootstrap.php</code>, con los siguientes contenidos:
  159. </para>
  160. <programlisting role="php"><![CDATA[
  161. <?php
  162. class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
  163. {
  164. }
  165. ]]></programlisting>
  166. <para>
  167. Ahora, debe crear su configuración. Para este tutorial, vamos a
  168. usar un estilo de configuración INI; puede, por supuesto,
  169. usar un archivo de configuración XML o PHP. Crear el archivo
  170. <code>application/configs/application.ini</code>, proporcionando
  171. los siguientes contenidos:
  172. </para>
  173. <programlisting role="dosini"><![CDATA[
  174. [production]
  175. phpSettings.display_startup_errors = 0
  176. phpSettings.display_errors = 0
  177. includePaths.library = APPLICATION_PATH "/../library"
  178. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  179. bootstrap.class = "Bootstrap"
  180. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  181. [staging : production]
  182. [testing : production]
  183. phpSettings.display_startup_errors = 1
  184. phpSettings.display_errors = 1
  185. [development : production]
  186. phpSettings.display_startup_errors = 1
  187. phpSettings.display_errors = 1
  188. ]]></programlisting>
  189. <para>
  190. Ahora, modifiquemos su script de gateway,
  191. <code>public/index.php</code>. Si el archivo no existe, cree uno;
  192. de lo contrario, sustituirlo por el siguiente contenido:
  193. </para>
  194. <programlisting role="php"><![CDATA[
  195. <?php
  196. // Define el path al directorio de la aplicación
  197. defined('APPLICATION_PATH')
  198. || define('APPLICATION_PATH',
  199. realpath(dirname(__FILE__) . '/../application'));
  200. // Define el medio ambiente de la aplicación
  201. defined('APPLICATION_ENV')
  202. || define('APPLICATION_ENV',
  203. (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
  204. : 'production'));
  205. /** Zend_Application */
  206. require_once 'Zend/Application.php';
  207. // Crea la aplicación, el bootstrap, y lo ejecuta
  208. $application = new Zend_Application(
  209. APPLICATION_ENV,
  210. APPLICATION_PATH . '/configs/application.ini'
  211. );
  212. $application->bootstrap()
  213. ->run();
  214. ]]></programlisting>
  215. <para>
  216. Usted puede observar que el valor constante del entorno de aplicación
  217. busca una variable de entorno "APPLICATION_ENV".
  218. Recomendamos este ajuste en el medio ambiente de su servidor web.
  219. En Apache, puede configurar esto también en su definición de vhost,
  220. o en su archivo <code>.htaccess</code>. Recomendamos el siguiente
  221. contenido para su archivo <code>public/.htacces</code>:
  222. </para>
  223. <programlisting role="conf"><![CDATA[
  224. SetEnv APPLICATION_ENV development
  225. RewriteEngine On
  226. RewriteCond %{REQUEST_FILENAME} -s [OR]
  227. RewriteCond %{REQUEST_FILENAME} -l [OR]
  228. RewriteCond %{REQUEST_FILENAME} -d
  229. RewriteRule ^.*$ - [NC,L]
  230. RewriteRule ^.*$ index.php [NC,L]
  231. ]]></programlisting>
  232. <para>
  233. En este punto, está listo para comenzar a usar las ventajas de
  234. <classname>Zend_Application</classname>.
  235. </para>
  236. </sect2>
  237. <sect2 id="zend.application.quick-start.resources">
  238. <title>Agregando y Creando Recursos</title>
  239. <para>
  240. Si ha seguido las instrucciones anteriores, entonces su clase de
  241. arranque estará utilizando un controlador frontal,
  242. y cuando se ejecute, despachará el controlador frontal.
  243. Sin embargo, con toda probabilidad, necesitará un poco más de
  244. configuración que ésta.
  245. </para>
  246. <para>
  247. En esta sección, veremos como añadir dos recursos a su aplicación.
  248. En primer lugar, estableceremos los diseños,
  249. y luego personalizaremos su objeto de vista.
  250. </para>
  251. <para>
  252. Uno de los recursos standard provistos con
  253. <classname>Zend_Application</classname> es el recurso "layout".
  254. Este recurso espera que usted defina valores de configuración, los
  255. que entonces utilizará para configurar su instancia
  256. <classname>Zend_Layout</classname>.
  257. </para>
  258. <para>
  259. Para usarlo, todo lo que tenemos que hacer es actualizar el
  260. archivo de configuración.
  261. </para>
  262. <programlisting role="dosini"><![CDATA[
  263. [production]
  264. phpSettings.display_startup_errors = 0
  265. phpSettings.display_errors = 0
  266. includePaths.library = APPLICATION_PATH "/../library"
  267. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  268. bootstrap.class = "Bootstrap"
  269. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  270. ; ADD THE FOLLOWING LINES
  271. resources.layout.layout = "layout.phtml"
  272. resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
  273. [staging : production]
  274. [testing : production]
  275. phpSettings.display_startup_errors = 1
  276. phpSettings.display_errors = 1
  277. [development : production]
  278. phpSettings.display_startup_errors = 1
  279. phpSettings.display_errors = 1
  280. ]]></programlisting>
  281. <para>
  282. Si hasta ahora usted no lo ha hecho, genere el directorio
  283. <code>application/layouts/scripts/</code>, y el archivo
  284. <code>layout.phtml</code> dentro de ese directorio. Un buen diseño
  285. inicial es como sigue
  286. (y vincularlo con el recurso vista que cubriremos a continuación):
  287. </para>
  288. <programlisting role="php"><![CDATA[
  289. <?php echo $this->doctype() ?>
  290. <html>
  291. <head>
  292. <?php echo $this->headTitle() ?>
  293. <?php echo $this->headLink() ?>
  294. <?php echo $this->headStyle() ?>
  295. <?php echo $this->headScript() ?>
  296. </head>
  297. <body>
  298. <?php echo $this->layout()->content ?>
  299. </body>
  300. </html>
  301. ]]></programlisting>
  302. <para>
  303. En este punto, usted tendrá un diseño ya trabajando.
  304. </para>
  305. <para>
  306. Ahora, vamos añadir una vista de recurso personalizada.
  307. Cuando se inicializa la vista, queremos establecer el DocType HTML
  308. y un valor predeterminado del título para utilizarlo en la cabecera
  309. de HTML. Esto puede llevarse a cabo editando su clase
  310. <code>Bootstrap</code> para agregar un método.
  311. </para>
  312. <programlisting role="php"><![CDATA[
  313. <?php
  314. class Bootstrap extends Zend_Application_Bootstrap_BootstrapAbstract
  315. {
  316. protected function _initView()
  317. {
  318. // Inicializar la vista
  319. $view = new Zend_View();
  320. $view->doctype('XHTML1_STRICT');
  321. $view->headTitle('My First Zend Framework Application');
  322. // Agregarla al ViewRenderer
  323. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
  324. 'ViewRenderer'
  325. );
  326. $viewRenderer->setView($view);
  327. // Retornarla, de modo que pueda ser almacenada en el arranque (bootstrap)
  328. return $view;
  329. }
  330. }
  331. ]]></programlisting>
  332. <para>
  333. Este método se ejecuta automáticamente cuando arranca la aplicación,
  334. y se asegurará que su vista sea inicializada según sus necesidades
  335. de aplicación.
  336. </para>
  337. </sect2>
  338. <sect2 id="zend.application.quick-start.next-steps">
  339. <title>Próximos pasos con Zend_Application</title>
  340. <para>
  341. Con lo anterior usted comenzó con <classname>Zend_Application</classname>
  342. y pudo crear su aplicación bootstrap. Desde aquí, usted debe comenzar a
  343. crear sus métodos de recursos, o para la máxima re-usabilidad,
  344. clases de recursos de plugin. Y seguir leyendo para aprender más!
  345. </para>
  346. </sect2>
  347. </sect1>