<?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>zenphp :: blog &#187; Resultados de la búsqueda  &#187;  mvc</title>
	<atom:link href="http://blog.zenphp.es/?s=mvc&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.zenphp.es</link>
	<description>Escribre tu aplicación como si fuera la última que escribieras</description>
	<lastBuildDate>Tue, 02 Feb 2010 09:03:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Detalles del Modelo Visualizador VS MVC</title>
		<link>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/</link>
		<comments>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 11:31:41 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Funcionalidades]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[controlador]]></category>
		<category><![CDATA[detalles]]></category>
		<category><![CDATA[diferencia]]></category>
		<category><![CDATA[modelo]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[visualizador]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=154</guid>
		<description><![CDATA[
Acabo de estar mirando el nuevo modelo de datos de Joomla 1.5 junto con su controladores y vistas&#8230;es interesante sin embargo complicado y necesitas tener el manual cerca (a &#8220;mano&#8221;  ) porque no sabes nada de nada al estar dentro de una vista&#8230;si estás en una vista tipo &#8220;blog&#8221; de una categoría, cómo puedes [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-medium wp-image-156 aligncenter" title="mvc" src="http://blog.zenphp.es/wp-content/uploads/2008/07/mvc2_es-300x190.png" alt="" width="300" height="190" /></p>
<p>Acabo de estar mirando el nuevo modelo de datos de Joomla 1.5 junto con su controladores y vistas&#8230;es interesante sin embargo complicado y necesitas tener el manual cerca (a &#8220;mano&#8221; <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) porque no sabes nada de nada al estar dentro de una vista&#8230;si estás en una vista tipo &#8220;blog&#8221; de una categoría, cómo puedes conseguir la sección a la que pertenece? En algunos foros se discute el tema, acabando por hacer un nuevo y completo módulo o extensión también llamado para cubrir las necesidades&#8230;sólo por necesitar un identificador? &#8230;como veis parece absurdo tener una división que no te da libertad y crea más confusión&#8230;</p>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-155 aligncenter" title="talisman-idea" src="http://blog.zenphp.es/wp-content/uploads/2008/07/talisman-idea-300x199.jpg" alt="" width="300" height="199" /></p>
<p>En zenphp está el modelo de datos donde están todos los datos que está comunicado con punteros con el resto de modelos de la aplicación y por otro lado está, asociado al modelo ,el visualizador, nunca perdemos nada de vista y todo es parametrizable y accesible fácilmente, casi no tenemos ni que usar el manual o la documentación&#8230;veis la pauta? notais la diferencia? ahi radica la potencia de hacer algo simple y que funciona&#8230;</p>
<p>Saludos!</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=154&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_154"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/07/08/detalles-del-modelo-visualizador-vs-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generar el esqueleto de una aplicación web en 15 segundos</title>
		<link>http://blog.zenphp.es/2008/04/12/generar-el-esqueleto-de-una-aplicacion-web-en-15-segundos/</link>
		<comments>http://blog.zenphp.es/2008/04/12/generar-el-esqueleto-de-una-aplicacion-web-en-15-segundos/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 06:30:45 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Generadores]]></category>
		<category><![CDATA[PHP-Gtk]]></category>
		<category><![CDATA[Progreso]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/?p=109</guid>
		<description><![CDATA[Hagamos un repaso de los vídeos de la sección de documentos.
Toma 1:Validaciones
Después de ver los vídeos de las validaciones

Toma 2: modelo de datos
De como se construye un modelo de datos con su visualizador usando el MVC modificado

Toma 3: Visualizador avanzado:
Avanzamos con el visualizador:[ver]

Toma 4: El scaffolding
y le añadimos un andamio (scaffolding):[ver]

Todo en uno: el generador
Podemos [...]]]></description>
			<content:encoded><![CDATA[<p>Hagamos un repaso de los vídeos de la <a title="Ir a la sección de documentos" href="https://forja.rediris.es/docman/?group_id=252" target="_blank">sección de documentos</a>.</p>
<h4>Toma 1:Validaciones</h4>
<p>Después de ver los vídeos de las <a href="http://www.youtube.com/watch?v=Tm1OmAEUDUU" target="_blank">validaciones</a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/Tm1OmAEUDUU&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/Tm1OmAEUDUU&amp;hl=en" wmode="transparent"></embed></object></p>
<h4>Toma 2: modelo de datos</h4>
<p>De <a href="http://www.youtube.com/watch?v=VbQjaI-I490" target="_blank">como se construye un modelo de datos con su visualizador</a> usando el <a href="http://blog.zenphp.es/?s=patr%C3%B3n+mvc+">MVC modificado</a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/VbQjaI-I490&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/VbQjaI-I490&amp;hl=en" wmode="transparent"></embed></object></p>
<h4>Toma 3: Visualizador avanzado:</h4>
<p>Avanzamos con el visualizador:<a href="http://www.youtube.com/watch?v=0vdOZw6kXI8">[ver]</a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/0vdOZw6kXI8&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/0vdOZw6kXI8&amp;hl=en" wmode="transparent"></embed></object></p>
<h4>Toma 4: El scaffolding</h4>
<p>y le añadimos un andamio (scaffolding):<a href="http://www.youtube.com/watch?v=hWdFSZRtFO4" target="_blank">[ver]</a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/hWdFSZRtFO4&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/hWdFSZRtFO4&amp;hl=en" wmode="transparent"></embed></object></p>
<h4>Todo en uno: el generador</h4>
<p>Podemos ver como el generador de aplicaciones lo hace todo en 15 segundos (o menos <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )<a href="http://www.youtube.com/watch?v=eYV65MOSDYc" target="_blank">[en acción]</a> realiza nuestro trabajo más rápido que nosotros y nos permite concentrarnos en la parte importante del problema, lo que tenemos que presentar, finalmente.<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/eYV65MOSDYc&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/eYV65MOSDYc&amp;hl=en" wmode="transparent"></embed></object><br />
<a href="http://www.youtube.com/watch?v=eYV65MOSDYc" target="_blank">Ir al vídeo</a></p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=109&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_109"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/04/12/generar-el-esqueleto-de-una-aplicacion-web-en-15-segundos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Patrón MVC modificado</title>
		<link>http://blog.zenphp.es/2008/03/19/patron-mvc-modificado/</link>
		<comments>http://blog.zenphp.es/2008/03/19/patron-mvc-modificado/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 10:10:42 +0000</pubDate>
		<dc:creator>juaxix</dc:creator>
				<category><![CDATA[Funcionalidades]]></category>

		<guid isPermaLink="false">http://blog.zenphp.es/2008/03/19/patron-mvc-modificado/</guid>
		<description><![CDATA[¿Por qué zenphp usa un patrón Modelo+Vista+Controlador modificado?
El Modelo contiene la información de las tablas,campos y asociaciones de la base de datos, la Vista sirve para mostrar los datos del Modelo y las acciones del Controlador, éste último se asocia con los dos anteriores para &#8220;controlar&#8221; el flujo de la información y realizar las Acciones [...]]]></description>
			<content:encoded><![CDATA[<p><strong>¿Por qué <em>zenphp</em> usa un patrón <em>Modelo+Vista+Controlador</em> modificado?</strong></p>
<p>El Modelo contiene la información de las tablas,campos y asociaciones de la base de datos, la Vista sirve para mostrar los datos del Modelo y las acciones del Controlador, éste último se asocia con los dos anteriores para &#8220;controlar&#8221; el flujo de la información y realizar las Acciones oportunas.<br />
Sin embargo, a la hora de la verdad, necesitamos un <strong>control</strong> mucho mayor que el que nos puede proporcionar un Controlador, ¿por qué debería ser un controlador algo separado de una vista? ¿y si al final acabas haciendo el doble de trabajo para mantener ambos funcionando?, ¿crees que un controlador es una ayuda o un estorbo?&#8230;<br />
<img src="/img/frm_receta_vino.gif" align="absmiddle" border="0" height="486" width="330" /></p>
<p>En zenphp hay un <a href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/trunk/zenphp/clases/clase_zen_modelo_datos.php?op=file&amp;rev=0&amp;sc=0" title="Ver código del Modelo de Datos" target="_blank">Modelo</a> y un <a href="https://forja.rediris.es/websvn/wsvn/csl2-zenphp/trunk/zenphp/clases/clase_zen_html_modelo_datos.php?op=file&amp;rev=0&amp;sc=0" title="Ver Visualizador HTML " target="_blank">Visualizador</a>: Vista+Controlador, pongamos un ejemplo de funcionamiento:<br />
Supongamos que tenemos  la siguiente página (la de la imagen) donde el cliente dispone de una serie artículos y en un tipo de ellos, pongamos, categoría de recetas hay un campo de fecha que no queremos que se muestre, sin embargo la plantilla es general, por lo que tenemos que insertar una condición para comprobar que cuando sea del tipo &#8220;recetas&#8221; no se muestre la fecha, esto es simple, basta con hacer en un sistema de plantillas tipo <em>Smarty</em>:<br />
{if $datos-&gt;tipo != &#8220;recetas&#8221;} Fecha: {$datos-&gt;fecha} {endif}<br />
por ejemplo&#8230;luego, dependiendo del tipo de Modelo hay que modificarlo, para que sea más eficiente puesto que no necesitamos consultar la fecha y esto mejora en microsegundos (y qué?) la consulta, pero lo que si que hay que modificar es el Controlador, entonces tenemos 3 modificaciones. ¿Son necesarias las tres?</p>
<p><span id="more-79"></span><img src="http://beust.com/pics/crossing-chasm.jpg" height="372" width="300" /><br />
Si en un principio habíamos diseñado bien la plantilla, en el caso de zenphp sólo tendríamos que modificar el <strong>Visualizador</strong> para hacerlo igual de eficiente que en el caso de los 3 cambios puesto que el <strong>Modelo</strong> es totalmente flexible y dinámico para que desde el Visualizador con un par de cambios al Modelo <em>(padre)</em> se cambia la función de salida que toma la plantilla&#8230;<br />
En mi caso no lo hice bien XD por lo tanto tengo que cambiar también la plantilla , mi HTML es<br />
____<br />
Fecha: #fecha#<br />
____<br />
Por lo tanto,  lo cambio por #fecha# y en el Visualizador de tipo HTML asociado a mi Modelo,lo que hago es añadir la condición:</p>
<p>__________</p>
<p>if ($this-&gt;padre-&gt;tipo==&#8217;recetas&#8217;) $r['fecha'] =&#8221;";<br />
else $r['fecha'] = &#8220;Fecha:&#8221;.$r['fecha'];<br />
__________<br />
donde padre es el modelo artículos, $r es el array de substituciones para la clase plantilla, que se rellena con una orden del tipo:<br />
········<br />
$plantilla-&gt;mostrar($ida, &#8216;mostrar_articulo.html&#8217;, $r);<br />
········<br />
donde $ida es el id del artículo.<br />
Dicha función, automáticamente toma los datos del modelo y los muestra con la plantilla HTML para el id de $ida.</p>
<p>Sólo faltaría que ese campo no se consultara ,bastaría con añadir en la misma función del Visualizador una condición y substituir el campo por un espacio en blanco ,entonces ni siquiera haría falta la segunda condición puesto que la etiqueta #fecha# no se reemplazaría por lo tanto hemos reducido al máximo la elegancia del código junto con la eficiencia en tiempo y espacio. <img src='http://blog.zenphp.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>En Ruby On Rails el tema es más serio:<br />
<img src="http://bp1.blogger.com/_gVfZHGgf5LA/R3aNDWZktII/AAAAAAAAACk/2C3EMsIDny4/s400/Immagine2_mvc.png" height="291" width="400" /><br />
porque necesitamos hacer una migración de la base de datos a otra versión sin el campo para ese tipo de artículo, en zenphp no hay migraciones porque el autor o sea yo, las considera una pérdida de tiempo en un servidor de producción y a la hora de la verdad es más complejo y puede acarrear más problemas puesto que los campos necesitan mantener los valores al recuperar una versión, cosa que no estoy seguro que hagan ni siquiera en Django&#8230;</p>
<span class="akst_link"><a href="http://blog.zenphp.es/?p=79&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_79"  class="akst_share_link">Compártelo</a>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.zenphp.es/2008/03/19/patron-mvc-modificado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
