<?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>Joan Ballester &#187; Zend Framework</title>
	<atom:link href="http://joanballester.es/tag/zend-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://joanballester.es</link>
	<description>Programación, Desarrollo Web, Software libre, GNU/Linux, Debian, Tecnología</description>
	<lastBuildDate>Fri, 18 May 2012 07:50:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Zend Framework: Algo más sobre su MVC</title>
		<link>http://joanballester.es/programacion-desarrollo/zend-framework-mvc-2.html</link>
		<comments>http://joanballester.es/programacion-desarrollo/zend-framework-mvc-2.html#comments</comments>
		<pubDate>Tue, 29 Jun 2010 09:00:54 +0000</pubDate>
		<dc:creator>Joan Ballester</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.joanballester.es/?p=744</guid>
		<description><![CDATA[Las últimas 2 entradas sobre Zend Framework fueron &#8220;Antes de empezar con ZF&#8221; y &#8220;Hello world en ZF&#8220;, hoy continuaremos algunos  conceptos muy básicos del MVC de Zend Framework. Por ejemplo, vamos a crear una vista de un listado con el controlador index: En &#8220;application/controllers/&#8221; tenemos nuestro &#8220;indexController.php&#8221;, no vamos a crear otros controladores de ...]]></description>
			<content:encoded><![CDATA[<p>Las últimas 2 entradas sobre Zend Framework fueron &#8220;<a href="http://www.joanballester.es/programacion-desarrollo/zend-framework-antes-de-empezar.html" target="_blank">Antes de empezar con ZF</a>&#8221; y &#8220;<a href="http://www.joanballester.es/programacion-desarrollo/zend-framework-hello-world.html" target="_blank">Hello world en ZF</a>&#8220;, hoy continuaremos algunos  <strong>conceptos muy básicos del MVC</strong> de Zend Framework.</p>
<p>Por ejemplo, vamos a crear una vista de un listado con el controlador index:</p>
<p>En &#8220;application/controllers/&#8221; tenemos nuestro &#8220;indexController.php&#8221;, no vamos a crear otros controladores de momento, vamos a ir a lo básico.<br />
En &#8220;application/views/scripts/index/&#8221; tenemos &#8220;index.phtml&#8221; y vamos a crear &#8220;lista.phtml&#8221; de momento vacío, más abajo le metemos mano.<br />
Luego, en  &#8221;application/layouts/scripts/&#8221; tenemos nuestro &#8220;layout.phtml&#8221;, que puede quedarse igual de momento.</p>
<p>Let&#8217;s go:</p>
<p><strong>application/controllers/indexController.php</strong></p>
<p>Dentro de esta clase, meteríamos este método:</p>
<pre>public function listaAction()
    {
		$this-&gt;view-&gt;listado = "Listado...";
		$this-&gt;render();
    }</pre>
<p>Evidentemente cuando hacemos el &#8220;$this-&gt;view-&gt;listado&#8221; ya nos ocuparíamos de recoger ese listado de base de datos, o de sesión, etc&#8230; pero por ahora vamos con lo básico.</p>
<p>Si os fijáis simplemente renderizamos.</p>
<p><strong>application/views/scripts/index/lista.phtml</strong></p>
<pre>echo $this-&gt;listado;</pre>
<p>Y en la vista (&#8220;lista.phtml&#8221;) no hay más historia que pintar el listado que le pasamos desde el controlador.</p>
<p>Desde el controlador, más adelante, accederemos a la base de datos, sesión, etc&#8230; lo único que nos tiene que preocupar ahora mismo, es entender que al ejecutar en el navegador:</p>
<pre>http://localhost/nombredelaaplicacion/index/lista</pre>
<p>Se ejecutará dentro del indexController.php el método listaAction() y sacará su resultado (si lo tiene, renderizado&#8230;) en la vista index/lista.phtml</p>
<p>Si ejecutáramos:</p>
<pre>http://localhost/nombredelaaplicacion/index/test</pre>
<p>Se ejecutará dentro del indexController.php el método testAction() y sacará su resultado (si lo tiene, renderizado&#8230;) en la vista index/test.phtml, como no tenemos ni uno ni otro, saltaría error (que también aprenderemos a atraparlos y configurarlos)</p>
<p>&copy;2012 <a href="http://joanballester.es">Joan Ballester</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://joanballester.es/programacion-desarrollo/zend-framework-mvc-2.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Hello world</title>
		<link>http://joanballester.es/programacion-desarrollo/zend-framework-hello-world.html</link>
		<comments>http://joanballester.es/programacion-desarrollo/zend-framework-hello-world.html#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:48:12 +0000</pubDate>
		<dc:creator>Joan Ballester</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Hello world]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.joanballester.es/?p=679</guid>
		<description><![CDATA[En el apunte anterior expliqué un poco la estructura básica de los directorios de Zend Framework y el patrón MVC, en este apunte haremos un &#8220;hello world&#8221; sencillito. Advertencia: A la hora de instalar el Zend Framework (para instalarlo debería bastar con un aptitude, os recuerdo las diferencias entre apt-get y aptitude) os daréis cuenta de que ...]]></description>
			<content:encoded><![CDATA[<p>En el <a href="http://www.joanballester.es/programacion-desarrollo/zend-framework-antes-de-empezar.html" target="_blank">apunte anterior</a> expliqué un poco la estructura básica de los directorios de Zend Framework y el patrón MVC, en este apunte haremos un &#8220;hello world&#8221; sencillito.</p>
<p><span style="text-decoration: underline;">Advertencia</span>: A la hora de instalar el Zend Framework (para instalarlo debería bastar con un aptitude, os recuerdo las <a href="http://www.joanballester.es/gnu-linux/gnulinux-aptitude-o-apt.html" target="_blank">diferencias entre apt-get y aptitude</a>) os daréis cuenta de que las librerías se pueden llamar desde diferentes sitios. Podéis optar por duplicarlas en todas vuestras aplicaciones, y tenerlas en la carpeta &#8220;library&#8221; dentro de &#8220;application&#8221; o podéis nutriros de las librerías en un directorio común, es muy sencillo y no os dará ningún problema.</p>
<p>Lo siguiente que yo haría sería un alias apuntando al Zend Framework  en mi máquina queda así:</p>
<blockquote><p>$&gt; alias zf=&#8217;/usr/share/php/ZendFramework-1.10.0/bin/zf.sh&#8217;</p></blockquote>
<p>Para que al pulsar &#8220;zf&#8221; en vuestra shell se ejecute el comando directamente, para saber si está bien instalado, bastaría con hacer un:</p>
<blockquote><p>$&gt; zf</p></blockquote>
<p>De este modo os debería salir una ayuda de Zend en la que os explica los comandos que podéis utilizar, etcétera.</p>
<p>Una vez instalado el Zend Framework os váis a vuestro directorio donde tengáis localhost y hacéis:</p>
<blockquote><p>$&gt; cd /var/www/<br />
$&gt; zf create project aplicacion<br />
$&gt; ls aplicacion</p></blockquote>
<p>Al hacer el &#8220;ls&#8221; veréis como Zend ya os crea la estructura básica de Zend Framework:<br />
application/<br />
—— configs/<br />
—— controllers/<br />
—— models/<br />
—— views/<br />
library/<br />
—— Zend/<br />
public/<br />
tests /</p>
<p>Bien, vamos por buen camino, para que lo sepáis, el navegador tiene que apuntar a &#8220;public&#8221; para que se ejecute la aplicación web, por tanto, id a vuestro navegador (explorer no lo es) y teclead:</p>
<blockquote><p>http://localhost/aplicacion/public/</p></blockquote>
<p>Debería saliros el hello world de Zend, si no os saliera y obtuviérais un error en el que os dice que no encuentra &#8220;Zend/Application.php&#8221; es porque no encuentra las librerías (las que os expliqué al inicio), en ese caso o las ponéis dentro de &#8220;library&#8221; (y os quedaría library/Zend) o cambiáis las rutas.</p>
<p>En el próximo apunte destriparemos un poco la aplicación y haremos un layout (por ejemplo).</p>
<p>&copy;2012 <a href="http://joanballester.es">Joan Ballester</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://joanballester.es/programacion-desarrollo/zend-framework-hello-world.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Antes de empezar</title>
		<link>http://joanballester.es/programacion-desarrollo/zend-framework-antes-de-empezar.html</link>
		<comments>http://joanballester.es/programacion-desarrollo/zend-framework-antes-de-empezar.html#comments</comments>
		<pubDate>Mon, 29 Mar 2010 19:24:49 +0000</pubDate>
		<dc:creator>Joan Ballester</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.joanballester.es/?p=669</guid>
		<description><![CDATA[Vamos a presuponer que quien abre este apunte es porque ya tiene conocimientos de programación, y supongo, que también del lenguaje PHP (Zend Framework está programado en PHP), por tanto vamos a obviar muchos términos.. Objetivo del apunte: 1. Refrescar la memoria con el patrón MVC. 2. Mostrar el Árbol de archivos en una aplicación básica ...]]></description>
			<content:encoded><![CDATA[<p>Vamos a presuponer que quien abre este apunte es porque ya tiene conocimientos de programación, y supongo, que también del lenguaje PHP (<a href="http://framework.zend.com/" target="_blank">Zend Framework</a> está programado en <a href="http://php.net/" target="_blank">PHP</a>), por tanto vamos a obviar muchos términos..</p>
<p>Objetivo del apunte:</p>
<ul>
<li>1. Refrescar la memoria con el patrón MVC.</li>
<li>2. Mostrar el Árbol de archivos en una aplicación básica de Zend Framework.</li>
</ul>
<p><strong>1. Patrón MVC</strong></p>
<p>Para quien no haya trabajado con el <strong>patrón MVC</strong> (<a href="http://es.wikipedia.org/wiki/Modelo_Vista_Controlador" target="_blank">modelo vista controlador</a>) lo explicaré un poco por encima, y así a partir de aquí será más sencillo entenderlo todo.</p>
<p>La lógica a la hora de programar nos dice que el interfaz de usuario cambia con más frecuencia que los almacenamientos de datos y la lógica de negocio, por tanto si mezclamos en nuestras aplicaciones los componentes de interfaz, los de negocio y los de almacenamiento tendremos como consecuencia <strong>las famosísimas ñapas[1]</strong> ya que cuando queramos cambiar la interfaz tendremos que modificar muchos componentes de negocio (o todos!).</p>
<p>El patrón MVC se basa en la reusabilidad y la facilidad de cambios (mantenimiento del software) y separa los datos, la interfaz y la lógica de negocio en tres componentes: Modelos, Vistas y Controladores.</p>
<ul>
<li>Modelo: El modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.</li>
<li>Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario. En el caso de Zend Framework se compone básicamente de archivos .phtml que se podrán reutilizar a modo de plantillas (o no, a gusto del consumidor)</li>
<li>Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.</li>
</ul>
<p><strong>2. Árbol de archivos en una aplicación básica de Zend Framework.</strong></p>
<p>Os dejo la estructura básica de archivos que se utiliza en el Zend Framework:</p>
<p><span style="text-decoration: underline;">Aplicación</span><br />
application/<br />
&#8212;&#8212; configs/<br />
&#8212;&#8212; controllers/<br />
&#8212;&#8212; forms/<br />
&#8212;&#8212; layouts/<br />
&#8212;&#8212; models/<br />
&#8212;&#8212; modules/<br />
&#8212;&#8212; views/<br />
library/<br />
&#8212;&#8212; Zend/<br />
public/<br />
tests /</p>
<p>Como podéis apreciar, a primera vista ya se ve el MVC: controllers, models, views.<br />
Más adelante explico detalladamente el corazón de una aplicación.</p>
<p>En el próximo post de Zend Framework haremos nuestro &#8220;hello world&#8221; ;p</p>
<p><strong>[1] </strong><em>Que si, que también hay y habrá ñapas con el patrón MVC, pero os aseguro que os facilitará la vida a la hora de detectar errores.</em></p>
<p>&copy;2012 <a href="http://joanballester.es">Joan Ballester</a>. All Rights Reserved.</p>.]]></content:encoded>
			<wfw:commentRss>http://joanballester.es/programacion-desarrollo/zend-framework-antes-de-empezar.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

