<?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>Mon, 26 Jul 2010 15:53:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=9573</generator>
		<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/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Permanent Link: 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/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Permanent Link: 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;"><img class="alignright size-medium wp-image-2132" title="mvc" src="http://otroblogmas.com/wp-content/uploads/2010/07/mvc-156x150.png" alt="Diseño del patrón MVC" width="156" height="150" />Un error que ha surgido trabajando con Zend Framework, 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://framework.zend.com/apidoc/core/Zend_Controller/Plugins/Zend_Layout_Controller_Plugin_Layout.html">Zend_Layout_Controller_Plugin_Layout</a>: 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;"><a href="http://framework.zend.com/apidoc/core/Zend_Controller/Plugins/Zend_Controller_Plugin_ErrorHandler.html">Zend_Controller_Plugin_ErrorHandler</a>: 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="Diagrama de flujo de Zend Framework" 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/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Permanent Link: 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/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/configurar-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Permanent Link: 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/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='Permanent Link: 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-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Permanent Link: 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-phpunit-zend-framework/' rel='bookmark' title='Permanent Link: 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 Zend Framework, 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 Subversion, 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 UPDATE y COMMIT (esto último esta pendiente de probar a la espera de que salga una nueva versión de Zend Framework).</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='Permanent Link: 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-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Permanent Link: 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-phpunit-zend-framework/' rel='bookmark' title='Permanent Link: 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;; Entradas relacionadas:ZFDebug: debug bar para Zend Framework Configurar PHPUnit y Zend Framework Zend_Auth: Identificación y autentificación en Zend Framework


Entradas relacionadas:<ol><li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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 Zend Framework. 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>Entradas relacionadas:</p><ol><li><a href='http://otroblogmas.com/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Permanent Link: 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="Logo de Netbeans" 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>Zend_Debug::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" 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='Permanent Link: 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/zfdebug-debug-bar-para-zend-framework/' rel='bookmark' title='Permanent Link: ZFDebug: debug bar para Zend Framework'>ZFDebug: debug bar para Zend Framework</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-y-zend_tool-para-construir-proyectos-en-windows/' rel='bookmark' title='Permanent Link: 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 07:00:22 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[netbeans]]></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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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" 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 Netbeans 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="Posts tagged with 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="Screenshot de opciones de PHPUnit de Netbeans" 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;<a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">PHPUnit</a>&#8221; que permite seleccionar el archivo XML <em><a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">phpunit</a>.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="Screenshot de opciones de PHPUnit de un proyeto en Netbeans" 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="Screenshot de ejecución de PHPUnit en Netbeans" 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="Screenshot de como crear un test de PHPUnit desde Netbeans" width="130" height="150" /></a></p>


