
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Otro Blog Más &#187; zend framework</title>
	<atom:link href="http://otroblogmas.com/category/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://otroblogmas.com</link>
	<description>Blog de informática: programación, internet, php, wordpress, zend framework, mysql, windows, mootools, linux,...</description>
	<lastBuildDate>Thu, 26 Apr 2012 06:00:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Error con Zend Tool y el fichero NetBeansCommandsProvider.php</title>
		<link>http://otroblogmas.com/error-zend-tool-netbeanscommandsprovider-php/</link>
		<comments>http://otroblogmas.com/error-zend-tool-netbeanscommandsprovider-php/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 07:00:08 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[NetBeansCommandsProvider]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xampp]]></category>
		<category><![CDATA[zend_tool]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=2251</guid>
		<description><![CDATA[En la nueva versión Netbeans 6.9, éste trae una serie de funciones para trabajar con Zend Framework. Permite utilizar directamente Zend Tool, herramienta que crea nuevos componentes de un proyecto Zend Framework como modulos, vistas, controladores, &#8230; El problema surge que cuando se configura Netbeans para trabajar con Zend Tool, automáticamente deja de funcionar Zend [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-full wp-image-2255" title="Tools icon" src="http://otroblogmas.com/wp-content/uploads/2010/08/tools_icon.png" alt="tools icon Error con Zend Tool y el fichero NetBeansCommandsProvider.php" width="150" height="150" />En la nueva versión Netbeans 6.9, éste trae una serie de funciones para trabajar con Zend Framework. Permite utilizar directamente<strong><a href="http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/"> Zend Tool</a></strong>, herramienta que crea nuevos componentes de un proyecto Zend Framework como modulos, vistas, controladores, &#8230;</p>
<p><span id="more-2251"></span></p>
<p style="text-align: justify;">El <strong>problema</strong> surge que cuando se configura Netbeans para trabajar con Zend Tool, automáticamente <strong>deja de funcionar Zend Tool</strong> desde línea de comandos, dando el siguiente error:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Warning: include_once<span style="color: #7a0874; font-weight: bold;">&#40;</span>NetBeansCommandsProvider.php<span style="color: #7a0874; font-weight: bold;">&#41;</span>: failed to open stream: No such <span style="color: #c20cb9; font-weight: bold;">file</span> or directory <span style="color: #000000; font-weight: bold;">in</span> C:\xampp\php\PEAR\Zend\Loader.php on line <span style="color: #000000;">146</span>
&nbsp;
Zend_Exception: File <span style="color: #ff0000;">&quot;NetBeansCommandsProvider.php&quot;</span> does not exist or class <span style="color: #ff0000;">&quot;NetBeansCommandsProvider&quot;</span> was not found <span style="color: #000000; font-weight: bold;">in</span> the <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> C:\xampp\php\PEAR\Zend\Loader.php on line <span style="color: #000000;">99</span></pre></div></div>

<p style="text-align: justify;">Esto es debido a que esta buscando el archivo <strong><a href="http://otroblogmas.com/tag/netbeanscommandsprovider/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con NetBeansCommandsProvider">NetBeansCommandsProvider</a>.php</strong> y no lo encuentra. Para que no surja el problema, existen dos maneras:</p>
<ol style="text-align: justify;">
<li>Primera opción
<ol>
<li>Buscar el archivo <strong>zf.ini</strong> en el ordenador (seguramente estará en la carpeta de nuestro perfil de usuario).</li>
<li>Renombrar &#8216;<strong>includepath</strong>&#8216; por &#8216;<strong>include_path</strong>&#8216;</li>
<li>Borrar las rutas que hacen referencia al Netbeans 6.9</li>
<li>Borrar la segunda línea que hace referencia a Netbeans.</li>
</ol>
</li>
<li>Segunda opción
<ol>
<li>Buscar el archivo <strong>NetBeansCommandsProvider.php</strong> por el ordenador (seguramente uno estará en <strong>C:\Archivos de programa\NetBeans 6.9\php\zend</strong>).</li>
<li style="text-align: justify;">Copiar el contenido a la librería de Zend (en caso de no querer mezclar la librería de Zend de un proyecto con este archivo, se puede copiar en un<strong> include_path</strong>, en XAMPP por ejemplo se puede copiar en <strong>C:\xampp\php\PEAR\Zend</strong>)</li>
</ol>
</li>
</ol>
<p>Vía <a href="http://forums.netbeans.org/post-75072.html">NetBeans Forums</a> y <a href="http://www.forosdelweb.com/f17/error-con-netbeans-785174/">Foros del Web</a>.</p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/error-zend-tool-netbeanscommandsprovider-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Error cuando Zend_Layout se muestra dos veces</title>
		<link>http://otroblogmas.com/error-cuando-zend_layout-se-muestra-dos-veces/</link>
		<comments>http://otroblogmas.com/error-cuando-zend_layout-se-muestra-dos-veces/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 07:00:14 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[zend_layout]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=2129</guid>
		<description><![CDATA[Un error que ha surgido trabajando con Zend Framework, es que hay unas excepciones que cuando son tratadas por el controlador de errores, se muestra dos veces el contenido del layout. Esto es debido a que Zend Framework trae por defecto dos plugins (si se utiliza el Zend_Layout), que estan al final de la pila [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/error-zend-tool-netbeanscommandsprovider-php/' rel='bookmark' title='Error con Zend Tool y el fichero NetBeansCommandsProvider.php'>Error con Zend Tool y el fichero NetBeansCommandsProvider.php</a></li>
<li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Acceder a Zend_View desde un plugin en Zend Framework'>Acceder a Zend_View desde un plugin en Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-medium wp-image-2132" title="mvc" src="http://otroblogmas.com/wp-content/uploads/2010/07/mvc-156x150.png" alt="mvc 156x150 Error cuando Zend Layout se muestra dos veces" width="156" height="150" />Un error que ha surgido trabajando con <a href="http://otroblogmas.com/tag/zend-framework/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend framework">Zend Framework</a>, es que hay unas <strong>excepciones </strong>que cuando son tratadas por el controlador de errores, <strong>se muestra dos veces el contenido del layout</strong>. Esto es debido a que <a href="http://devzone.zend.com/article/3372">Zend Framework trae por defecto dos plugins</a> (si se utiliza el <a href="http://framework.zend.com/manual/en/zend.layout.html">Zend_Layout</a>), que estan al final de la pila de ejecución de plugins:</p>
<p><span id="more-2129"></span></p>
<ul>
<li style="text-align: justify;"><a href="http://otroblogmas.com/tag/zend_layout/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend_layout">Zend_Layout</a>_Controller_Plugin_Layout: este plugin actua en el <em>postDispatch</em>, y aplica el <strong>patrón <a href="http://martinfowler.com/eaaCatalog/twoStepView.html">Two Step View</a></strong> (captura el contenido en el Zend_Response, y después lo pasa al Zend_Layout para processarlo y se inyectado en el script de la vista del Layout).</li>
<li style="text-align: justify;">Zend_Controller_Plugin_ErrorHandler: también actua en el postDispatch, y se encarga de<strong> comprobar si se ha producido una excepción</strong> y ha sido registrada. En tal caso, ejecuta otra petición al controlador y acción para tratar errores y mostrarlos según sea conveniente.</li>
</ul>
<p style="text-align: justify;">El <strong>plugin de layout</strong> es ejecutado en la posición 99 de la pila, y el <strong>plugin de errores</strong> en la 100. Esto provoca que se ejecute una petición en el controlador de errores, habiendo establecido ya el layout. Para resolver este problema existen dos formas: <strong>cambiar el orden</strong> de ejecución de los plugins, o <strong>vaciando el contenido de la respuesta</strong> cuando se ejecuta la petición de tratamiento de errores.</p>
<p style="text-align: justify;">La última opción es la más simple y conlleva menos problemas; solamente hay que añadir una línea en la acción del controlador de errores. Normalmente se trata del errorAction del ErrorController, y la primera línea de código debería ser:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> errorAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">clearBody</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">//handle error ........</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p style="text-align: justify;">El siguiente diagrama muestra el <strong>flujo de ejecución de Zend Framework</strong>:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/07/zend-framework-flow-diagram.png"><img class="aligncenter size-full wp-image-2131" title="zend-framework-flow-diagram" src="http://otroblogmas.com/wp-content/uploads/2010/07/zend-framework-flow-diagram.png" alt="zend framework flow diagram Error cuando Zend Layout se muestra dos veces" width="1044" height="723" /></a></p>
<p style="text-align: justify;">Artículos relacionados:</p>
<ul>
<li><a href="http://stackoverflow.com/questions/1476627/layout-being-rendered-twice">Layout being rendered twice</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.frontcontroller">Zend_Application_Resource_Frontcontroller</a></li>
<li><a href="http://devzone.zend.com/article/3372">Front Controller Plugins in Zend Framework</a></li>
<li><a href="http://framework.zend.com/issues/browse/ZF-8523">Zend_Controller_Plugins_ErrorHandler uses layout script twice</a></li>
</ul>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/error-zend-tool-netbeanscommandsprovider-php/' rel='bookmark' title='Error con Zend Tool y el fichero NetBeansCommandsProvider.php'>Error con Zend Tool y el fichero NetBeansCommandsProvider.php</a></li>
<li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Acceder a Zend_View desde un plugin en Zend Framework'>Acceder a Zend_View desde un plugin en Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/error-cuando-zend_layout-se-muestra-dos-veces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar Subversion para utilizar los repositorios externos de Zend Framework</title>
		<link>http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/</link>
		<comments>http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 07:00:03 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[respositorios]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn:externals]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=2086</guid>
		<description><![CDATA[Una de las ventajas, y a la vez inconvenientes, de Zend Framework, es su constante y habitual actualización, y por lo tanto la publicación de nuevas versiones periódicamente. Inconveniente porque si queremos tener la última versión de la librería en nuestro proyecto, debemos bajarnos la última versión y copiarla al proyecto. Pero si la aplicación [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-2089 alignright" title="Subversion logo" src="http://otroblogmas.com/wp-content/uploads/2010/07/subversion_logo-173x150.png" alt="subversion logo 173x150 Configurar Subversion para utilizar los repositorios externos de Zend Framework" width="173" height="150" /></p>
<p style="text-align: justify;">Una de las ventajas, y a la vez inconvenientes, de <a href="http://otroblogmas.com/tag/zend-framework/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend framework">Zend Framework</a>, es su constante y habitual actualización, y por lo tanto la publicación de <strong>nuevas versiones periódicamente</strong>. Inconveniente porque <strong>si queremos tener la última versión</strong> de la librería en nuestro proyecto, debemos bajarnos la última versión y copiarla al proyecto. Pero si la aplicación se encuentra bajo <a href="http://otroblogmas.com/tag/subversion/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con subversion">Subversion</a>, existe la opción de que <strong>la librería dependa de una versión del repositorio oficial</strong>.</p>
<p><span id="more-2086"></span></p>
<p style="text-align: justify;">Para ello, hay que añadir la propiedad &#8216;<strong>svn:externals</strong>&#8216; de Subversion a la carpeta &#8216;<strong>library</strong>&#8216;. Los pasos son los siguientes:</p>
<ul>
<li style="text-align: justify;"><strong>Eliminar la carpeta</strong> &#8216;Zend&#8217; de la librería en caso de que ya la tuviéramos previamente y <strong>hacer COMMIT</strong> para borrarla del repositorio.</li>
<li style="text-align: justify;"><strong>Añadir propiedad</strong> svn:externals a la carpeta &#8216;libray&#8217;, y establecer como valor la ruta hacia el repositorio de Zend Framework. Actualmente, para la versión 1.10.6 es la siguiente:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">Zend http://framework.zend.com/svn/framework/standard/tags/release-1.10.6/library/Zend/</pre></div></div>

</li>
<li style="text-align: justify;"><strong>Hacer UPDATE</strong> de la carpeta &#8216;<strong>library</strong>&#8216; para que se descargue la versión de Zend Framework. Al final de la operación saldrá un<strong> aviso de error</strong> indicando que es necesario hacer un CLEAN UP.</li>
<li style="text-align: justify;"><strong>Hacer CLEAN UP</strong> de la carpeta &#8216;<strong>library</strong>&#8216;.</li>
<li style="text-align: justify;"><strong>Hacer COMMIT</strong> de la carpeta &#8216;<strong>library</strong>&#8216; para que los cambios tengan efecto en el repositorio.</li>
</ul>
<p style="text-align: justify;">En el futuro, <strong>cuando se desee una nueva versión</strong> o alguna anterior, solamente hay que <strong>cambiar la URL de la propiedad svn:externals</strong> de la carpeta &#8216;<strong>library</strong>&#8216;, y hacer <strong>UPDATE </strong>y <strong>COMMIT </strong>(<del datetime="2010-08-02T07:50:29+00:00">esto último esta pendiente de probar a la espera de que salga una nueva versión de Zend Framework</del> Probado, ningún problema).</p>
<p>Vía <a href="http://twitter.com/eloipoch">@eloipoch</a>.</p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acceder a Zend_View desde un plugin en Zend Framework</title>
		<link>http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/</link>
		<comments>http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 07:00:44 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[zend_view]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=2007</guid>
		<description><![CDATA[Código para acceder a la vista desde un plugin de Zend Framework. Solo es necesario desde los métodos: routeStartup routeShutdown preDispatch El código es el siguiente: $viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper&#40;'ViewRenderer'&#41;; $viewRenderer-&#62;initView&#40;&#41;; $view = $viewRenderer-&#62;view; $view-&#62;assign&#40;'foo', 'bar'&#41;; Otra manera de acceder es: $view = Zend_Controller_Front::getInstance&#40;&#41;-&#62;getParam&#40;'bootstrap'&#41; -&#62;getResource&#40;'view'&#41;; $view-&#62;assign&#40;'foo', 'bar'&#41;; Entradas relacionadas: ZFDebug: debug bar para Zend Framework Configurar [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/zend_auth-identificacion-y-autentificacion-en-zend-framework/' rel='bookmark' title='Zend_Auth: Identificación y autentificación en Zend Framework'>Zend_Auth: Identificación y autentificación en Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-full wp-image-787" title="Zend Framework" src="http://otroblogmas.com/wp-content/uploads/2009/10/zend-framework.png" alt="zend framework Acceder a Zend View desde un plugin en Zend Framework" width="150" height="99" />Código para <strong>acceder a la vista desde un plugin</strong> de <a href="http://otroblogmas.com/tag/zend-framework/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend framework">Zend Framework</a>. Solo es necesario desde los métodos:</p>
<ul>
<li>routeStartup</li>
<li>routeShutdown</li>
<li>preDispatch</li>
</ul>
<p style="text-align: justify;">El código es el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$viewRenderer</span> <span style="color: #339933;">=</span> Zend_Controller_Action_HelperBroker<span style="color: #339933;">::</span><span style="color: #004000;">getExistingHelper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ViewRenderer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$viewRenderer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">initView</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$view</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$viewRenderer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'bar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Otra manera de acceder es:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$view</span> <span style="color: #339933;">=</span> Zend_Controller_Front<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParam</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'bootstrap'</span><span style="color: #009900;">&#41;</span>
                                            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'view'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'bar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/zend_auth-identificacion-y-autentificacion-en-zend-framework/' rel='bookmark' title='Zend_Auth: Identificación y autentificación en Zend Framework'>Zend_Auth: Identificación y autentificación en Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atajos de teclado de Netbeans para Zend Framework</title>
		<link>http://otroblogmas.com/atajos-de-teclado-de-netbeans-para-zend-framework/</link>
		<comments>http://otroblogmas.com/atajos-de-teclado-de-netbeans-para-zend-framework/#comments</comments>
		<pubDate>Wed, 26 May 2010 07:00:30 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend_debug]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1959</guid>
		<description><![CDATA[Netbeans trae una serie de funcionalidades nuevas en la nueva versión 6.9, de las cuales unas son para trabajar con Zend Framework. Igualmente, en el día a día, se va debugando el código añadiendo chivatos o var_dump. Zend Framework trae la clase Zend_Debug, que solo posee un método estático ( dump() ) que utiliza la [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-thumbnail wp-image-1741" title="Logo Netbeans" src="http://otroblogmas.com/wp-content/uploads/2010/02/netbeans-logo-150x150.png" alt="netbeans logo 150x150 Atajos de teclado de Netbeans para Zend Framework" width="150" height="150" />Netbeans trae una serie de funcionalidades nuevas en la nueva versión 6.9, de las cuales unas son para trabajar con Zend Framework.</p>
<p style="text-align: justify;">Igualmente, en el día a día, se va <strong>debugando el código</strong> añadiendo <em>chivatos</em> o <a href="http://otroblogmas.com/dbug-clase-en-php-para-substituir-a-var_dump-o-print_r/">var_dump</a>. Zend Framework trae la clase <a href="http://framework.zend.com/manual/en/zend.debug.html">Zend_Debug</a>, que solo posee un método estático ( <em>dump()</em> ) que utiliza la función var_dump para mostrar información.</p>
<p><span id="more-1959"></span></p>
<p style="text-align: justify;">Como constantemente se escribe la llamada a este método (<em><a href="http://otroblogmas.com/tag/zend_debug/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend_debug">Zend_Debug</a>::dump()</em>), es conveniente crear un par de plantillas de código en Netbeans para que con un par de atajos de teclado se escriba toda la llamada. En el apartado de <strong>&#8216;Editor&#8217;</strong> dentro de <strong>opciones</strong>, hay que ir al apartado <strong>&#8216;Code Templates&#8217;</strong> y seleccionar el lenguage <strong>&#8216;PHP&#8217;</strong>.</p>
<p style="text-align: justify;">Para crear un nuevo template, pulsar el botón <strong>&#8216;New&#8217;</strong>, y escribir la abreviación. Después en <strong>&#8216;Expanded Text&#8217;</strong> añadir el código de la plantilla.</p>
<p><a href="http://otroblogmas.com/wp-content/uploads/2010/05/screenshot-netbeans-code-template.gif"><img class="aligncenter size-full wp-image-1963" title="Screenshot Netbeans Code Template" src="http://otroblogmas.com/wp-content/uploads/2010/05/screenshot-netbeans-code-template.gif" alt="screenshot netbeans code template Atajos de teclado de Netbeans para Zend Framework" width="757" height="648" /></a></p>
<p style="text-align: justify;">Un compañero de trabajo me paso <strong>dos templates</strong> que utilizo constantemente. Así, con escribir la abreviación y pulsar la tecla de tabulación, se escribe todo el template.</p>
<p><strong>Abreviación</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">zd</pre></div></div>

<p><strong>Plantilla</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Zend_Debug<span style="color: #339933;">::</span><span style="color: #004000;">Dump</span><span style="color: #009900;">&#40;</span>$$$<span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #009900;">&#125;</span>$<span style="color: #009900;">&#123;</span>selection<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Abreviación</strong></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">zdd</pre></div></div>

<p><strong>Plantilla</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Zend_Debug<span style="color: #339933;">::</span><span style="color: #004000;">Dump</span><span style="color: #009900;">&#40;</span>$$$<span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #009900;">&#125;</span>$<span style="color: #009900;">&#123;</span>selection<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/atajos-de-teclado-de-netbeans-para-zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</title>
		<link>http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/</link>
		<comments>http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/#comments</comments>
		<pubDate>Fri, 14 May 2010 06:00:22 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpunit]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1901</guid>
		<description><![CDATA[Una vez configurado el entorno de trabajo de PHPUnit y Zend Framework, ahora se puede configurar Netbeans para que realice las pruebas unitarias, y para poder crearlas. De esta manera, sin salir del editor ni necesitar utilizar la línea de comando, se podrá comprobar el correcto funcionamiento del desarrollo. Primero hay que indicarle al Netbeans [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/atajos-de-teclado-de-netbeans-para-zend-framework/' rel='bookmark' title='Atajos de teclado de Netbeans para Zend Framework'>Atajos de teclado de Netbeans para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-xampp-para-debugar-con-xdebug-en-netbeans/' rel='bookmark' title='Configurar XAMPP para debugar con XDebug en Netbeans'>Configurar XAMPP para debugar con XDebug en Netbeans</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://otroblogmas.com/wp-content/uploads/2010/05/phpunit-oreilly.jpg"><img class="alignright size-thumbnail wp-image-1941" title="PHPUnit OReilly" src="http://otroblogmas.com/wp-content/uploads/2010/05/phpunit-oreilly-91x150.jpg" alt="phpunit oreilly 91x150 Configurar Netbeans para trabajar con PHPUnit y Zend Framework" width="91" height="150" /></a>Una vez configurado el <a href="http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework">entorno de trabajo de PHPUnit y Zend Framework</a>, ahora se puede <strong>configurar <a href="http://otroblogmas.com/tag/netbeans/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con netbeans">Netbeans</a> para que realice las pruebas unitarias</strong>, y para poder crearlas. De esta manera, sin salir del editor ni necesitar utilizar la línea de comando, se podrá comprobar el correcto funcionamiento del desarrollo.</p>
<p style="text-align: justify;"><span id="more-1901"></span><br />
Primero hay que indicarle al Netbeans <strong>donde esta <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con phpunit">PHPUnit</a></strong> para que lo pueda ejecutar:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-options-phpunit.png"><img class="size-medium wp-image-1902 aligncenter" title="netbeans-options-phpunit" src="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-options-phpunit-176x150.png" alt="netbeans options phpunit 176x150 Configurar Netbeans para trabajar con PHPUnit y Zend Framework" width="176" height="150" /></a></p>
<p style="text-align: justify;">Después, <strong>configurar las propiedades del proyecto</strong>, donde hay el apartado &#8220;PHPUnit&#8221; que permite seleccionar el archivo XML <em>phpunit.xml</em> de configuración:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-project-options-phpunit.png"><img class="size-medium wp-image-1905 aligncenter" title="netbeans-project-options-phpunit" src="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-project-options-phpunit-200x143.png" alt="netbeans project options phpunit 200x143 Configurar Netbeans para trabajar con PHPUnit y Zend Framework" width="200" height="143" /></a></p>
<p style="text-align: justify;">Ahora, ejectando &#8220;<strong>Test</strong>&#8221; o pulsando <strong>Alt+F6</strong>, Netbeans iniciará los test y mostrará los resultado:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-phpunit-test.png"><img class="size-medium wp-image-1906 aligncenter" title="netbeans-phpunit-test" src="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-phpunit-test-193x150.png" alt="netbeans phpunit test 193x150 Configurar Netbeans para trabajar con PHPUnit y Zend Framework" width="193" height="150" /></a></p>
<p style="text-align: justify;">Ahora también, cuando se esté trabajando en un fichero, y se quiera crear un juego de pruebas, con el botón derecho del ratón sobre el fichero, se puede decir a <strong>Netbeans que cree el archivo de pruebas</strong>:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-phpunit-create-test.png"><img class="size-medium wp-image-1911 aligncenter" title="netbeans-phpunit-create-test" src="http://otroblogmas.com/wp-content/uploads/2010/05/netbeans-phpunit-create-test-130x150.png" alt="netbeans phpunit create test 130x150 Configurar Netbeans para trabajar con PHPUnit y Zend Framework" width="130" height="150" /></a></p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/atajos-de-teclado-de-netbeans-para-zend-framework/' rel='bookmark' title='Atajos de teclado de Netbeans para Zend Framework'>Atajos de teclado de Netbeans para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-xampp-para-debugar-con-xdebug-en-netbeans/' rel='bookmark' title='Configurar XAMPP para debugar con XDebug en Netbeans'>Configurar XAMPP para debugar con XDebug en Netbeans</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurar PHPUnit y Zend Framework</title>
		<link>http://otroblogmas.com/configurar-phpunit-zend-framework/</link>
		<comments>http://otroblogmas.com/configurar-phpunit-zend-framework/#comments</comments>
		<pubDate>Thu, 13 May 2010 07:06:45 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1880</guid>
		<description><![CDATA[Las pruebas unitarias son un sistema interesante para los desarrolladores, facilitando el trabajo. Es común el proceso de modificar, extender o mejorar la aplicación; y también es común que estos cambios produzcan que ciertas funcionalidades dejen de funcionar. Igual que es fácil olvidar el código que se ha hecho hace dos meses, también es fácil [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://otroblogmas.com/wp-content/uploads/2010/05/ruedas-dentadas-150x150.jpg" alt="ruedas dentadas 150x150 Configurar PHPUnit y Zend Framework" title="Ruedas dentadas" width="150" height="150" class="alignright size-medium wp-image-1892" />
<p style="text-align: justify;">Las <strong>pruebas unitarias</strong> son un sistema interesante para los desarrolladores, facilitando el trabajo. Es común el proceso de modificar, extender o mejorar la aplicación; y también es común que <strong>estos cambios produzcan que ciertas funcionalidades dejen de funcionar</strong>. Igual que es fácil olvidar el código que se ha hecho hace dos meses, también es fácil olvidar todos los sitios donde se llama a ese código.</p>
<p><span id="more-1880"></span></p>
<p style="text-align: justify;">Con las pruebas unitarias se evita el problema de modificar el código y que ciertas funcionalidades dejen de funcionar. Si existe una <strong>batería de tests que asseguran el correcto funcionamiento</strong>, es posible comprobar que la aplicación sigue cumpliendo con su cometido. Esto mismo es lo que ofrece <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con phpunit">PHPUnit</a> para PHP.</p>
<p style="text-align: justify;">Mirando varias artículos, tutoriales y demás, he conseguido tener una <strong>estructura funcional para realizar los tests con Zend Framework</strong>. En este caso, el entorno esta formado a partir de la <a href="http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/">instalación de PHPUnit y Zend Framework en XAMPP</a>. Así, los archivos necesarios estarán en la carpeta <strong>tests</strong>, al mismo nivel que <strong>library</strong>:</p>
<p><strong>/tests/phpunit.xml</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;phpunit</span> <span style="color: #000066;">bootstrap</span>=<span style="color: #ff0000;">&quot;./TestHelper.php&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;testsuite<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>./<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/testsuite<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;whitelist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;directory</span> <span style="color: #000066;">suffix</span>=<span style="color: #ff0000;">&quot;.php&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>../application/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;exclude<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;directory</span> <span style="color: #000066;">suffix</span>=<span style="color: #ff0000;">&quot;.phtml&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>../application/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/exclude<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/whitelist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;log</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;coverage-html&quot;</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;./log/report&quot;</span> <span style="color: #000066;">charset</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">yui</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">highlight</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">lowUpperBound</span>=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #000066;">highLowerBound</span>=<span style="color: #ff0000;">&quot;80&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;log</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;testdox-html&quot;</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;./log/testdox.html&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/phpunit<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>/tests/TestHelper.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Define path to application directory</span>
<span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_PATH'</span><span style="color: #009900;">&#41;</span>
    <span style="color: #339933;">||</span> <span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_PATH'</span><span style="color: #339933;">,</span> <span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../application'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Define application environment</span>
<span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_ENV'</span><span style="color: #009900;">&#41;</span>
    <span style="color: #339933;">||</span> <span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_ENV'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_ENV'</span><span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">getenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'APPLICATION_ENV'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">'testing'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Ensure library/ is on include_path</span>
<span style="color: #990000;">set_include_path</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span>PATH_SEPARATOR<span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../library'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #990000;">get_include_path</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * Register autoloader
 */</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Loader/Autoloader.php'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$autoloader</span> <span style="color: #339933;">=</span> Zend_Loader_Autoloader<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../tests/application/ControllerTestCase.php'</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>/tests/application/bootstrap.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** Zend_Application */</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Application.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Create application, bootstrap, and run</span>
<span style="color: #000088;">$application</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Application<span style="color: #009900;">&#40;</span>
    APPLICATION_ENV<span style="color: #339933;">,</span>
    APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/configs/application.ini'</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$application</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>/tests/application/ControllerTestCase.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> ControllerTestCase <span style="color: #000000; font-weight: bold;">extends</span> Zend_Test_PHPUnit_ControllerTestCase
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$application</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">application</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Application<span style="color: #009900;">&#40;</span>
            APPLICATION_ENV<span style="color: #339933;">,</span>
            APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/configs/application.ini'</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'appBootstrap'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        parent<span style="color: #339933;">::</span><span style="color: #004000;">setUp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> tearDown<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        Zend_Db_Table<span style="color: #339933;">::</span><span style="color: #004000;">getDefaultAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">closeConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        parent<span style="color: #339933;">::</span><span style="color: #004000;">tearDown</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> appBootstrap<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">application</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>/tests/application/controllers/IndexControllerTest.php</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> IndexControllerTest <span style="color: #000000; font-weight: bold;">extends</span> ControllerTestCase
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> testIndexAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dispatch</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertController</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertAction</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> testErrorURL<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dispatch</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertController</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertAction</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> testViewObjectContainsStringProperty<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dispatch</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> IndexController<span style="color: #009900;">&#40;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">request</span><span style="color: #339933;">,</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">response</span><span style="color: #339933;">,</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParams</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">indexAction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assertTrue</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">string</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Con estos 4 archivos, <strong>se puede hacer una prueba</strong> yendo a la línea de comandos y ejecutando phpunit en la carpeta tests. Si todo ha ido correctamente, se verá algo parecido a lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">C:\xampp\htdocs\testzf\tests<span style="color: #33cc33;">&gt;</span>phpunit
PHPUnit 3.4.11 by Sebastian Bergmann.
&nbsp;
..F
&nbsp;
Time: 2 seconds, Memory: 13.75Mb
&nbsp;
There was 1 failure:
&nbsp;
1<span style="color: #33cc33;">)</span> IndexControllerTest::testViewObjectContainsStringProperty
Failed asserting that <span style="color: #33cc33;">&lt;</span>boolean:false<span style="color: #33cc33;">&gt;</span> is true.
&nbsp;
C:\xampp\htdocs\testzf\tests\application\controllers\IndexControllerTest.ph
p:28
&nbsp;
FAILURES<span style="color: #33cc33;">!</span>
Tests: 3, Assertions: 5, Failures: 1.
&nbsp;
Generating code coverage report, this may take a moment.</pre></div></div>

<p>Como se puede ver, se han realizado 3 tests, que contenía 5 pruebas, una de las cuales no ha sido superada. En la carpeta &#8220;<strong>log</strong>&#8221; hay un <strong>informe que ha generado PHPUnit</strong>, detallando el resultado de las pruebas.</p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/configurar-phpunit-zend-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</title>
		<link>http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/</link>
		<comments>http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 06:00:15 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xampp]]></category>
		<category><![CDATA[zend_tool]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1806</guid>
		<description><![CDATA[Esta entrada viene a ser el manual de instalación de Zend Framework y Zend  Tool para Ubuntu, en complemento del anterior que era para Windows. Se da por instalado XAMPP en local; en caso de duda, seguir las instrucciones para linux de la web de XAMPP. Crear la carpeta del proyecto en el directorio público [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/' rel='bookmark' title='Instalar PHPUnit en el XAMPP de Ubuntu'>Instalar PHPUnit en el XAMPP de Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://otroblogmas.com/wp-content/uploads/2009/10/zend-framework.png"><img src="http://otroblogmas.com/wp-content/uploads/2009/10/zend-framework.png" alt="zend framework Instalar y configurar Zend Framework y Zend Tool para construir proyectos en Ubuntu" title="Zend Framework" width="150" height="99" class="alignright size-full wp-image-787" /></a>Esta entrada viene a ser el manual de instalación de Zend Framework y Zend  Tool para <a href="http://otroblogmas.com/tag/ubuntu/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con ubuntu">Ubuntu</a>, en complemento del anterior que era <a href="http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/">para Windows</a>. Se da por instalado XAMPP en local; en caso de duda, seguir las <a href="http://www.apachefriends.org/en/xampp-linux.html">instrucciones para linux</a> de la web de <a href="http://www.apachefriends.org/es/xampp.html">XAMPP</a>.<br />
<span id="more-1806"></span>
<ul>
<li>Crear la carpeta del proyecto en el directorio público de <a href="http://otroblogmas.com/tag/apache/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con apache">Apache</a>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>htdocs
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> testzf
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">777</span> testzf<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

</li>
<li><a href="http://framework.zend.com/download/latest">Descargar Zend Framework</a>,  el archivo <strong>tar.gz</strong> (con la versión minimal hay suficiente). Con el Terminal situado en el directorio donde se ha descargado el archivo comprimido, extraer el contenido:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzvf</span> ZendFramework-1.10.2-minimal.tar.gz</pre></div></div>

</li>
<li>Copiar el contenido descargado a la carpeta creada:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ZendFramework-1.10.2-minimal
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-r</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>testzf</pre></div></div>

</li>
<li>Modificar el PATH del bash para cargar PHP:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

</li>
<li>Para probar que la operación anterior ha funcionado, cerrando el terminal, volviendo a abrir otro nuevo y ejecutando el comando siguiente desde cualquie directorio:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">php <span style="color: #660033;">-v</span></pre></div></div>

<p>Debe retornar lo siguiente por pantalla:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">PHP 5.3.1 <span style="color: #7a0874; font-weight: bold;">&#40;</span>cli<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>built: Nov <span style="color: #000000;">22</span> <span style="color: #000000;">2009</span> <span style="color: #000000;">21</span>:<span style="color: #000000;">39</span>:<span style="color: #000000;">37</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1997</span>-<span style="color: #000000;">2009</span> The PHP Group
Zend Engine v2.3.0, Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1998</span>-<span style="color: #000000;">2009</span> Zend Technologies</pre></div></div>

</li>
<li>Copiar los archivos necesarios para ejecutar Zend_Tool desde cualquie sitio:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>testzf<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

</li>
<li>Resta modificar el include_path de PHP para que cargue la librería de Zend Framework:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php.ini</pre></div></div>

<p>Y modificar la siguiente línea:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">; UNIX: &quot;/path1:/path2&quot;</span>
<span style="color: #666666; font-style: italic;">;include_path = &quot;.:/php/includes&quot;</span></pre></div></div>

<p>Por esta otra:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">; UNIX: &quot;/path1:/path2&quot;</span>
<span style="color: #000099;">include_path</span> <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;.:/opt/lampp/lib/php:/opt/lampp/htdocs/testzf/library&quot;</span></pre></div></div>

</li>
<li>Para comprobar que se dispone del Zend_Tool, se puede testear ejecutando:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">zf.sh show version</pre></div></div>

<p>Y si todo ha sido correcto, retornará:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Zend Framework Version: 1.10.2</pre></div></div>

</li>
</ul>
<p>La ayuda del Zend Tool se puede obtener ejecutando:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">zf.sh --help</pre></div></div>

<p>Para crear un proyecto, por ejemplo en la carpeta <strong>/opt/lampp/htdocs/testzf</strong>, debemos ejecutar el siguiente comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">zf.sh create project <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>testzf<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Según <strong>la arquitectura de Zend Framework</strong>, todas las peticiones tienen que dirigirse al archivo “<strong>/opt/lampp/htdocs/testzf/public/index.php</strong>“. Para ello, hay que <strong>crear un VirtualHost en el Apache</strong>, operación que se realiza en dos simples pasos:</p>
<ul>
<li>Editar el archivo /etc/hosts:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>hosts</pre></div></div>

<p>Añadir la siguiente línea, guardar y salir del editor:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">127.0.0.1       testzf</pre></div></div>

</li>
<li>Editar el archivo de configuración de Apache /opt/lampp/etc/httpd.conf:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gedit <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</pre></div></div>

<p>Añadir las siguiente líneas, guardar y salir del editor:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">&lt;VirtualHost *:80&gt;
	ServerName testzf
	DocumentRoot /opt/lampp/htdocs/testzf/public
	SetEnv APPLICATION_ENV &quot;development&quot;
	&lt;Directory /path/to/quickstart/public&gt;
		DirectoryIndex index.php
		AllowOverride All
		Order allow,deny
		Allow from all
	&lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre></div></div>

</li>
</ul>
<p>Después de reiniciar el servidor Apache, al ir al navegador web y solicitar la URL http://testzf, se deberá cargar la siguiente página:<br />
<a href="http://otroblogmas.com/wp-content/uploads/2010/02/Screenshot-Zend-Framework.png"><img src="http://otroblogmas.com/wp-content/uploads/2010/02/Screenshot-Zend-Framework.png" alt="Screenshot Zend Framework Instalar y configurar Zend Framework y Zend Tool para construir proyectos en Ubuntu" title="Screenshot Zend Framework" width="632" height="495" class="aligncenter size-full wp-image-1657" /></a></p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Instalar Zend Framework y Zend_Tool para construir proyectos en Windows'>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</a></li>
<li><a href='http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/' rel='bookmark' title='Instalar PHPUnit en el XAMPP de Ubuntu'>Instalar PHPUnit en el XAMPP de Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ZFDebug: debug bar para Zend Framework</title>
		<link>http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/</link>
		<comments>http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 07:00:29 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1780</guid>
		<description><![CDATA[ZFDebug es un plugin para Zend Framework, con el que se puede mostrar una barra informativa en la parte inferior del navegador que muestra en cada petición al servidor una serie de datos muy valuosos para los desarrolladores: tiempo empleado en la ejecución memoria usada número y descripción de las peticiones realizadas a la base [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Acceder a Zend_View desde un plugin en Zend Framework'>Acceder a Zend_View desde un plugin en Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://otroblogmas.com/wp-content/uploads/2010/03/zf_logo.png"><img class="alignright size-medium wp-image-1784" title="zf_logo" src="http://otroblogmas.com/wp-content/uploads/2010/03/zf_logo-200x105.png" alt="zf logo 200x105 ZFDebug: debug bar para Zend Framework" width="200" height="105" /></a><strong>ZFDebug</strong> es un plugin para <a href="http://otroblogmas.com/tag/zend-framework/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con zend framework">Zend Framework</a>, con el que se puede mostrar una <strong>barra informativa</strong> en la parte inferior del navegador que muestra <strong>en cada petición</strong> al servidor una serie de datos muy valuosos para los desarrolladores:</p>
<ul>
<li>tiempo empleado en la ejecución</li>
<li>memoria usada</li>
<li>número y descripción de las peticiones realizadas a la base de datos</li>
<li>número de archivos incluidos</li>
<li>errores y excepciones producidas</li>
<li>elementos almacenados en el Zend_Registry</li>
<li>&#8230;</li>
</ul>
<p><span id="more-1780"></span></p>
<p style="text-align: justify;">Anteriorment <strong>ZFDebug</strong> se llamaba <em>Scienta ZF Debug Bar</em>, y viene a ser una copia de la <a href="http://www.symfony-project.org/blog/2008/08/27/new-in-symfony-1-2-customize-the-web-debug-toolbar">barra</a> que posee <a href="http://www.symfony-project.org/">Symfony</a>, pero diseñada para Zend Framework; incluso utiliza los mismos <a href="http://www.famfamfam.com/lab/icons/silk/">iconos</a>. La <strong>última versión disponible</strong> (ZFDebug 1.5) <strong>es de mayo del 2009</strong>, pero funciona perfectamente tanto con Zend Framework 1.8 o posterior, como con versiones anteriores.</p>
<p style="text-align: justify;">En el código HTML de la página web, inserta un <strong>pequeño script que usa jQuery</strong> para los efecto de mostrar y ocultar la información.</p>
<p style="text-align: justify;"><a href="http://otroblogmas.com/wp-content/uploads/2010/03/zfdebug_debugbar1.png"><img src="http://otroblogmas.com/wp-content/uploads/2010/03/zfdebug_debugbar1.png" alt="zfdebug debugbar1 ZFDebug: debug bar para Zend Framework" title="zfdebug_debugbar" width="733" height="32" class="aligncenter size-full wp-image-1791" /></a></p>
<p style="text-align: justify;">Para su <strong>instalación</strong>, solamente debemos seguir tres pasos:</p>
<ul>
<li><a href="http://code.google.com/p/zfdebug/downloads/list">Descargar el paquete</a> de ZFDebug.</li>
<li style="text-align: justify;">Dentro del archivo comprimido, <strong>extraer la carpeta <em>&#8216;ZFDebug&#8217;</em></strong> de dentro de la carpeta <em>&#8216;zfdebug/library</em>&#8216; <strong>y copiarla a la carpeta &#8216;<em>library</em>&#8216; del proyecto</strong> donde se quiere instalar el plugin.</li>
<li style="text-align: justify;">Finalmente, hay que<strong> editar el archivo Bootstrap.<a href="http://otroblogmas.com/tag/php/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con php">php</a></strong>. Para las versiones 1.8 o posteriores de Zend Framework, solamente hay que <strong>añadir una nueva función </strong>(condicionada para ejecutarse solamente cuando se este <strong>en entorno de desarrollo</strong>):

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">function</span> _initZFDebug<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'development'</span> <span style="color: #339933;">==</span> APPLICATION_ENV<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$autoloader</span> <span style="color: #339933;">=</span> Zend_Loader_Autoloader<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$autoloader</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerNamespace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ZFDebug'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$options</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'plugins'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Variables'</span><span style="color: #339933;">,</span> 
                               <span style="color: #0000ff;">'File'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'base_path'</span> <span style="color: #339933;">=&gt;</span> APPLICATION_PATH<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                               <span style="color: #0000ff;">'Memory'</span><span style="color: #339933;">,</span> 
                               <span style="color: #0000ff;">'Time'</span><span style="color: #339933;">,</span> 
                               <span style="color: #0000ff;">'Registry'</span><span style="color: #339933;">,</span> 
                               <span style="color: #0000ff;">'Exception'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasPluginResource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'db'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'db'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getPluginResource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'db'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDbAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'plugins'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Database'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'adapter'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$db</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasPluginResource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cache'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cache'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$cache</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-</span>getPluginResource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cache'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDbAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'plugins'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Cache'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'backend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$cache</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBackend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000088;">$debug</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ZFDebug_Controller_Plugin_Debug<span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'frontController'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$frontController</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'frontController'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$frontController</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerPlugin</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$debug</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>ATENCIÓN:</strong> En el array de <em>$options</em>, hay asignado el path a través de la constante <em>APPLICATION_PATH</em>. Dependiendo de la configuración del proyecto, quizás hay que cambiar este valor.</li>
</ul>
<p style="text-align: justify;">Tanto para las <strong>versiones anteriores</strong> a la 1.8, como para realizar <strong>otros ajustes</strong>, es recomendable la lectura de la <a href="http://code.google.com/p/zfdebug/wiki/Installation">página de instalación</a> de ZFDebug.</p>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Acceder a Zend_View desde un plugin en Zend Framework'>Acceder a Zend_View desde un plugin en Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Configurar Netbeans para trabajar con PHPUnit y Zend Framework'>Configurar Netbeans para trabajar con PHPUnit y Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar Zend Framework y Zend_Tool para construir proyectos en Windows</title>
		<link>http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/</link>
		<comments>http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 07:00:10 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1633</guid>
		<description><![CDATA[Ya sea para iniciar un nuevo proyecto, o para empezar a hacer pruebas con Zend Framework y aprender, necesitamos primero instalar Zend Framework. La instalación puede ser muy simple con solo copiar la carpeta donde esta la librería; pero se puede utilizar la herramienta Zend_Tool que nos permite realizar operaciones como crear proyecto, módulo, controlador, [...]
Entradas relacionadas:<ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-medium wp-image-1653" title="Zend Framework Beginning" src="http://otroblogmas.com/wp-content/uploads/2010/02/zend-framework-beginning-111x150.jpg" alt="zend framework beginning 111x150 Instalar Zend Framework y Zend Tool para construir proyectos en Windows" width="111" height="150" />Ya sea para iniciar un nuevo proyecto, o para empezar a hacer pruebas con <a href="http://framework.zend.com/">Zend Framework</a> y aprender, necesitamos primero <strong>instalar Zend Framework</strong>. La instalación puede ser muy simple con solo copiar la carpeta donde esta la librería; pero se puede utilizar la <strong>herramienta Zend_Tool</strong> que nos permite realizar operaciones como crear proyecto, módulo, controlador, &#8230; actualizando <strong>el profile del proyecto</strong> en todo momento.</p>
<p style="text-align: justify;">El entorno en el que esta hecho este pequeño tutorial es en <strong>Windows</strong>, habiendo instalado como servidor el conjunto de servidores que contiene <strong><a href="http://www.apachefriends.org/en/xampp-windows.html">XAMPP</a></strong> (Apache, MySQL, PHP, &#8230;). Si se ha hecho una instalación por defecto, <a href="http://otroblogmas.com/tag/xampp/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con xampp">XAMPP</a> estará instalado en la ruta &#8220;<em>C:\xampp\</em>&#8221; y dentro estará la carpeta &#8220;<em>php</em>&#8221; que contiene el módulo de PHP y la carpeta &#8220;<em>htdocs</em>&#8221; donde esta el sitio web por defecto. En esta última carpeta se ha creado una <strong>carpeta de prueba</strong> llamada &#8220;<em>testzf</em>&#8221; para realizar allí esta tutorial.</p>
<p><span id="more-1633"></span></p>
<p style="text-align: justify;">Una vez <a href="http://framework.zend.com/download/current/">descargado Zend Framework</a> (actualmente la <strong>versión 1.10</strong>), ya sea el paquete Full o Minimal, se puede proceder a seguir el tutorial:</p>
<ul>
<li style="text-align: justify;">Del archivo comprimido de Zend Framework, <strong>extraer las carpetas</strong> &#8220;<em>bin</em>&#8221; y &#8220;<em>library</em>&#8221; y copiarlas a la carpeta &#8220;<em>C:\xampp\htdocs\testzf</em>&#8220;.</li>
<li style="text-align: justify;">Abrir una línea de comandos, pulsando Inicio->Ejecutar, escribir &#8220;cmd&#8221; y Aceptar.</li>
<li>Situarse en la carpeta &#8220;<em>C:\xampp\htdocs\testzf</em>&#8220;:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #b1b100; font-weight: bold;">cd</span> C:\xampp\htdocs\testzf</pre></div></div>

</li>
<li style="text-align: justify;">Editar el PATH de Windows para que ejecute comandos de la carpeta &#8220;<em>C:\xampp\php</em>&#8220;:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #b1b100; font-weight: bold;">SET</span> PATH=<span style="color: #33cc33;">%</span><span style="color: #448888;">PATH</span><span style="color: #33cc33;">%</span>;C:\xampp\php</pre></div></div>

</li>
<li style="text-align: justify;">Para comprobar que ha funcionado, ejecutar los siguientes comandos que devuelven las versiones de PHP y de Zend Framework:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">php -version
zf show version</pre></div></div>

</li>
<li style="text-align: justify;">Como se puede ver, la versión Zend Framework que devuelve <strong>no coincide</strong> con la versión que se ha copiado. Esto se debe a que XAMPP, en los numerosos paquetes que trae, se incluye una versión de Zend Framework: con XAMPP 1.7.3, viene la versión 1.9.6. Físicamente, ese Zend Framework se encuentra en la carpeta &#8220;<em>C:\xampp\php\<a href="http://otroblogmas.com/tag/pear/" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con pear">PEAR</a>\Zend</em>&#8220;. Para hacer que PHP detecte la versión que se ha instalado, hay que editar el archivo &#8220;<em>C:\xampp\php\php.ini</em>&#8221; y buscar la siguiente línea:

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000099;">include_path</span> <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;.;C:\xampp\php\PEAR&quot;</span></pre></div></div>

<p>Modificarla para <strong>añadir el path a la librería copiada</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000099;">include_path</span> <span style="color: #000066; font-weight:bold;">=</span> <span style="color: #933;">&quot;.;C:\xampp\htdocs\testzf\library;C:\xampp\php\PEAR&quot;</span></pre></div></div>

<p><strong>CUIDADO!</strong> El orden de los <em>paths</em> importa, ya que sinó se pueden detectar conflictos al cargar ambas librerías a la vez. La <em>regla </em>es: primero la más nueva y después las siguientes.</li>
<li style="text-align: justify;">Si se vuelve a solicitar la versión de Zend Framework, ya tendría que salir la versión que se ha copiado:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">C:\xampp\htdocs\testzf\library<span style="color: #33cc33;">&gt;</span> zf show version
Zend Framework Version: 1.10.0</pre></div></div>

</li>
<li style="text-align: justify;">Ahora hay que<strong> sustituir la herramienta Zend_Tool</strong> que viene con XAMPP. Primero hay que renombrar dos archivos para no perderlos, y después copiar los archivos de Zend_Tool de la nueva librería:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"><span style="color: #b1b100; font-weight: bold;">rename</span> C:\xampp\php\zf.bat zf.bat.bak
<span style="color: #b1b100; font-weight: bold;">rename</span> C:\xampp\php\zf.php zf.php.bak
<span style="color: #b1b100; font-weight: bold;">copy</span> C:\xampp\htdocs\testzf\bin\zf.bat C:\xampp\php
<span style="color: #b1b100; font-weight: bold;">copy</span> C:\xampp\htdocs\testzf\bin\zf.php C:\xampp\php</pre></div></div>

</li>
<li style="text-align: justify;">Una vez instalado todo, se puede proceder a utilitzar la herramienta Zend_Tool. Para poder <strong>ver las diferentes opciones que ofrece</strong> esta herramienta, hay que ejecutar:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">zf --help</pre></div></div>

</li>
<li style="text-align: justify;">Lo primero es <strong>crear el proyecto</strong>, ejecutando:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">zf create project C:\xampp\htdocs\testzf</pre></div></div>

</li>
<li style="text-align: justify;">En la carpeta del proyecto <strong>se ha construido la estructura de directorios</strong> del proyecto, y un archivo con nombre &#8220;<strong>.zfproject.xml</strong>&#8220;. Este archivo es el <strong>profile del proyecto</strong>.</li>
</ul>
<p style="text-align: justify;">Según <strong>la arquitectura de Zend Framework</strong>, todas las peticiones tienen que dirigirse al archivo &#8220;<em>C:\xampp\htdocs\testzf\public\index.php</em>&#8220;. Para ello, hay que <strong>crear un VirtualHost en el Apache</strong>, operación que se realiza en dos simples pasos:</p>
<ul>
<li style="text-align: justify;">Primero hay que modificar el sistema de Windows para resolver DNSs. Se edita el archivo &#8220;<a href="http://es.wikipedia.org/wiki/Archivo_hosts">C:\WINDOWS\system32\drivers\etc\hosts</a>&#8220;, y al final del archivo se añade la siguiente línea:

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">127.0.0.1       testzf</pre></div></div>

<p>Así, cuando se le solicite a Windows por este dominio (<em>testzf</em>), hará las peticiones a si mismo haciendo un <a href="http://es.wikipedia.org/wiki/Loopback">loopback</a>.</li>
<li style="text-align: justify;">Ahora hay que configurar Apache, para que las peticiones que reciba solicitando el dominio introducido antes (testzf), se dirijan hacia la carpeta pública según Zend Framework. Para ello, hay que editar el archivo &#8220;<em>C:\xampp\apache\conf\extra\httpd-vhosts.conf</em>&#8220;, y descomentar la línea:

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">##NameVirtualHost *:<span style="">80</span></pre></div></div>

<p>Eliminando las almohadillas:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">NameVirtualHost *:<span style="">80</span></pre></div></div>

<p>Y añadiendo al final las siguientes líneas que indican el dominio y la carpeta:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">&lt;VirtualHost *:<span style="">80</span>&gt;
	ServerName localhost
	DocumentRoot <span style="color: #933;">&quot;C:/xampp/htdocs/&quot;</span>
	ServerAdmin admin@localhost
&lt;/VirtualHost&gt;
&nbsp;
&lt;VirtualHost *:<span style="">80</span>&gt;
    ServerName testzf
    DocumentRoot <span style="color: #933;">&quot;C:/xampp/htdocs/testzf/public&quot;</span>
    SetEnv APPLICATION_ENV <span style="color: #933;">&quot;development&quot;</span>
&nbsp;
    &lt;Directory <span style="color: #933;">&quot;C:\xampp\htdocs\testzf\public&quot;</span>&gt;
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre></div></div>

</li>
</ul>
<p style="text-align: justify;">Si todo ha ido correctamente y <strong>reiniciando el servidor Apache</strong> para que los cambios surjan efecto, al utilizar un navegador y solicitar la página web &#8220;http://testzf&#8221;, se tiene que obtener página como la siguiente:</p>
<p style="text-align: center;"><a href="http://otroblogmas.com/wp-content/uploads/2010/02/Screenshot-Zend-Framework.png"><img class="aligncenter size-full wp-image-1657" title="Screenshot Zend Framework" src="http://otroblogmas.com/wp-content/uploads/2010/02/Screenshot-Zend-Framework.png" alt="Screenshot Zend Framework Instalar Zend Framework y Zend Tool para construir proyectos en Windows" width="632" height="495" /></a></p>
<p>Falta comentar que la modificación del PATH se pierde cuando se cierra la ventana de línea de comandos. Para hacer permanentes las modificaciones, hay que modificar las &#8220;<a href="http://support.microsoft.com/kb/310519/es"><strong>Variables de entorno</strong></a>&#8220;.</p>
<p>Más información en los siguientes links:</p>
<ul>
<li><a href="http://www.slideshare.net/ralphschindler/extending-zendtool">SlideShare &#8211; Extending Zend_Tool</a></li>
<li><a href="http://devzone.zend.com/article/4559">Zend Developer Zone &#8211; Zend_Tool and ZF 1.8</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.tool.usage.cli.html">ZF Reference Guide &#8211; Zend_Tool</a></li>
</ul>
<p>Entradas relacionadas:</p><ol>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu'>Instalar y configurar Zend Framework y Zend_Tool para construir proyectos en Ubuntu</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Configurar Subversion para utilizar los repositorios externos de Zend Framework'>Configurar Subversion para utilizar los repositorios externos de Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
	</channel>
</rss>

