<?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>CodigoLinea - Benjamin Gonzales</title>
	<atom:link href="http://codigolinea.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codigolinea.com</link>
	<description>Deesarrollo web</description>
	<lastBuildDate>Sat, 28 Nov 2009 14:35:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Framework 1.9.x &#8211; Documentación en CHM &amp; PDF</title>
		<link>http://codigolinea.com/2009/11/15/zend-framework-1-9-x-documentacion-en-chm-pdf/</link>
		<comments>http://codigolinea.com/2009/11/15/zend-framework-1-9-x-documentacion-en-chm-pdf/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 02:52:29 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[chm]]></category>
		<category><![CDATA[Manual]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=197</guid>
		<description><![CDATA[Les dejo los links del manual actualizado, en formato CHM y PDF para que lo puedan descargar, junto con la documentación del API el cual es muy importante  para poder comprender  a fondo el funcionamiento de cada componente.
!Ahora ya no tienen excusa!



 PDF
CHM
API DOC CHM









ZF_1.9.x_ES.pdf
ZF_1.9.x_ES.chm
ZF_1.9.x_API_Doc.chm


(6.8M)
(2.8M)
(10.6M)



Bugs
Si tienen problemas para visualizar los archivos CHM en su Windows [...]]]></description>
			<content:encoded><![CDATA[<p>Les dejo los links del manual actualizado, en formato <strong>CHM</strong> y<strong> PDF</strong> para que lo puedan descargar, junto con la documentación del <strong>API</strong> el cual es muy importante  para poder comprender  a fondo el funcionamiento de cada componente.</p>
<p>!Ahora ya no tienen excusa!</p>
<table border="0" align="center">
<thead>
<tr>
<th> <strong>PDF</strong></th>
<th><strong>CHM</strong></th>
<th><strong>API DOC CHM</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><a href="http://codigolinea.googlecode.com/files/Zend_Framework_1.9.x_ES-REV471.pdf"><img title="pdf_icon" src="http://codigolinea.com/wp-content/uploads/2009/11/pdf_icon.gif" alt="pdf_icon" width="50" height="50" /></a></td>
<td align="center"><a href="http://codigolinea.googlecode.com/files/Zend_Framework_1.9.x_ES-REV471.chm"><img title="chm_icon" src="http://codigolinea.com/wp-content/uploads/2009/11/chm_icon.gif" alt="chm_icon" width="40" height="40" /></a></td>
<td align="center"><a href="http://www.mikaelkael.fr/IMG/chm/Zend_Framework_API_Doc.chm"><img title="chm_icon"  src="http://codigolinea.com/wp-content/uploads/2009/11/chm_icon.gif" alt="chm_icon" width="40" height="40" /></a></td>
</tr>
<tr>
<td align="center"><strong>ZF_1.9.x_ES.pdf</strong></td>
<td align="center"><strong>ZF_1.9.x_ES.chm</strong></td>
<td align="center"><strong>ZF_1.9.x_API_Doc.chm</strong></td>
</tr>
<tr>
<td align="center"><strong>(6.8M)</strong></td>
<td align="center"><strong>(2.8M)</strong></td>
<td align="center"><strong>(10.6M)</strong></td>
</tr>
</tbody>
</table>
<p><strong>Bugs</strong><br />
Si tienen problemas para visualizar los archivos <strong>CHM</strong> en su Windows revisen mi anterior<a href="http://codigolinea.com/2009/05/26/zend-framework-manual-en-chm-y-la-traduccion/"> post </a></p>
<p><strong>Nota:</strong><br />
Si desean descargar la documentación en otros idiomas, lo pueden hacer aquí <a href="http://www.mikaelkael.fr/Zend-Framework-1-9-x-documentation.html  ">http://www.mikaelkael.fr/Zend-Framework-1-9-x-documentation.html </a></p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2009/11/15/zend-framework-1-9-x-documentacion-en-chm-pdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework Manual en CHM y la Traducción</title>
		<link>http://codigolinea.com/2009/05/26/zend-framework-manual-en-chm-y-la-traduccion/</link>
		<comments>http://codigolinea.com/2009/05/26/zend-framework-manual-en-chm-y-la-traduccion/#comments</comments>
		<pubDate>Tue, 26 May 2009 06:08:45 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Avances]]></category>
		<category><![CDATA[Docuementación en CHM]]></category>
		<category><![CDATA[Manual en CHM]]></category>
		<category><![CDATA[Zend Framework en chm]]></category>
		<category><![CDATA[ZF traduccíon español]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=141</guid>
		<description><![CDATA[Les traigo 2 novedades.
Primero
La documentación en español ya dio sus primero pasos, hemos alcanzado a traducir el 38% de los documentos, aún falta mucho, pero es reconfortante ver que avanzamos. Los que deseen pueden verlo online en esta url http://manual.zfdes.com/, y  si encuentren  un error no duden en reportarlo, les estaremos muy agradecidos.
Si [...]]]></description>
			<content:encoded><![CDATA[<p>Les traigo 2 novedades.</p>
<p><strong>Primero</strong><br />
La documentación en español ya dio sus primero pasos, hemos alcanzado a traducir el 38% de los documentos, aún falta mucho, pero es reconfortante ver que avanzamos. Los que deseen pueden verlo online en esta url <a href="http://manual.zfdes.com/">http://manual.zfdes.com/</a>, y  si encuentren  un error no duden en reportarlo, les estaremos muy agradecidos.<br />
Si desean unirse al grupo de traductores pueden enviarnos un mail a <a href="mailto:zendframeworkspanish@googlegroups.com ">zendframeworkspanish@googlegroups.com </a> solicitando ser incluidos.<br />
<span id="more-141"></span></p>
<p><strong>Segundo</strong><br />
A veces no podemos estar siempre conectados a la red para poder consultar el manual online, así que compile el manual en CHM para que  de esa manera podamos aprovechar todas las ventajas de este formato.</p>
<p>Les dejo los links para que lo puedan descargar.</p>
<p>Manual en Español<br />
<a href="http://codigolinea.googlecode.com/files/Zend_Framework_1.8.x_ES-REV380.chm">http://codigolinea.googlecode.com/files/Zend_Framework_1.8.x_ES-REV380.chm</a></p>
<p>Manual  en Ingles<br />
<a href="http://codigolinea.googlecode.com/files/Zend_Framework_1.8.x_EN.chm">http://codigolinea.googlecode.com/files/Zend_Framework_1.8.x_EN.chm </a></p>
<p>Manual Online<br />
<a href="http://manual.zfdes.com/">http://manual.zfdes.com/</a></p>
<p><strong>Bugs</strong><br />
Si tienen algún problema en visualizar el archivo .<strong>chm</strong>,  les dejo unas recomendaciones que les pueden servir.</p>
<p>- Si están utilizando Microsoft Internet Explorer en Windows XP SP2 o posterior, tienen que &#8220;desbloquear&#8221; el archivo después de descargarlo, haciendo click derecho sobre ella y seleccionando la opción &#8220;<em><strong>propiedades</strong></em>&#8221; del menú contextual y a continuación hacen click en el botón &#8220;<em><strong>desbloquer</strong></em>&#8220;, con eso ya deben poder visualizar sin problemas el manual.  Esto se debe a un bug de Microsoft Internet Explorer.<br />
- Si están utilizando Microsoft Internet Explorer en Windows Vista revisen <a href="http://blog.crowe.co.nz/archive/2007/04/13/719.aspx"> este enlace </a></p>
<p>Espero que les sea de mucha utilidad, ¡hasta la próxima!.</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2009/05/26/zend-framework-manual-en-chm-y-la-traduccion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Insertando Fechas con Diferente Formato en MySQL</title>
		<link>http://codigolinea.com/2009/04/10/insertando-fechas-con-diferente-formato-en-mysql/</link>
		<comments>http://codigolinea.com/2009/04/10/insertando-fechas-con-diferente-formato-en-mysql/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 02:43:06 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[MySql]]></category>
		<category><![CDATA[Añadir etiqueta nueva]]></category>
		<category><![CDATA[fechas]]></category>
		<category><![CDATA[GET_FORMAT]]></category>
		<category><![CDATA[ISO 8601]]></category>
		<category><![CDATA[STR_TO_DATE]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=56</guid>
		<description><![CDATA[MySql cuando almacena una fecha lo hace deacuerdo a la norma  ISO 8601 esto es  YYYY-mm-dd.
¿Por que MySql Almacena fecha en ese formato?
La explicación es muy amplia y no lo trataremos ahora, pero lo podemos resumir en los siguientes puntos:
- Evitar formatos ambiguos
- Tener un formato único y universal
- Poder ser organizados de [...]]]></description>
			<content:encoded><![CDATA[<p>MySql cuando almacena una fecha lo hace deacuerdo a la norma  <a href="http://es.wikipedia.org/wiki/ISO_8601">ISO 8601</a> esto es  YYYY-mm-dd.</p>
<p><strong>¿Por que MySql Almacena fecha en ese formato?</strong><br />
La explicación es muy amplia y no lo trataremos ahora, pero lo podemos resumir en los siguientes puntos:<br />
- Evitar formatos ambiguos<br />
- Tener un formato único y universal<br />
- Poder ser organizados de más a menos significativo<br />
- Estar en  formato ordenable, incluso si tratáramos  a las fechas como cadenas de texto, podríamos ordenarlas alfabéticamente.</p>
<p>Si ingresamos una fecha que no cumpla con ese formato, simplemente provocará un error, ya que no sera recocido como fecha válida.</p>
<p><strong>¿Como podemos solucionar esto?</strong><br />
Mysql Contiene una función llamada <strong><a href="http://dev.mysql.com/doc/refman/6.0/en/date-and-time-functions.html#function_get-format">GET_FORMAT</a></strong> con el cual podemos insertar fechas con distinto formato, solo le tenemos que indicar en que formato estamos recibiendo la fecha para que MySQL luego lo procese.</p>
<p>Los formatos que acepta <strong><a href="http://dev.mysql.com/doc/refman/6.0/en/date-and-time-functions.html#function_get-format">GET_FORMAT</a></strong> son los siguientes</p>
<table class="tblfrm" border="0" cellspacing="3" cellpadding="0" width="400" bordercolor="#d3e0eb">
<tbody>
<tr>
<td bgcolor="#d3e0eb"><strong>Llamada función</strong></td>
<td bgcolor="#d3e0eb"><strong>Resultado</strong></td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATE,&#8217;USA&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%m.%d.%Y&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATE,&#8217;JIS&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATE,&#8217;ISO&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATE,&#8217;EUR&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%d.%m.%Y&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATE,&#8217;INTERNAL&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y%m%d&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATETIME,&#8217;USA&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d %H.%i.%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATETIME,&#8217;JIS&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d %H:%i:%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATETIME,&#8217;ISO&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d %H:%i:%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATETIME,&#8217;EUR&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y-%m-%d %H.%i.%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(DATETIME,&#8217;INTERNAL&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%Y%m%d%H%i%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(TIME,&#8217;USA&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%h:%i:%s %p&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(TIME,&#8217;JIS&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%H:%i:%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(TIME,&#8217;ISO&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%H:%i:%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(TIME,&#8217;EUR&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%H.%i.%s&#8217;</td>
</tr>
<tr>
<td bgcolor="#d3e0eb">GET_FORMAT(TIME,&#8217;INTERNAL&#8217;)</td>
<td bgcolor="#d3e0eb">&#8216;%H%i%s&#8217;</td>
</tr>
</tbody>
</table>
<p>Para demostrar el uso de esta función voy a crear una tabla:</p>
<pre class="brush: sql;">
CREATE TABLE `demo` (
`id` int(11) NOT NULL auto_increment,
`fecha` date default NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB
</pre>
<p>Supongamos que recibimos un fecha con el siguiente formato  <strong>15/01/2005 (dd/mm/YYYY). </strong>. Esto lo insertaremos de la siguiente manera.</p>
<pre class="brush: sql;">
INSERT INTO demo (fecha)
VALUES (STR_TO_DATE(REPLACE('15/01/2005','/','.') ,GET_FORMAT(date,'EUR')))
</pre>
<p>Explicaré lo que hace la sentencia<br />
Convertimos la cadena de texto a un formato fecha con <strong>STR_TO_DATE</strong>.<br />
Usamos <strong>REPLACE</strong> para  reemplazamos las barras por el punto (.), según nuestra tabla de formatos.<br />
Con <strong>GET_FORMAT(date,&#8217;EUR&#8217;) </strong> le decimos al mysql que la fecha que vamos ingresar esta en formato europeo</p>
<p>Probemos con otra fecha, insertaremos una fecha con el siguiente formato <strong>10.31.2003 (mm.dd.YYYY)</strong></p>
<pre class="brush: sql;">
INSERT INTO demo (fecha)
VALUES (STR_TO_DATE('10.31.2003' ,GET_FORMAT(date,'USA')))
</pre>
<p>Verificamos nuestros datos insertados, y vemos que esta en el formato estándar.</p>
<pre class="brush: sql;">
mysql&gt; select * from demo;
+----+------------+
| id | fecha      |
+----+------------+
|  1 | 2005-01-15 |
|  2 | 2003-10-31 |
+----+------------+
2 rows in set (0.00 sec)
</pre>
<p>Espero que les sea de mucha utilidad y les evite muchos dolores de cabeza.</p>
<p>Hasta la próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2009/04/10/insertando-fechas-con-diferente-formato-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework Documentación en Español</title>
		<link>http://codigolinea.com/2008/10/29/zend-framework-documentacion-en-espanol/</link>
		<comments>http://codigolinea.com/2008/10/29/zend-framework-documentacion-en-espanol/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 20:26:38 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[manual oficial de ZF]]></category>
		<category><![CDATA[manual ZF]]></category>
		<category><![CDATA[traduccion manual]]></category>
		<category><![CDATA[wiki Zend manual]]></category>
		<category><![CDATA[zend framework español]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=22</guid>
		<description><![CDATA[La documentación oficial en español ha estado estancado por mucho tiempo, las causas pueden ser diversas, pero el mayor problema es el trámite un poco tedioso con Zend, ya que se tiene que firmar un documento llamado CLA &#8220;Contributor License Agreement&#8221;  para poder hacer contribuciones y esperar que Zend lo apruebe, luego de eso [...]]]></description>
			<content:encoded><![CDATA[<p>La documentación oficial en español ha estado estancado por mucho tiempo, las causas pueden ser diversas, pero el mayor problema es el trámite un poco tedioso con Zend, ya que se tiene que firmar un documento llamado <strong>CLA</strong> &#8220;Contributor License Agreement&#8221;  para poder hacer contribuciones y esperar que Zend lo apruebe, luego de eso solicitar acceso al <strong>SVN</strong> (que también es un poco complicado) para poder enviar los documentos traducidos, lo cual ha desanimado ha muchos. </p>
<p>Como miembro del grupo de traductores del manual de ZF  y viendo esta problemática instale un wiki <strong><a href="http://www.zfdes.com/">http://www.zfdes.com/</a></strong> para que todos puedan colaborar y así podamos avanzar con la traducción del manual, después de ser traducidos y revisados estos documentos serán enviados a Zend.</p>
<p>He empezado a enviar algunos avances a Zend, pueden verlo <a href=" http://framework.zend.com/svn/framework/standard/trunk/documentation/manual/es/ ">aquí</a></p>
<p><strong>¿Y como ayudar?</strong><br />
Puedes ayudar de la siguiente manera:</p>
<p>- Traduciendo los documentos publicados<br />
- Verificando las traducciones<br />
- Corrigendo errores y/o reportándolos en el foro del wiki <a href="http://zfdes.com/">http://foro.zfdes.com/</a><br />
- Comunicando a otros para que nos ayuden en la traducción</p>
<p>Así que ya no hay mas excusas para no poder ayudar, esperamos tu apoyo! </p>
<p>Enlaces:<br />
wiki: <a href="http://zfdes.com/">http://zfdes.com/</a><br />
SVN: <a href="http://framework.zend.com/svn/framework/standard/trunk/documentation/manual/es/">http://framework.zend.com/svn/framework/standard/trunk/documentation/manual/es/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/10/29/zend-framework-documentacion-en-espanol/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zend Famework 1.6.2 y 1.7.0PR</title>
		<link>http://codigolinea.com/2008/10/14/zend-famework-162-y-170pr/</link>
		<comments>http://codigolinea.com/2008/10/14/zend-famework-162-y-170pr/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 00:43:06 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[amfphp]]></category>
		<category><![CDATA[dojo 1.2]]></category>
		<category><![CDATA[Dojo Toolkit]]></category>
		<category><![CDATA[Nuevo]]></category>
		<category><![CDATA[ZendX_JQuery]]></category>
		<category><![CDATA[Zend_Cache]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=21</guid>
		<description><![CDATA[Tenemos ZF por partida doble, Zend ha liberado la versión 1.6.2 y la 1.7.0PR de su framework, si desean pueden descargarlo desde aquí http://framework.zend.com/download/latest#
Zend Framework 1.6.2
Esta versión la 1.6.2 de Zend Framework corrige muchos bugs y añade nuevas características a los siguientes componentes :

Dojo Integration 

JSON-RPC Server
dojo.data Envelopes
Dojo View Helper
Dijit integration with Zend_Form &#38; Zend_View
Dojo [...]]]></description>
			<content:encoded><![CDATA[<p>Tenemos ZF por partida doble, Zend ha liberado la versión 1.6.2 y la 1.7.0PR de su framework, si desean pueden descargarlo desde aquí <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest#</a></p>
<h2>Zend Framework 1.6.2</h2>
<p>Esta versión la 1.6.2 de Zend Framework corrige muchos bugs y añade nuevas características a los siguientes componentes :</p>
<ul>
<li><strong>Dojo Integration </strong>
<ul>
<li>JSON-RPC Server</li>
<li>dojo.data Envelopes</li>
<li>Dojo View Helper</li>
<li>Dijit integration with Zend_Form &amp; Zend_View</li>
<li>Dojo Library Distribution</li>
</ul>
</li>
<li> <strong>SOAP </strong>
<ul>
<li>SOAP Server</li>
<li>SOAP Server</li>
<li>SOAP Client</li>
<li>Autodiscovery</li>
<li>WSDL access</li>
<li>WSDL Generation</li>
</ul>
</li>
<li><strong>SOAP Server</strong></li>
<li> <strong>SOAP Server</strong></li>
<li><strong>SOAP Client</strong></li>
<li><strong>Autodiscovery</strong></li>
<li><strong>WSDL access</strong></li>
<li><strong>WSDL Generation</strong></li>
<li><strong>Preview of Tooling Project in Laboratory (see /laboratory folder) </strong>
<ul>
<li>Command Line Interface</li>
<li>Project Asset Management</li>
</ul>
</li>
<li><strong>Unit Testing Harness for Controllers</strong></li>
<li><strong>Lucene 2.3 Index File Format Support</strong></li>
<li><strong>Zend_Session save handler for Database Tables</strong></li>
<li><strong>Paginator Component</strong></li>
<li><strong>Text/Figlet Support</strong></li>
<li><strong>ReCaptcha Service</strong></li>
<li><strong>Captcha Form Element</strong></li>
<li><strong>Zend_Config_Xml Attribute Support</strong></li>
<li><strong>Zend_File_Transfer Component</strong></li>
<li><strong>File Upload Form Element</strong></li>
<li><strong>Zend_Wildfire Component with FireBug Log Writer</strong></li>
<li><strong>Media View Helpers (Flash, Quicktime, Object, and Page)</strong></li>
<li><strong>Support in Zend_Translate for INI File Format</strong></li>
</ul>
<p>el detalle de los Bugs corregidos lo pueden ver aquí <a href="http://framework.zend.com/issues/secure/IssueNavigator.jspa?requestId=10862">http://framework.zend.com/issues/secure/IssueNavigator.jspa?requestId=10862</a></p>
<h2>Zend Framework 1.7.0PR</h2>
<p>La Nueva sorpresa es el lanzamiento del Preview Release de la Versión 1.7.0 el cual Viene cargado de novedades las cuales son:</p>
<ul>
<li> <strong>Zend_AMF</strong> Basada en <a href="http://www.amfphp.org/">amfphp</a> el cual nos ayuda a conectarnos a flash y flex</li>
<li><strong>Dojo Toolkit 1.2.0</strong> Soportará las nuevas funcionalidades de esta versión</li>
<li> <strong>ZendX_JQuery</strong> Para poder trabajar con JQuery</li>
<li> <strong>Support for dijit editor</strong> Soportará el Dijit Editor</li>
<li> <strong>Metadata API in Zend_Cache</strong></li>
<li> <strong>Google book search API</strong></li>
<li> <strong>Performance enhancements</strong></li>
<li> <strong>Application-wide locale with other i18n enhancements</strong></li>
<li> <strong>File upload form element enhancements</strong></li>
</ul>
<p>Las mejoras en cada versión son bárbaras, así que manos a la obra, aprovechemos las mejoras y saquemos el juego, ¿que opinan?</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/10/14/zend-famework-162-y-170pr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Error en el elemento Checkbox de Zend_Dojo_Form</title>
		<link>http://codigolinea.com/2008/10/10/error-en-el-elemento-checkbox-de-zend_dojo_form/</link>
		<comments>http://codigolinea.com/2008/10/10/error-en-el-elemento-checkbox-de-zend_dojo_form/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 22:04:20 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Checkbox error]]></category>
		<category><![CDATA[Zend Dojo error]]></category>
		<category><![CDATA[Zend_dojo]]></category>
		<category><![CDATA[Zend_Dojo_Form_Element_CheckBox]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=20</guid>
		<description><![CDATA[Hoy estuve trabajando con este componente (Zend_Dojo_Form_Element_CheckBox) y me di con la sorpresa de que no funcionaba correctamente. Lo que pasa que hay un pequeño error en  Zend/Dojo/View/Helper/CheckBox.php  el cual no genera correctamente el HTML
Este error afecta a hasta la versión Zend Framework 1.6.1 y aun tampoco se ha solucionado en la versión [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy estuve trabajando con este componente (Zend_Dojo_Form_Element_CheckBox) y me di con la sorpresa de que no funcionaba correctamente. Lo que pasa que hay un pequeño error en <strong> Zend/Dojo/View/Helper/CheckBox.php </strong> el cual no genera correctamente el HTML</p>
<p>Este error afecta a hasta la versión <strong>Zend Framework 1.6.1</strong> y aun tampoco se ha solucionado en la versión de desarrollo.</p>
<p>Veamos un ejemplo</p>
<pre class="brush: php;">
class TestController extends Zend_Controller_Action
{
	function indexAction ()
    {
		$this-&gt;view-&gt;addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
		$form = new Zend_Dojo_Form();
		$form-&gt;addElement(
		    'CheckBox',
		    'checkboxValue',
		    array(
		        'label'        =&gt; 'Label',
		        'checkedValue' =&gt; 'checkedValue',
			'uncheckedValue' =&gt; 'notCheckedValue',
		    )
		);

		$form-&gt;addDecorators(array('FormElements', 'Form'));
		$this-&gt;view-&gt;form = $form;
	}
}
</pre>
<p>Esto produce el siguiente HTML:</p>
<pre class="brush: xml;">
&lt;!-- Erroneo//--&gt;
&lt;input name=&quot;checkboxValue&quot; type=&quot;hidden&quot; value=&quot;0&quot; /&gt;
&lt;input id=&quot;checkboxValue&quot; name=&quot;checkboxValue&quot; type=&quot;checkbox&quot; value=&quot;notCheckedValue&quot; /&gt; </pre>
<p>Pero debería generar el siguiente HTML</p>
<pre class="brush: xml;">
&lt;!-- Debería producir//--&gt;
&lt;input name=&quot;checkboxValue&quot; type=&quot;hidden&quot; value=&quot;notCheckedValue&quot; /&gt;
&lt;input id=&quot;checkboxValue&quot; name=&quot;checkboxValue&quot; type=&quot;checkbox&quot; value=&quot;checkedValue&quot; /&gt; </pre>
<p>Esto genera que los datos siempre se envíen vacíos, quiere decir si marcamos el <strong>checkbox</strong> este llegará vació, como si no lo hubiésemos marcado.</p>
<p><strong>Solución</strong><br />
Aun no existe un parche oficial para este problema, pero si queremos seguir trabajando podemos editar el <strong>helper</strong> del <strong>checkbox</strong> ubicado en  <strong>Zend/Dojo/View/Helper/CheckBox.php</strong> y agregar una pequeña línea de código para solucionarlo, hasta esperar que corrijan dicho problema.</p>
<p>Hay que agregar lo siguiente <strong> $checkedOptions = $attribs['options'];</strong> después de la línea <strong> 74</strong></p>
<pre class="brush: php;">
 public function checkBox($id, $value = null, array $params = array(), array $attribs = array(), array $checkedOptions = null)
    {
        // Prepare the checkbox options
        require_once 'Zend/View/Helper/FormCheckbox.php';
        $checked = false;
        if (isset($attribs['checked']) &amp;&amp; $attribs['checked']) {
            $checked = true;
        } elseif (isset($attribs['checked'])) {
            $checked = false;
        }
		//Linea Añadida &lt; -----
	    $checkedOptions = $attribs['options'];

        $checkboxInfo = Zend_View_Helper_FormCheckbox::determineCheckboxInfo($value, $checked, $checkedOptions);
        $attribs['checked'] = $checkboxInfo['checked'];
        if (!array_key_exists('id', $attribs)) {
            $attribs['id'] = $id;
        }

        $attribs = $this-&gt;_prepareDijit($attribs, $params, 'element');

        // strip options so they don't show up in markup
        if (array_key_exists('options', $attribs)) {
            unset($attribs['options']);
        }
//.............
</pre>
<p>El equipo de Zend ya esta haciendo un seguimiento a este problema y pronto tendremos la solución:</p>
<p>Aquí pueden ver la respuesta a mi pregunta sobre dicho error<br />
<a href="http://www.nabble.com/Error-Zend_Dojo-CheckBox-td19910115.html">http://www.nabble.com/Error-Zend_Dojo-CheckBox-td19910115.html</a></p>
<p><a href="http://www.nabble.com/Error-Zend_Dojo-CheckBox-td19910115.html">Issue Tracker<br />
</a><a href="http://framework.zend.com/issues/browse/ZF-4274">http://framework.zend.com/issues/browse/ZF-4274 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/10/10/error-en-el-elemento-checkbox-de-zend_dojo_form/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Proteger nuestros archivos .INI en Zend Framework</title>
		<link>http://codigolinea.com/2008/08/10/proteger-nuestros-archivos-ini-en-zend-framework/</link>
		<comments>http://codigolinea.com/2008/08/10/proteger-nuestros-archivos-ini-en-zend-framework/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 00:46:49 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[asegurando los ini]]></category>
		<category><![CDATA[configuración]]></category>
		<category><![CDATA[ini]]></category>
		<category><![CDATA[proteger archivos ini]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[seguridad en archivos ini]]></category>
		<category><![CDATA[zend_config_ini]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=17</guid>
		<description><![CDATA[Los archivos .INI sirven para almacenar parámetros de configuración y por su sencillez es muy utilizado por la mayoría de aplicaciones.
Zend Framework nos ofrece un componente para poder leerlos, llamado Zend_Config_Ini el cual esta apoyado en el parse_ini_file() de PHP. 
Al ser archivos planos es fácil de leerlos, incluso a través del navegador web y [...]]]></description>
			<content:encoded><![CDATA[<p>Los archivos <strong>.INI</strong> sirven para almacenar parámetros de configuración y por su sencillez es muy utilizado por la mayoría de aplicaciones.</p>
<p>Zend Framework nos ofrece un componente para poder leerlos, llamado Zend_Config_Ini el cual esta apoyado en el parse_ini_file() de PHP. </p>
<p>Al ser archivos planos es fácil de leerlos, incluso a través del navegador web y eso lo hace muy vulnerable, ya que si no esta correctamente protegido, cualquiera puede leer nuestros parámetros de configuración y acceder a contraseñas, rutas de archivos, entre otras cosas.</p>
<p>Nuestros archivos <strong>.INI</strong> siempre deberían estar ubicados por encima del la raíz    <strong> web </strong> de nuestro servidor.</p>
<p>Supongamos que tenemos la siguiente distribución de carpetas de nuestra aplicación</p>
<pre class="brush: plain;">
application/
    config/
         database.ini
    controllers/
    models/
    views/
        scripts/
        helpers/
        filters/
   web/
    .htaccess
    index.php
</pre>
<p>Todo lo contenido dentro de <strong>application</strong> debería estar estar fuera del acceso vía web, eso sería  lo ideal, pero no siempre es así, ya que puede ocurrir que nos encontremos en un entorno donde no podemos contar con dichas facilidades, entonces debemos tomar las precauciones del caso.</p>
<p>Supongamos que estamos trabajando  en un <strong>subdominio</strong>, o en una carpeta por debajo del árbol de la <strong>web</strong>, la distribución de carpetas de nuestra aplicación sería algo parecido a esto.</p>
<pre class="brush: php;">
web/my_aplication/
			application/
				config/
			    	database.ini
			    controllers/
			    models/
			    views/
			    	scripts/
			        helpers/
			        filters/
			   html/
			   	index.php
			.htaccess
</pre>
<p>Quedaríamos expuestos y solo protegidos por las reglas declaradas dentro del <strong>.htaccess</strong>, ¿entonces que más podemos hacer?.</p>
<p>La solución es bien sencilla, consiste en convertir a nuestros archivos <strong>.ini</strong>  en archivos <strong>.php</strong> y poner toda la información dentro de  comentarios, de esa manera no podrán ser visualizados.</p>
<p><strong>database.ini.php</strong></p>
<pre class="brush: php;">
/*
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Configuration Database  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Production site configuration data
[production]
webhost                        = www.codigolinea.com
database.adapter         	= pdo_mysql
database.params.host      	= localhost
database.params.username  	= dbuser
database.params.password  	= secret
database.params.dbname    	= myDB
database.params.profiler	= false
*/
</pre>
<p>Y lo usamos como cualquier otro archivo <strong>.INI </strong></p>
<pre class="brush: php;">
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('database.ini.php', 'production');

echo $config-&gt;database-&gt;params-&gt;host;   // prints &quot;localhost&quot;
echo $config-&gt;database-&gt;params-&gt;dbname; // prints &quot;myDB&quot;
</pre>
<p>Así de sencillo, yo siempre lo uso de esa manera, y me quito la preocupación de que si algo falla, alguien pueda acceder a dicho fichero y leerlo.</p>
<p>Hay muchas otras soluciones a nivel de Servidor ¿pero si no tenemos acceso?, o usando la configuración a través de arrays(), pero la idea es no perder la simplicidad de los archivos <strong>.INI</strong>. </p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/08/10/proteger-nuestros-archivos-ini-en-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualizando Zend Framework en Zend Studio</title>
		<link>http://codigolinea.com/2008/07/30/actualizando-zend-framework-en-zend-studio/</link>
		<comments>http://codigolinea.com/2008/07/30/actualizando-zend-framework-en-zend-studio/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:10:45 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[actualización]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[versión]]></category>
		<category><![CDATA[Zend Studio]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=13</guid>
		<description><![CDATA[Las últimas versiones de Zend Studio ya trae integrado el Zend Framework, el cual nos ayuda a autocompletar el código, mostrar la lista de propiedades, lista de métodos, etc, solo se tiene que activar dicha opción para poderlo usar.

Lo malo es que la versión de Zend Framework no siempre es actual, ya que Zend Studio toma [...]]]></description>
			<content:encoded><![CDATA[<p>Las últimas versiones de Zend Studio ya trae integrado el Zend Framework, el cual nos ayuda a autocompletar el código, mostrar la lista de propiedades, lista de métodos, etc, solo se tiene que activar dicha opción para poderlo usar.</p>
<p><img src="http://codigolinea.com/wp_personal_gallery/zsp.gif" alt="" width="300" height="292" /></p>
<p>Lo malo es que la versión de Zend Framework no siempre es actual, ya que Zend Studio toma la versión vigente de Zend Framework al momento de la publicación del software, así tenemos que la última versión  de <strong>Zend Studio 5.5.1</strong> traiga <strong>Zend Framework 1.0.3</strong> cuando la versión vigente es una superior.</p>
<p><strong>¿Cual es sería la solución? </strong></p>
<p>Es bien simple, cuando el Zend Studio se instala, crea una carpeta dentro de su directorio raíz donde guarda dicho Framework, así que solo tenemos que reemplazar esta carpeta con la versión mas reciente del Framework.</p>
<p><strong>Paso 1</strong><br />
Descargamos le versión más actual del Zend Framework <a href="http://framework.zend.com/download">http://framework.zend.com/download</a>.</p>
<p><strong>Paso 2</strong><br />
Descomprimimos el archivo bajado en cualquier ubicación de nuestro disco, la estructura de los directorios será mas o menos así:<br />
<img src="http://codigolinea.com/wp_personal_gallery/file.gif" alt="" width="185" height="122" /></p>
<p>Luego copiamos la carpeta <strong>Zend</strong></p>
<p><strong>Paso 3</strong><br />
No dirigimos a la ubicación donde se instalo Zend Studio y donde guarda el Framework, en mi caso es la siguiente ruta:<br />
<em><strong>C:\Program Files\Zend\ZendStudio-5.5.1\bin\ZendFramework\library </strong></em> en el cual aparecerá una carpeta llamada <strong>Zend</strong> lo renombrados y le ponemos de nombre <strong>old</strong></p>
<p><strong>Paso 4</strong><br />
Pegamos la carpeta que copiamos, luego cerramos y volvemos a abrir el <strong>Zend Studio</strong> y ya podremos trabajar con las nuevas funcionalidades del Framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/07/30/actualizando-zend-framework-en-zend-studio/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Instalando Zend Framework</title>
		<link>http://codigolinea.com/2008/07/27/instalando-zend-framework/</link>
		<comments>http://codigolinea.com/2008/07/27/instalando-zend-framework/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 23:38:30 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Instalando Zend]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=11</guid>
		<description><![CDATA[Zend Framework  es uno de los principales Frameworks para el desarrollo de aplicaciones Web, basados en PHP y tiene la ventaja de que los creadores de PHP estén detrás de este poderoso Framework.
1. ¿Que necesitamos para instalar este Framework?
- PHP 5.2.3 ó superiores
Si trabajas con la versión 5.1.4 funcionará correctamente, pero Zend nos recomienda usar [...]]]></description>
			<content:encoded><![CDATA[<p>Zend Framework  es uno de los principales Frameworks para el desarrollo de aplicaciones Web, basados en PHP y tiene la ventaja de que los creadores de PHP estén detrás de este poderoso Framework.</p>
<p><strong>1. ¿Que necesitamos para instalar este Framework?</strong></p>
<p>- PHP 5.2.3 ó superiores</p>
<blockquote><p>Si trabajas con la versión 5.1.4 funcionará correctamente, pero Zend nos recomienda usar la versión 5.2.3 o superiores, puesto que en estas versiones hay mejoras importantes en la seguridad como en el funcionamiento de PHP, ya que algunas bibliotecas PHP usados por Zend Framework no eran completamente estables hasta la versión 5.2.3.</p></blockquote>
<p>- Un servidor Web como Apache, IIS, u otros. PHP es multi plataforma así que funcionará en la mayoría de servidores web y sistemas operativos tales como <strong>Linux, Solaris, Windows, OS X, etc. </strong> En lo personal prefiero Linux y Apache</p>
<blockquote><p>Si deseas dedicarte o te dedicas de manera profesional al desarrollo web con php, te recomiendo que uses <strong>Linux </strong> como Servidor Web, ya que te permitirá conocer  el entorno y te enfrentaras a problemas reales que suelen suceder en la mayoría de servidores Web (hosting) que brindan soporte a PHP</p></blockquote>
<blockquote><p>SI trabajas con Windows hay programas que permiten montar APACHE + LINUX + MYSQL con una simple instalación, entre estos programas tenemos XAMPP, WAMPServer, Appserv, etc</p></blockquote>
<p>- Las Extensiones PHP necesarios que deben estar instalados nuestro servidor web son:<br />
Según el DB que usemos:</p>
<ul>
<li><a href="http://www.php.net/manual/en/book.pdo.php" target="_top"><code class="code">pdo</code></a> Para todos los adaptadores de Base de datos</li>
<li>pdo_mssql y/o <a href="http://www.php.net/manual/en/ref.mssql.php" target="_top"><code class="code">mssql</code></a> para trabajar con Mcrosoft SQL Server</li>
<li> <a href="http://www.php.net/manual/en/ref.pdo-mysql.php" target="_top"><code class="code">pdo_mysql</code></a> y/o <a href="http://www.php.net/manual/en/ref.mysql.php" target="_top"><code class="code">mysql</code></a> y/o <a href="http://www.php.net/manual/en/ref.mysqli.php" target="_top"><code class="code">mysqli</code></a> para trabajar con Mysql</li>
<li> <a href="http://www.php.net/manual/en/ref.pdo-oci.php" target="_top"><code class="code">pdo_oci</code></a> y/o <a href="http://www.php.net/manual/en/ref.oci8.php" target="_top"><code class="code">oci8</code></a> para trabajar con Oracle</li>
<li> <a href="http://www.php.net/manual/en/ref.pdo-pgsql.php" target="_top"><code class="code">pdo_pgsql</code></a> y/o <a href="http://www.php.net/manual/en/ref.pgsql.php" target="_top"><code class="code">pgsql</code></a> para trabajar con postgreSQL</li>
<li> <a href="http://www.php.net/manual/en/ref.pdo-sqlite.php" target="_top"><code class="code">pdo_sqlite</code></a> y/o <a href="http://www.php.net/manual/en/ref.sqlite.php" target="_top"><code class="code">SQLite</code></a> para trabajar con sqlLite</li>
<li> <a href="http://www.php.net/manual/en/ref.ibm-db2.php" target="_top"><code class="code">ibm_db2</code></a> para trabajar con DB2</li>
<li><a href="http://www.php.net/manual/en/ref.uodbc.php" target="_top"><code class="code">odbc</code></a> Adaptador ODBC</li>
</ul>
<p>Otros:</p>
<ul>
<li><a href="http://www.php.net/manual/en/ref.zlib.php" target="_top"><code class="code">zlib</code></a> Para los componentes  <a href="http://framework.zend.com/manual/en/zend.pdf.html" target="_top"><code class="code">Zend_Pdf</code></a>,                             <a href="http://www.php.net/manual/en/ref.memcache.php" target="_top"><code class="code">Memcache</code></a></li>
<li><a href="http://www.php.net/manual/en/ref.json.php" target="_top"><code class="code">json</code></a> Para los componentes <a href="http://framework.zend.com/manual/en/zend.json.html" target="_top"><code class="code">Zend_Json</code></a></li>
<li><a href="http://www.php.net/manual/en/ref.image.php" target="_top"><code class="code">gd</code></a> Para los componentes <a href="http://framework.zend.com/manual/en/zend.pdf.html" target="_top"><code class="code">Zend_Pdf</code></a></li>
</ul>
<p>Para  comprobar si lo tenemos instalado estos componentes solo tenemos que hacer uso de la función  <strong>phpinfo()</strong> de PHP.</p>
<blockquote><p>Para más información detallada acerca de los componentes,  extensiones PHP y sus dependencias, lo encuentran en:<br />
- <a href="http://framework.zend.com/manual/en/requirements.extensions.html">PHP Extensions</a><br />
- <a href="http://framework.zend.com/manual/en/requirements.zendcomponents.html">Zend Framework Components</a></p></blockquote>
<p><strong>2. Descargando Zend Framework</strong></p>
<p>Una vez que tengamos nuestro entorno con los componentes necesarios, procederemos a descargar la versión mas reciente, estable y oficial del Zend Framework del siguiente link <a href="http://framework.zend.com/download ">http://framework.zend.com/download </a> y lo guardamos dentro de la carpeta <strong>library</strong></p>
<p>Pero si eres osado y deseas contar con la versión mas actualizada , lo puedes descargar desde <a href="http://framework.zend.com/download/snapshot">http://framework.zend.com/download/snapsho</a> o haciendo uso de un cliente de subversión (SVN) desde                     <a href="http://framework.zend.com/svn/framework/standard/trunk/" target="_top">http://framework.zend.com/svn/framework/trunk</a> y de esa manera tenerlo actualizado siempre. Estas versiones cuentan con las últimas mejoras y nuevos componentes, pero recuerda que están sujetos a posibles cambios futuros.</p>
<p><strong>3. Estructura de Archivos</strong></p>
<p>Va depender de como deseas configurarlo y el entorno en que te encuentres.</p>
<p>- Si nuestro proyecto va funcionar como principal aplicación de nuestro servidor web, optamos por la siguiente estructura.<br />
<img src="http://codigolinea.com/wp_personal_gallery/dir1.gif" alt="" width="451" height="456" /></p>
<p>- Si nuestro proyecto va funcionar como aplicación secundaria, lo podemos estructurar de la siguiente manera<br />
<img src="http://codigolinea.com/wp_personal_gallery/dir2.gif" alt="" width="451" height="456" /></p>
<p>Estos son estructuras propuestas,  pueden ser cambiadas y adaptadas a nuestros entornos y manera de trabajo. En el siguiente enlace <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend+Framework+Default+Project+Structure+-+Wil+Sinclair">&#8220;Zend Framework Default Project Structure &#8220;</a> podemos encontrar diversas maneras de crear la estructura de archivos  para nuestros proyectos.</p>
<p><strong>4. Configurando nuestro archivo .htaccess</strong></p>
<pre class="brush: plain;">
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|swf|pdf)$ index.php
</pre>
<p>Estas reglas encaminaran las peticiones hacia el <strong>front controller</strong> a excepción de las imágenes, archivos javascript, hojas de estilo, archivhos .swf (flash). Si deseamos que exceptué algún otra extensión solo lo añadimos a nuestra regla.</p>
<p>Ya tenemos nuestro entorno listo para trabajar, solo nos queda probar para ver si funciona todo correctamente.</p>
<p><strong>5. Probando su funcionamiento</strong><br />
Vamos a crear nuestro proyecto dentro del localhost de nuestro servidor local, la ruta seria http://localhost/</p>
<p><strong>5.1 Creando el archivo Index </strong><br />
Creamos el archivo /public/index.php con el siguiente contenido.</p>
<pre class="brush: php;">
$basePath = dirname(dirname(__FILE__));
set_include_path(get_include_path() . PATH_SEPARATOR .
$basePath . '/library' . PATH_SEPARATOR);

/** @see Zend_Controller_Front */
require_once 'Zend/Controller/Front.php';

Zend_Controller_Front::run($basePath . '/application/controllers');
</pre>
<p><strong>5.2 Creando el archivo IndexController </strong><br />
Creamos el archivo /application/controllers/indexController.php con el siguiente contenido.</p>
<pre class="brush: php;">
/** @see Zend_Controller_Action */
require_once 'Zend/Controller/Action.php';

class IndexController extends Zend_Controller_Action
{
	public function indexAction()
	{
		$this-&gt;view-&gt;test = &quot;Hola Mundo&quot;;
	}
}
</pre>
<p><strong>5.3 Creando la Vista </strong><br />
Creamos el archivo /application/views/scripts/index.phtml con el siguiente contenido.</p>
<pre class="brush: xml;">
&lt; !DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt; ?php

echo $this-&gt;escape($this-&gt;test);

?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>5.4 Probando </strong><br />
Abrimos nuestro navegador y escribimos la ruta http://localhost y nos debe salir el mensaje &#8216;Hola Mundo&#8217;, si nos mostró el mensaje es decir que todo funciona bien y estamos listo para crear nuestras aplicaciones web.</p>
<p>Hasta aquí llegamos, eso sería todo, espero que les sea de mucha utilidad al momento de crear sus proyectos, Quedo abierto a sus preguntas y/o comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/07/27/instalando-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparación y Rendimiento de Frameworks PHP</title>
		<link>http://codigolinea.com/2008/06/04/compararcion-y-rendimiento-de-frameworks-php/</link>
		<comments>http://codigolinea.com/2008/06/04/compararcion-y-rendimiento-de-frameworks-php/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 00:27:30 +0000</pubDate>
		<dc:creator>Benjamin Gonzales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony Framework]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Cake PHP]]></category>
		<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[comparación]]></category>
		<category><![CDATA[comparativa]]></category>
		<category><![CDATA[Libro blanco sobre frameworks PHP para empresas]]></category>
		<category><![CDATA[Rendimiento]]></category>

		<guid isPermaLink="false">http://codigolinea.com/?p=9</guid>
		<description><![CDATA[Hace unos años atrás se publico un artículo en phpti.net en la que hacían una comparación de los frameworks para PHP, desde esa fecha a la actualidad dichos frameworks han evolucionado y han mejorado considerablemente.
Hoy  me entero a través  de el blog de symfony en español, de un nuevo estudio realizado por Clever [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos años atrás se publico un artículo en <a href="http://www.phpit.net/article/ten-different-php-frameworks#fr-footnote-6" target="_blank">phpti.net</a> en la que hacían una comparación de los frameworks para PHP, desde esa fecha a la actualidad dichos frameworks han evolucionado y han mejorado considerablemente.</p>
<p>Hoy  me entero a través  de el blog de <a href="http://www.symfony.es/2008/06/03/libro-blanco-sobre-frameworks-php-para-empresas/">symfony </a>en español, de un nuevo estudio realizado por <a href="http://www.clever-age.com/">Clever Age</a> sobre los frameworks mas usados en PHP,  titulado <strong>&#8220;Libro blanco sobre frameworks PHP para empresas&#8221;, </strong>donde se realiza un exhaustivo estudio de todas funcionalidades de dichos frameworks, mostrando los puntos fuertes y débiles de cada uno.</p>
<p>Dicho documento se encuentra en francés y lo pueden solicitar totalmente gratis desde  este <strong><a href="http://www.clever-age.com/veille/publications/livres-blancs/livre-blanc-frameworks-php-pour-l-entreprise.html">link</a></strong>, es necesario que coloquen su mail para recibir el pdf.</p>
<p>Para los que no pueden entender el francés, traduje la <strong>parte 9</strong>, que trata sobre <strong>&#8220;Evaluación por el método de <a href="http://www.qsos.org/?lp_lang_pref=ES&amp;page_id=3" target="_blank">QSOs</a> </strong> (<em>Qualification and Selection of Open Source software</em>)&#8221; el cual me pareció que resume muy bien todo lo tratado en el libro.</p>
<p>El método <strong><a href="http://www.qsos.org/?lp_lang_pref=ES&amp;page_id=3" target="_blank">QSOs</a></strong> se centra en los criterios para estimar los riesgos incurridos por un usuario al usar un software.</p>
<p>Para cada función, la regla de notación es el siguiente:</p>
<ul>
<li>0 si la funcionalidad no está cubierto,</li>
<li>1 si la función está parcialmente cubierto,</li>
<li>2 si la función está completamente cubierto.</li>
</ul>
<table class="tblfrm" border="0" cellspacing="1" cellpadding="1" width="500">
<tbody>
<tr>
<td style="background-color:#004586; color:#FFFFFF" colspan="5" align="center"><strong></strong> <strong>Durabilidad Intrínseca</strong> <strong> </strong></td>
</tr>
<tr>
<td style="color:#FFFFFF" bgcolor="#004586"></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Cake PHP</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Symfony</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Zend<br />
Framework</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Code Igniter</strong></td>
</tr>
<tr>
<td style="color:#666666" colspan="5" bgcolor="#b7d2ff"><strong>Madurez</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Edad</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Fecha de<br />
salida:<br />
2005</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Fecha de<br />
salida:<br />
2005</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Fecha de<br />
salida:<br />
2007</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Fecha de<br />
salida:<br />
2006</td>
</tr>
<tr>
<td bgcolor="#dadada">Estabilidad</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La versión<br />
estable<br />
1,19</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La versión<br />
estable<br />
1,0</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La versión<br />
estable 1,0</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La versión estable 1,6</td>
</tr>
<tr>
<td rowspan="2" bgcolor="#dadada">Historial de<br />
Bugs y problemas<br />
conocidos</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
</tr>
<tr>
<td colspan="4" align="center" bgcolor="#e8e8e8">Historial de bugs y errores disponible en el sitio de cada    Framework</td>
</tr>
<tr>
<td bgcolor="#dadada">Probabilidad de bifurcación (fork), fuente de bifurcación</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Symfony es un<br />
FORK de Mojavi2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Kohana es un<br />
FORK</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Adopción</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Popularidad</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Referencias</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Muchas referencias<br />
y extensiones en Mozilla</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Muchas referencias de (Yahoo, etc) .. cf. http://<br />
symfonians.net/<br />
applications/</td>
<td align="center" bgcolor="#e8e8e8">2<br />
muchos referencias de (IBM, Nokia, etc) cf.  http://<br />
framework.zend.com/<br />
comunidad/<br />
aplicaciones/</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Unos<br />
Referencias<br />
e Emmaus.<br />
uk</td>
</tr>
<tr>
<td bgcolor="#dadada">Contribución de la Comunidad</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La comunidad es activa en<br />
foros dedicados,<br />
grupos de Google y  blogs</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La comunidad<br />
es importante<br />
y activa en<br />
foros dedicados<br />
blogs y<br />
grupos de Google</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La comunidad<br />
es importante<br />
y activa en<br />
foros dedicados y<br />
blogs</td>
<td align="center" bgcolor="#e8e8e8">2<br />
La comunidad<br />
está activo en<br />
foros dedicados</td>
</tr>
<tr>
<td bgcolor="#dadada">Publicaciones</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Publicación de un libro<br />
en Inglés<br />
&#8220;<a href="http://www.amazon.ca/CakePHP-Recipes-Fabio-Cevasco/dp/0321497732">CakePHP    Recipes</a>&#8220;</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Publicación de un libro en inglés “The Definitive Guide to    Symfony”</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Publicación de libros<br />
en Inglés<br />
&#8221; Architect&#8217;s Guide<br />
to    Programming<br />
with Zend<br />
Framework&#8221;    y<br />
&#8221; Zend Framework<br />
in action &#8220;</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ningún libro publicado</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Liderazgo de    Desarrollo</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Líder del Grupo</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Larry E.Masters y otros 4</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Fabien Potencier<br />
de<br />
Sensio Labs</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Dirección del equipo<br />
de <a href="http://www.zend.com/company/management/">Zend<br />
Technologies</a></td>
<td align="center" bgcolor="#e8e8e8">1<br />
Dirección del equipo<br />
de <a href="http://ellislab.com/">EllisLab</a></td>
</tr>
<tr>
<td bgcolor="#dadada">Estilo de Dirección</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Una persona</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Una persona</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Grupo de Personas</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Una persona</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Actividad</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Número de Desarrolladores identificados, turnover</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Una docena de personas</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Unas cincuentas personas</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Unas cincuentas personas</td>
<td align="center" bgcolor="#e8e8e8">0<br />
No hay información</td>
</tr>
<tr>
<td bgcolor="#dadada">Actividad en los errores (bugs)</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Seguimiento de bugs<br />
está disponible<br />
a través de un <a href="https://trac.cakephp.org/report">trac</a> Wiki</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Un <a href="http://www.symfony-project.org/forum/">foro</a> y un activo<br />
seguimiento de bugs<br />
disponible a través de un <a href="http://trac.symfony-project.com/report">trac</a> Wiki</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Seguimiento de bugs<br />
disponible<br />
por<br />
un <a href="http://framework.zend.com/issues/secure/Dashboard.jspa">wiki</a> dedicado</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Seguimiento de bugs<br />
accesibles a través de<br />
la página <a href="http://codeigniter.com/bug_tracker/list/">Bugtracker</a></td>
</tr>
<tr>
<td bgcolor="#dadada">Actividad en las funcionalidades y características</td>
<td align="center" bgcolor="#e8e8e8">1<br />
La evolución del producto está en<br />
el<br />
enfoque del<br />
equipo de<br />
desarrolladores</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Una sección de <a href="http://www.symfony-project.org/forum/index.php/f/4/">foro</a> dedicada<br />
a la demanda<br />
nuevas<br />
características</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Una página <a href="http://framework.zend.com/issues/secure/Dashboard.jspa">IssueTracker </a>Orientada y<br />
dedicada<br />
a la demanda<br />
nuevas<br />
características</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Una sección de <a href="http://codeigniter.com/forums/viewforum/52/">foro</a> dedicada<br />
a la demanda<br />
nuevas<br />
características</td>
</tr>
<tr>
<td bgcolor="#dadada">Actividad de las versiones</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Versión en curso 1.2</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Versión en curso 1.1</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Versión en curso 1.5</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Versión reciente 1.6</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Independencia de    los desarrollos</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Independencia de los desarrollos</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td style="background-color:#004586; color:#FFFFFF" colspan="5" align="center"><strong></strong> <strong>Solución Industrial</strong> <strong> </strong></td>
</tr>
<tr>
<td style="color:#FFFFFF" bgcolor="#004586"></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Cake PHP</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Symfony</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Zend<br />
Framework</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Code Igniter</strong></td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Servicios</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Formación y/o Entrenamiento</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna oferta de formación está disponible para este framework</td>
<td align="center" bgcolor="#e8e8e8">2 <a href="http://www.anaska.com/formations/pdf/PHO2.pdf"><br />
Anaska</a>, <a href="http://formation.sqli.com/open-source/symfony.html">Sqli</a> o <a href="http://www.clever-age.com/">Clever Age</a> por ejemplo son algunos que proveen    formación para Symfony</td>
<td align="center" bgcolor="#e8e8e8">2 <a href="http://www.clever-age.com/"><br />
Zend</a> y <a href="http://www.anaska.com/formations/pdf/PHO2.pdf">Anaska</a> son por ejemplo algunos proveedores, que    proponen una formación en Zend Framework</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna oferta de formación está disponible para este    framework</td>
</tr>
<tr>
<td bgcolor="#dadada">Soporte</td>
<td align="center" bgcolor="#e8e8e8">0<br />
No ofrecen mas apoyo que<br />
foros, listas de correo<br />
y Google<br />
Grupos.</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Varias ofertas existentes (Clever Age, Sensio, etc), foros, mailinglists y    Google Groups</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Zend technologies ofrece un soporte para este framework    vía su <a href="http://www.zend.com/en/products/core/support"> red</a></td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna oferta de soporte excepto los foros y listas de correo</td>
</tr>
<tr>
<td bgcolor="#dadada">Consejos</td>
<td align="center" bgcolor="#e8e8e8">No Aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No Aplicable</td>
<td align="center" bgcolor="#e8e8e8">No Aplicable</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Documentación</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Documentación</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Documentación presentada bajo la forma de un <a href="http://manual.cakephp.org/">manual </a>accesible únicamente en    línea</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Ddocumentación importante presentada bajo la forma de un <a href="http://www.symfony-project.org/book/1_0/">manual </a>disponible en    línea y en libro</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Documentación detallada presentada bajo la forma de un <a href="http://framework.zend.com/manual/en/">guía</a> de referencia    disponible y descargable en línea</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Documentación presentada bajo la forma de un <a href="http://codeigniter.com/user_guide/">guía</a> accesible en línea y descargable  con el framework</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Métodos de Calidad</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Métodos de Calidad</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Herramientas</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Paquetes    (Packaging) </strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Source</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td rowspan="2" bgcolor="#dadada">Debian</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td rowspan="2" align="center" bgcolor="#e8e8e8">1<br />
No hay paquetes Disponibles</td>
</tr>
<tr>
<td colspan="3" align="center" bgcolor="#e8e8e8">Paquetes disponibles en Debian</td>
</tr>
<tr>
<td bgcolor="#dadada">FreeBSD</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">HP-UX</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Mac OS X</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Mandriva</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">NetBSD</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">OpenBSD</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">RedHat/Fedora</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Solaris</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">SuSE</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td bgcolor="#dadada">Windows</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Operatividad</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Facilidad de uso,<br />
ergonomía</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
</tr>
<tr>
<td bgcolor="#dadada">Administración / Supervisión</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
<td align="center" bgcolor="#e8e8e8">No aplicable</td>
</tr>
<tr>
<td style="background-color:#004586; color:#FFFFFF" colspan="5" align="center"><strong></strong> <strong>Técnicas de Adaptabilidad</strong> <strong> </strong></td>
</tr>
<tr>
<td style="color:#FFFFFF" bgcolor="#004586"></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Cake PHP</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Symfony</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Zend<br />
Framework</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Code Igniter</strong></td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Modularidad</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Modulardad</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">2<br />
plugins</td>
<td align="center" bgcolor="#e8e8e8">2<br />
extensiones</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Sub Productos</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Facilidad de modificación del código existente</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
<td align="center" bgcolor="#e8e8e8">2</td>
</tr>
<tr>
<td bgcolor="#dadada">Facilidad de extensión del código</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Posibilidad de utilizar componentes, modelos y <a href="http://manual.cakephp.org/view/319/plugins">plugins</a> adicionales</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Posibilidad<br />
de utilizar <a href="http://trac.symfony-project.com/wiki/SymfonyPlugins">plugins</a></td>
<td align="center" bgcolor="#e8e8e8">2<br />
Posibilidad de utilizar extensiones</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Posibilidad<br />
de<br />
agregar <a href="http://codeigniter.com/user_guide/general/plugins.html">plugins</a></td>
</tr>
<tr>
<td style="background-color:#004586; color:#FFFFFF" colspan="5" align="center"><strong></strong> <strong>Estrategia</strong> <strong> </strong></td>
</tr>
<tr>
<td style="color:#FFFFFF" bgcolor="#004586"></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Cake PHP</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Symfony</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Zend<br />
Framework</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Code Igniter</strong></td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Licencia</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Permisividad</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Licence MIT</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Licence MIT</td>
<td align="center" bgcolor="#e8e8e8">2<br />
New Licence<br />
BSD</td>
<td align="center" bgcolor="#e8e8e8">2<br />
Licence MIT</td>
</tr>
<tr>
<td bgcolor="#dadada">Protección contra los forks comercial</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna protección<br />
por definición de la licencia MIT</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna protección<br />
por definición de la licencia MIT</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna protección<br />
por definición de la licencia BSD</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ninguna protección<br />
por definición de la licencia MIT</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Copyright</strong> <strong>propietarios</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Copyright<br />
propietarios<strong></strong></td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Roadmap</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Roadmap</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Existencia de un <a href="https://trac.cakephp.org/roadmap">roadmap</a> sin planificación provisional</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Existencia de un <a href="http://trac.symfony-project.com/roadmap">roadmap</a> sin planificación provisional</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Existencia de un <a href="http://framework.zend.com/whyzf/future/">roadmap</a> sin planificación</td>
<td align="center" bgcolor="#e8e8e8">0<br />
Ningún roadmap publicado</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Sponsor</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Sponsor</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Patrocinador único:<br />
Cake Development<br />
corp.</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Patrocinador único:<br />
Sensio Labs</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Patrocinador único:<br />
Zend technologies</td>
<td align="center" bgcolor="#e8e8e8">1<br />
Patrocinador único;<br />
EllisLabs</td>
</tr>
<tr>
<td colspan="5" bgcolor="#b7d2ff"><strong>Independencia    estratégica</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Independencia estratégica</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">1</td>
<td align="center" bgcolor="#e8e8e8">0</td>
<td align="center" bgcolor="#e8e8e8">1</td>
</tr>
</tbody>
</table>
<p>Expresada en porcentaje de puntuación máxima alcanzable, se muestra la repartición de las notas de estos 4 frameworks según las categorías analizadas:</p>
<table class="tblfrm" border="0" cellspacing="1" cellpadding="1" width="500">
<tbody>
<tr>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Cake PHP</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Symfony</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Zend</strong> <strong> Framework</strong></td>
<td style="color:#FFFFFF" align="center" bgcolor="#004586"><strong>Code Igniter</strong></td>
</tr>
<tr>
<td bgcolor="#dadada">Durabilidad</td>
<td align="right" bgcolor="#e8e8e8">80,00%</td>
<td align="right" bgcolor="#e8e8e8">80,00%</td>
<td align="right" bgcolor="#e8e8e8">90,00%</td>
<td align="right" bgcolor="#e8e8e8">63,33%</td>
</tr>
<tr>
<td bgcolor="#dadada">Solución industrializada</td>
<td align="right" bgcolor="#e8e8e8">50,00%</td>
<td align="right" bgcolor="#e8e8e8">67,65%</td>
<td align="right" bgcolor="#e8e8e8">64,71%</td>
<td align="right" bgcolor="#e8e8e8">47,06%</td>
</tr>
<tr>
<td bgcolor="#dadada">Adaptabilidad</td>
<td align="right" bgcolor="#e8e8e8">83,33%</td>
<td align="right" bgcolor="#e8e8e8">100,00%</td>
<td align="right" bgcolor="#e8e8e8">100,00%</td>
<td align="right" bgcolor="#e8e8e8">83,33%</td>
</tr>
<tr>
<td bgcolor="#dadada">Estrategia</td>
<td align="right" bgcolor="#e8e8e8">50,00%</td>
<td align="right" bgcolor="#e8e8e8">50,00%</td>
<td align="right" bgcolor="#e8e8e8">41,67%</td>
<td align="right" bgcolor="#e8e8e8">41,67%</td>
</tr>
<tr>
<td style="color:#FFFFFF" bgcolor="#004586"><strong>Media</strong></td>
<td style="color:#FFFFFF" align="right" bgcolor="#004586"><strong>65,83%</strong></td>
<td style="color:#FFFFFF" align="right" bgcolor="#004586"><strong>74,41%</strong></td>
<td style="color: #ffffff;" align="right" bgcolor="#004586"><strong>74,10%</strong></td>
<td style="color:#FFFFFF" align="right" bgcolor="#004586"><strong>58,85%</strong></td>
</tr>
</tbody>
</table>
<p>Otra presentación en la forma de un gráfico de radar:</p>
<p><img src="http://codigolinea.com/wp_personal_gallery/framework.gif" alt="" /></p>
<p><strong>Conclusiones</strong><br />
Pienso que los datos de este estudio no son totalmente concluyentes puesto que cada framework esta en evolución y pude cambiar en el transcurso del tiempo, pero nos pude ayudar grandemente a tomar una mejor decisión al momento de querer embarcarnos en un nuevo proyecto en PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://codigolinea.com/2008/06/04/compararcion-y-rendimiento-de-frameworks-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