<p>Entradas relacionadas:</p><ol><li><a href='http://otroblogmas.com/configurar-phpunit-zend-framework/' rel='bookmark' title='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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>0</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='Permanent Link: 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-phpunit-en-el-xampp-de-ubuntu/' rel='bookmark' title='Permanent Link: Instalar PHPUnit en el XAMPP de Ubuntu'>Instalar PHPUnit en el XAMPP de Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Permanent Link: 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>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://otroblogmas.com/wp-content/uploads/2010/05/ruedas-dentadas-150x150.jpg" alt="Ruedas dentadas" 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="Posts tagged with 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/<a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">phpunit</a>.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 <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">phpunit</a> 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&gt;phpunit
PHPUnit 3.4.11 by Sebastian Bergmann.
&nbsp;
..F
&nbsp;
Time: <span style="color: #cc66cc;">2</span> seconds, Memory: 13.75Mb
&nbsp;
There was <span style="color: #cc66cc;">1</span> failure:
&nbsp;
<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> IndexControllerTest::testViewObjectContainsStringProperty
Failed asserting that &lt;boolean:false&gt; is true.
&nbsp;
C:\xampp\htdocs\testzf\tests\application\controllers\IndexControllerTest.ph
p:<span style="color: #cc66cc;">28</span>
&nbsp;
FAILURES!
Tests: <span style="color: #cc66cc;">3</span>, Assertions: <span style="color: #cc66cc;">5</span>, 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 <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">PHPUnit</a></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='Permanent Link: 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-phpunit-en-el-xampp-de-ubuntu/' rel='bookmark' title='Permanent Link: Instalar PHPUnit en el XAMPP de Ubuntu'>Instalar PHPUnit en el XAMPP de Ubuntu</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Permanent Link: 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>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/configurar-phpunit-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar PHPUnit en el XAMPP de Ubuntu</title>
		<link>http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/</link>
		<comments>http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 07:00:49 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://otroblogmas.com/?p=1831</guid>
		<description><![CDATA[Una vez hay instalado XAMPP en Ubuntu para poder realizar proyectos en un servidor web de desarrollo, es interesante la opción de tener instalado PHPUnit para hacer pruebas unitarias de nuestros proyectos. Para ello, hay que instalar PHPUnit desde PEAR: Ir a la carpeta del PEAR y añadir el repositorio de PHPUnit: cd /opt/lampp/lib/php/PEAR sudo [...]


Entradas relacionadas:<ol><li><a href='http://otroblogmas.com/instalar-phpunit-xampp-windows/' rel='bookmark' title='Permanent Link: Instalar PHPUnit con XAMPP en Windows'>Instalar PHPUnit con XAMPP en Windows</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Permanent Link: 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-phpunit-zend-framework/' rel='bookmark' title='Permanent Link: Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://otroblogmas.com/wp-content/uploads/2010/03/phpunit-logo.png"><img class="alignright size-full wp-image-1833" title="PHPUnit Logo" src="http://otroblogmas.com/wp-content/uploads/2010/03/phpunit-logo.png" alt="PHPUnit Logo" width="102" height="80" /></a>Una vez hay instalado XAMPP en Ubuntu para poder realizar proyectos en un servidor web de desarrollo, es interesante la opción de tener instalado <a href="http://www.phpunit.de/">PHPUnit</a> para hacer <strong>pruebas unitarias</strong> de nuestros proyectos.</p>
<p><span id="more-1831"></span>Para ello, hay que instalar <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">PHPUnit</a> desde PEAR:</p>
<ul>
<li>Ir a la carpeta del PEAR y añadir el repositorio de <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">PHPUnit</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>lib<span style="color: #000000; font-weight: bold;">/</span>php<span style="color: #000000; font-weight: bold;">/</span>PEAR
<span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>pear channel-discover pear.phpunit.de</pre></div></div>

</li>
<li>Actualizar la base de datos de PEAR:

<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: #000000; font-weight: bold;">/</span>pear update-channels</pre></div></div>

</li>
<li>Instalar <a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">PHPUnit</a>:

<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: #000000; font-weight: bold;">/</span>pear <span style="color: #c20cb9; font-weight: bold;">install</span> phpunit<span style="color: #000000; font-weight: bold;">/</span>PHPUnit</pre></div></div>

</li>
</ul>
<p style="text-align: justify;">Ahora para comprobar la correcta instalación, si se ejecuta el siguiente comando desde cualquier sitio:</p>

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

<p>Se debe mostrar el siguiente mensaje (quizás con la versión modificada):</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">PHPUnit 3.4.11 by Sebastian Bergmann.</pre></div></div>

<p style="text-align: justify;">Para realizar una pequeña prueba del correcto funcionamiento, y siguiendo el manual de instalación de Zend Framework y Zend Tool, hay que modificar el fichero /opt/lampp/htdocs/testzf/tests/<a href="http://otroblogmas.com/tag/phpunit/" class="st_tag internal_tag" rel="tag" title="Posts tagged with phpunit">phpunit</a>.xml</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">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>htdocs<span style="color: #000000; font-weight: bold;">/</span>testzf<span style="color: #000000; font-weight: bold;">/</span>tests<span style="color: #000000; font-weight: bold;">/</span>phpunit.xml</pre></div></div>

<p>En un principio tiene que estar vacío si no se ha hecho ninguna modificación. Hay que añadir el siguiente contenido, guardar y cerrar:</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 style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;testsuite</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;testzf&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</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>
<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>Posteriormente, desde el terminal se ejecuta el siguiente comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">phpunit <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>tests</pre></div></div>

<p>Si todo es correcto, el terminal devolverá lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">PHPUnit 3.4.11 by Sebastian Bergmann.
&nbsp;
Time: 0 seconds, Memory: 3.50Mb
&nbsp;
OK (0 tests, 0 assertions)</pre></div></div>



<p>Entradas relacionadas:</p><ol><li><a href='http://otroblogmas.com/instalar-phpunit-xampp-windows/' rel='bookmark' title='Permanent Link: Instalar PHPUnit con XAMPP en Windows'>Instalar PHPUnit con XAMPP en Windows</a></li>
<li><a href='http://otroblogmas.com/instalar-zend-framework-zend_tool-para-construir-proyectos-ubuntu/' rel='bookmark' title='Permanent Link: 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-phpunit-zend-framework/' rel='bookmark' title='Permanent Link: Configurar PHPUnit y Zend Framework'>Configurar PHPUnit y Zend Framework</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://otroblogmas.com/instalar-phpunit-en-el-xampp-de-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</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 07:00:15 +0000</pubDate>
		<dc:creator>otroblogmas.com</dc:creator>
				<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[zend framework]]></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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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 Ubuntu, 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 Apache:

<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 de Zend Framework" 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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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>1</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/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Permanent Link: 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/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Permanent Link: 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-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Permanent Link: 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 Zend Framework, 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 Debug Bar Screenshot" 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.php</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;">protected <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/configurar-netbeans-para-trabajar-con-phpunit-y-zend-framework/' rel='bookmark' title='Permanent Link: 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/acceder-a-zend_view-desde-un-plugin-en-zend-framework/' rel='bookmark' title='Permanent Link: 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-subversion-para-utilizar-los-repositorios-externos-de-zend-framework/' rel='bookmark' title='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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="Portada del libro &quot;Zend Framework Beginning&quot;" 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, XAMPP 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> <span style="color: #448844;">PATH</span>=<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\PEAR\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&gt; 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 de Zend Framework" 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='Permanent Link: 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='Permanent Link: 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='Permanent Link: 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>15</slash:comments>
		</item>
	</channel>
</rss>
