<?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>pon css en tu vida! &#187; PHP</title>
	<atom:link href="http://blog.joanfernandez.es/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.joanfernandez.es</link>
	<description>css, html, javascript, php y mucho mas...</description>
	<lastBuildDate>Wed, 15 Sep 2010 08:23:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Seguridad en Zend Framework</title>
		<link>http://blog.joanfernandez.es/2009/07/seguridad-en-zend-framework/</link>
		<comments>http://blog.joanfernandez.es/2009/07/seguridad-en-zend-framework/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 09:13:49 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=321</guid>
		<description><![CDATA[Últimamente, he estado poniéndome al día en todo lo que se refiere a la seguridad a la hora de programar una aplicación web. Temas como el session fixation, SQL injection, etc&#8230;
En programania, Luis Artola ha publicado el enlace a una presentación de Stefan Esser acerca de la seguridad en Zend Framework que corresponde a la [...]]]></description>
			<content:encoded><![CDATA[<p>Últimamente, he estado poniéndome al día en todo lo que se refiere a la seguridad a la hora de programar una aplicación web. Temas como el <a title="Session Fixation" hreflang="en-US" href="http://en.wikipedia.org/wiki/Session_fixation">session fixation</a>, <a title="SQL Injection" hreflang="es-ES" href="http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL">SQL injection</a>, etc&#8230;</p>
<p>En <strong>programania</strong>, Luis Artola ha publicado el enlace a una presentación de <a title="Stefan Esser" href="http://www.suspekt.org/">Stefan Esser</a> acerca de la <a title="Seguridad y Zend Framework" href="http://www.programania.net/php/seguridad-y-zend-framework/">seguridad en Zend Framework</a> que corresponde a la presentación que ofreció en la <a title="Dutch PHP Conference" hreflang="en-US" href="http://www.phpconference.nl/">Dutch PHP Conference</a> el pasado mes de Junio.</p>
<p>Muy interesante para todos los que andamos tocando Zend Framework, pues se tratan temas importantes como son:</p>
<ul>
<li>XSS</li>
<li>CSRF</li>
<li>Seguridad en consultas SQL</li>
<li>Validación y filtrado de las entradas</li>
<li>Manejo de las sesiones</li>
</ul>
<p>No entra en profundidad en ningún tema (al menos en las diapositivas), pero puede ser un buen punto de partida.</p>
<p><a title="Secure Programming With The Zend Framework" hreflang="en-US" href="http://www.suspekt.org/downloads/DPC_Secure_Programming_With_The_Zend_Framework.pdf">Descargar presentación: Secure Programming With The Zend Framework [PDF]</a></p>
<p><strong>Vía | </strong><a title="Seguridad y Zend Framework" hreflang="es-ES" href="http://www.programania.net/php/seguridad-y-zend-framework/">programania.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/07/seguridad-en-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizar JSON, serialize o var_export para cachear arrays</title>
		<link>http://blog.joanfernandez.es/2009/07/utilizar-json-serialize-o-var_export-para-cachear-arrays/</link>
		<comments>http://blog.joanfernandez.es/2009/07/utilizar-json-serialize-o-var_export-para-cachear-arrays/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 06:00:42 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=260</guid>
		<description><![CDATA[Hace un par de días, encontré esta comparativa entre tres de los sistemas que podemos utilizar en PHP para cachear grandes arrays de datos , comprimiendolos y almacenándolos en archivos.
Es este artículo, se utilizan 3 métodos distintos:

JSON (json_encode y json_decode)
Serialization (serialize y unserialize)
var_export / include (var_export y include)

La prueba para obtener a un ganador entre [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días, encontré esta comparativa entre tres de los sistemas que podemos utilizar en PHP para cachear grandes arrays de datos , comprimiendolos y almacenándolos en archivos.</p>
<p>Es este artículo, se utilizan 3 métodos distintos:</p>
<ul>
<li>JSON (<a title="json_encode" href="http://php.net/json_encode">json_encode </a>y <a title="json_decode" href="http://php.net/json_decode">json_decode</a>)</li>
<li>Serialization (<a title="serialize" href="http://php.net/serialize">serialize</a> y <a title="unserlialize" href="http://php.net/unserialize">unserialize</a>)</li>
<li>var_export / include (<a title="var_export" href="http://php.net/var_export">var_export</a> y <a title="include" href="http://php.net/include">include</a>)</li>
</ul>
<p>La prueba para obtener a un ganador entre estos tres métodos fué la siguente:</p>
<p>Se utilizaron 5 conjuntos de datos, con diferentes tamaños (de memoria utilizada): 904B, ~18kB, ~250kB, ~4.5MB and ~72.5MB.</p>
<p>A estos conjuntos se los sometió a 10 codificaciones/decodificaciones, calculando el tamaño del archivo generado, y el tiempo tardado en relaizar cada operación.</p>
<div id="attachment_262" class="wp-caption aligncenter" style="width: 513px"><a href="http://blog.joanfernandez.es/wp-content/uploads/2009/07/optimizacion-big-array.png"><img class="size-full wp-image-262" title="optimizacion-big-array" src="http://blog.joanfernandez.es/wp-content/uploads/2009/07/optimizacion-big-array_thumb.png" alt="optimizacion-big-array" width="503" height="190" /></a><p class="wp-caption-text">Click para ampliar</p></div>
<p style="text-align: center;">
<p>Los resultados son bastante reveladores:</p>
<ol>
<li>El método con mayor ratio de compresión es JSON.</li>
<li>Hasta que no lidiamos con cantidades &#8220;ingentes&#8221; de datos ( más de 30Mb), los mejores resultados se obtienen con serialize/unserialize.</li>
<li>A partir de los 30Mb, el rendimiento de serialize/unserialize disminuye casi exponencialmente.</li>
<li>A partir de los 30Mb, JSON se convierte en el método más eficaz.</li>
</ol>
<p>Más información sobre cómo y dónde se realizó la comparativa, así como más gráficas, en el artículo original: <a title="Cache a large array" href="http://techblog.procurios.nl/k/618/news/view/34972/14863/Cache-a-large-array-JSON-serialize-or-var_export.html" hreflang="en-US">Cache a large array JSON serialize or var_export</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/07/utilizar-json-serialize-o-var_export-para-cachear-arrays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google te ayuda a optimizar tu código PHP.</title>
		<link>http://blog.joanfernandez.es/2009/06/google-te-ayuda-a-optimizar-tu-codigo-php/</link>
		<comments>http://blog.joanfernandez.es/2009/06/google-te-ayuda-a-optimizar-tu-codigo-php/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 19:18:59 +0000</pubDate>
		<dc:creator>Joan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[optimización]]></category>

		<guid isPermaLink="false">http://blog.joanfernandez.es/?p=203</guid>
		<description><![CDATA[ACTUALIZADO.
En Baluart.net encontramos una recopilación de las correcciones que la comunidad de usuarios de PHP ha hecho al artículo publicado por Google que se comenta en esta entrada.
Es importante que leas el artículo, pues rebaten muchas de las afirmaciones con códigos de ejemplo y tiempos de ejecución. Así, sabrás realmente a qué acogerte a la [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>ACTUALIZADO.</strong></p>
<p>En <a title="Baluart.net" href="http://www.baluart.net/articulo/la-comunidad-de-php-responde-a-google-sobre-tips-de-optimizacion">Baluart.net</a> encontramos una recopilación de las <strong>correcciones que la comunidad de usuarios de PHP ha hecho al artículo publicado por Google</strong> que se comenta en esta entrada.</p>
<p><strong>Es importante que leas el artículo</strong>, pues rebaten muchas de las afirmaciones con códigos de ejemplo y tiempos de ejecución. Así, sabrás realmente a qué acogerte a la hora de programar.</p>
<p>Es curioso saber que los programadores de Google también se equivocan <img src='http://blog.joanfernandez.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
<p>Si hace un par de días comentabamos unos consejos para <a title="10 formas de optimizar javascript" hreflang="es-ES" href="http://blog.joanfernandez.es/2009/06/10-formas-de-optimizar-jquery/">optimizar javascript</a>, hoy le toca el turno a PHP.</p>
<p>De la mano de Google y su nueva sección <a title="Let's make the web faster - Google Code" rel="external" hreflang="en-US" href="http://code.google.com/intl/es/speed/">Let&#8217;s make the web faster</a>, encontramos <strong>PHP performance tips</strong>, una recopilación de consejos para programadores de PHP que nos ayudarán a mantener nuestros sitios más rápidos y optimizados.</p>
<p>Veamos algunos de los consejos que Eric Higgins, Webmaster de Google, nos ofrece:</p>
<h3>Mantén actualizada tu versión de PHP.</h3>
<p>¿Aún sigues utilizando PHP4? Las nuevas versiones de PHP están optimizadas para mejorar su rendimiento, por lo que deberías, al menos, dar el salto a PHP5. Hoy en día la mayoría de servicios de hosting ya ofrecen servidores con PHP5 instalado, para que puedas migrar tus páginas sin miedos.</p>
<h3>Utiliza la caché en tus sitios.</h3>
<p>Utilizando un modulo para cachear los resultados como <a title="Memcache para PHP" rel="external" hreflang="es-ES" href="http://es.php.net/memcache">Memcache</a>, o mediante un sistema de templates que lo soporte, como Smarty, podemos mejorar la velocidad de nuestras páginas cacheando los resultados de las consultas a la base de datos, o las páginas renderizadas.</p>
<h3>Utiliza el buffer de salida.</h3>
<p>PHP utiliza un buffer de salida para almacenar toda la información que tratamos de imprimir desde nuestros scripts. Este buffer puede disminuir el rendimiento de nuestras páginas, ya que no muestra la información al usuario hasta que no se llena.</p>
<p>Afortunadamente, podemos modificar el comportamiento del buffer para que muestre los datos más frecuentemente.</p>
<p><a title="Buffer de salida en PHP" rel="external" hreflang="es-ES" href="http://es2.php.net/manual/es/book.outcontrol.php">Más info sobre el buffer de salida de PHP</a>.</p>
<h3>Usa comillas simples para los strings.</h3>
<p>A la hora de delimitar un string, PHP permite hacerlo de dos formas diferentes; utilizando <em>&#8216;comillas simples&#8217;</em> o <em>&#8220;comillas dobles&#8221;</em>. Sin embargo, existen diferencias entre ambos métodos. Si utilizamos comillas dobles, PHP buscará variables dentro de la cadena, y si las encuentra, insertará su valor correspondiente. Esto puede significar una bajada de rendimiento, sobre todo si utilizamos strings sin variables dentro.</p>
<h3>Sustituye los print por echo.</h3>
<p>El rendimiento de la función <strong>echo</strong> es mayor que el de <strong>print.</strong> Además, la función echo puede recibir un número ilimitado de parámetros, por lo que no es necesario concatenar el string que le pasamos a la función. Es decir:</p>
<pre class="brush: php;">
$uno = 1;
$dos = 2;
$tres = 3;
// Típica concatenación para utilizar con echo
echo 'Vamos a contar hasta tres: ' . $uno . ' ' . $dos . ' y ' . $tres;

// Sin embargo, no necesitamos concatenar la cadena
// antes de pasarla a echo, puesto que esta función
// puede recibir el número de parámetros que
// deseemos
echo 'Vamos a contar hasta tres: ', $uno, ' ', $dos, ' y ', $tres;

// Y el resultado, en ambos casos será el mismo:
// &quot;Vamos a contar hasta tres: 1 2 y 3&quot;
</pre>
<p>En el ejemplo anterior el resultado es exactamente el mismo, y sin embargo evitamos la carga de tener que concatenar el string antes de pasar la cadena al buffer de salida.</p>
<p><a title="Optimizing PHP" rel="external" hreflang="es-ES" href="http://code.google.com/intl/es/speed/articles/optimizing-php.html">Leer el artículo completo en Google Code.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joanfernandez.es/2009/06/google-te-ayuda-a-optimizar-tu-codigo-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

