<?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>Salva G. Mendez &#187; PHP</title>
	<atom:link href="http://www.sgmendez.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sgmendez.com</link>
	<description>Blog de un webmaster</description>
	<lastBuildDate>Fri, 04 Jun 2010 22:51:11 +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>Evolución del uso de los lenguajes de programación</title>
		<link>http://www.sgmendez.com/2009/07/15/evolucion-del-uso-de-los-lenguajes-de-programacion/</link>
		<comments>http://www.sgmendez.com/2009/07/15/evolucion-del-uso-de-los-lenguajes-de-programacion/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 14:55:00 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=363</guid>
		<description><![CDATA[A través de Vaya Astracanada, me entero de que la comunidad de programadores de TIOBE ha publicado la actualización de su ranking de uso de los lenguajes de programación, y su evolución en los últimos años. A la cabeza se mantiene Java (20,4%), seguido bastante de cerca por C (17,3%). Por detrás y a bastante [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sgmendez.com/wp-content/upload/2009/07/grafico-lenguajes-programacion-ranking.png"><img class="alignright size-medium wp-image-364" title="grafico-lenguajes-programacion-ranking" src="http://www.sgmendez.com/wp-content/upload/2009/07/grafico-lenguajes-programacion-ranking-300x225.png" alt="grafico-lenguajes-programacion-ranking" width="300" height="225" /></a>A través de <a href="http://www.astracanada.net/2009/07/14/top-20-lenguajes-de-programacion-actualizado-a-julio-de-2009/" target="_blank">Vaya Astracanada</a>, me entero de que la comunidad de programadores de <a title="Ranking lenguajes de programacion" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">TIOBE </a>ha publicado la actualización de su ranking de uso de los lenguajes de programación, y su evolución en los últimos años. A la cabeza se mantiene Java (20,4%), seguido bastante de cerca por C (17,3%). Por detrás y a bastante distancia se encuentran en rangos similares C++ (10,4%), PHP (9,3%) y Visual Basic (7,8%). En el gráfico podemos apreciar un fuerte descenso de C++ a partir de 2005 y un estancamiento en la evolución ascendente que mantenía PHP hasta 2006.</p>
<p>Llamativa es la caida de Perl, que ahora mismo sitúa su popularidad por debajo de lenguajes como Python y C#, y con Javascript pisandole los talones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2009/07/15/evolucion-del-uso-de-los-lenguajes-de-programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los valores Booleanos en PHP</title>
		<link>http://www.sgmendez.com/2009/07/11/los-valores-booleanos-en-php/</link>
		<comments>http://www.sgmendez.com/2009/07/11/los-valores-booleanos-en-php/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 08:29:01 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[cadenas]]></category>
		<category><![CDATA[estructura]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[punto cero]]></category>
		<category><![CDATA[variables]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=360</guid>
		<description><![CDATA[La lógina Booleana es muy importante para las estructuras de flujo de control. Estos valores son utilizados para definir que conjunto de instruciones van a ser procesadas en función de la condición que se determine, en otras palabras ante una encrucijada que decisión se toma.
Dentro de la lógica Booleana, dos valores toman especial relevancia TRUE [...]]]></description>
			<content:encoded><![CDATA[<p>La lógina Booleana es muy importante para las estructuras de flujo de control. Estos valores son utilizados para definir que conjunto de instruciones van a ser procesadas en función de la condición que se determine, en otras palabras ante una encrucijada que decisión se toma.</p>
<p>Dentro de la lógica Booleana, dos valores toman especial relevancia TRUE y FASLSE (verdadero y falso). En PHP no es necesario convertir a estos valores determinados resultados para obtener el mismo efecto. Los siguientes valores serán tomados como el FALSE Booleano:</p>
<ul>
<li>[ 0 ] El entero cero.</li>
<li>[ 0.0 ] El número flotante cero punto cero.</li>
<li>[ " " ] Las cadenas vacias.</li>
<li>[ "0" ] La cadena cero.</li>
<li>[ array() ] Un array vacio.</li>
<li>[ object{} ] Un objeto vacío.</li>
<li>[ NULL ] El tipo especial null, incluyendo todas las variables no establecidas.</li>
</ul>
<p>Todos los demás valores serán considerados TRUE. Hay que tener en cuenta que la evaluación de una expresión como TRUE o FALSE dependerá del resultado y no de los valores que se comparan. Por ejemplo si establecemos <em>$a = 3</em> y <em>$b = 7</em>, ambas variables serán evaluadas como TRUE. Pero si preguntamos si $a es mayor que $b el resultado será FALSE.</p>
<p>También hay que tener en cuenta que cuando asignamos un valor Booleano a una variable (por ejemplo: <em>$var = false</em>) y la mostramos por pantalla veremos un valor numérico (en el ejemplo <em>echo $var</em> mostrará 0).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2009/07/11/los-valores-booleanos-en-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Frameworks PHP: Zend vs Symfony</title>
		<link>http://www.sgmendez.com/2009/05/09/frameworks-php-zend-vs-symfony/</link>
		<comments>http://www.sgmendez.com/2009/05/09/frameworks-php-zend-vs-symfony/#comments</comments>
		<pubDate>Sat, 09 May 2009 05:38:03 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=185</guid>
		<description><![CDATA[Cuando uno se plantea por primera vez el uso de un framework en PHP comienza a darle vueltas a las posibilidades que ofrecen unos y otros. Aunque la curva de aprendizaje en el uso de un framework es dura, todo el tiempo que le dediquemos a conocer a fondo aquel por el que nos decidamos [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando uno se plantea por primera vez el uso de un framework en PHP comienza a darle vueltas a las posibilidades que ofrecen unos y otros. Aunque la curva de aprendizaje en el uso de un framework es dura, todo el tiempo que le dediquemos a conocer a fondo aquel por el que nos decidamos será el tiempo mejor invertido en formarnos como desarrolladores.</p>
<p>En este caso quiero plantear una comparación entre dos de los frameworks más extendidos <a href="http://framework.zend.com/" target="_blank">Zend</a> y <a href="http://www.symfony-project.org/" target="_blank">Symfony</a>.</p>
<p><strong>Documentación y aprendizaje</strong>. Com he dicho la curva de aprendizaje para poder usar correctamente y con soltura un framework necesita de un esfuerzo, mucho más si llevamos años programando sin usarlo. Symfony dispone de guias y <a href="http://www.librosweb.es/symfony/index.html" target="_blank">manuales</a> en abundancia, y además cuenta con numerosos foros en varios idiomas donde la comundad va resolviendo dudas. En el caso de Zend, a pesar de ser el framework de la empresa que está detrás de PHP, la comunidad es algo escasa, por tanto su documentación también.</p>
<p><strong>Pruebas unitarias</strong>. Symfony dispone de tareas por linea de comandos para realizar testing, y además genera una clase vacia con cada nuevo controdalor desde el que poder realizar las pruebas. Zend no dispone de esta funcionalidad, algo que me parece muy importante a la hora de lanzar una aplicación a un entorno de producción.</p>
<p><strong>Plantillas y plugins</strong>. Al sistema de plantillas de Zend le queda todavía un largo camino que recorer, mientras que en Symfony el sistema está ya muy avanzado, con la posibilidad de agragar módulos. Y otro tanto ocurre con los plugins, en Symfony es posible aumentar sus funcionalidades a base de plugins, mientras que Zend carece de esta característica.</p>
<p><strong>Bases de datos</strong>. El trabajo con base de datos en Zend se limita a usar ActiveRecord (que no digo que esté mal), pero en Symfony tienes la posibilidad de usar el motor de base de datos que quieras, incluyendo el propio Zend_Db, algo que aporta una enorme flexibilidad al desarrollador que puede elegir en cada proyecto cual es la mejor opción.</p>
<p>Como conclusión a lo dicho quiero añadir, para todos aquellos que quieran dar el salto a hacer desarrollos basados en un framework, que a pesar de que al principio pueda resultar un poco engorroso con el tiempo os ayudará a mantener una limpieza de código y un mantenimiento de aplicaciones mucho más sencillo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2009/05/09/frameworks-php-zend-vs-symfony/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Todo controlado con xDebug</title>
		<link>http://www.sgmendez.com/2008/12/12/todo-controlado-con-xdebug/</link>
		<comments>http://www.sgmendez.com/2008/12/12/todo-controlado-con-xdebug/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 09:03:28 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[depurar]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[errores]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[xDebug]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=190</guid>
		<description><![CDATA[Hay algo que considero fundamental para todo programador: un depurador. Si desarrollas con PHP debes conocer xDebug, este depurador te permitirá hacer un control exhaustivo de los errores que se produzcan en nuestra aplicación.
Tienes toda la información relativa a la descarga e instalación en la página oficial de xDebug. Una vez instalado recuerda indicarle a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-255" style="border: 0pt none; margin-left: 10px; margin-right: 10px;" title="xdebug-logo" src="http://www.sgmendez.com/wp-content/upload/2008/12/xdebug-logo.png" alt="xdebug-logo" width="200" height="116" />Hay algo que considero fundamental para todo programador: un depurador. Si desarrollas con PHP debes conocer <a href="http://xdebug.org/index.php" target="_blank">xDebug</a>, este depurador te permitirá hacer un control exhaustivo de los errores que se produzcan en nuestra aplicación.</p>
<p>Tienes toda la información relativa a la <a href="http://xdebug.org/docs/" target="_blank">descarga e instalación</a> en la página oficial de xDebug. Una vez instalado recuerda indicarle a PHP, en el php.ini, la ruta donde se encuentra el paquete. También debes tener habilitado PHP para mostrar errores mediante la directiva <em><a href="http://es.php.net/manual/es/errorfunc.configuration.php#ini.display-errors" target="_blank">display_errors</a></em>.</p>
<p>Algunas funciones útiles:</p>
<p><strong>xdebug_memory_usage( )</strong>: Devuelve la cantidad de memoria usada por nuestro script. Antes de PHP 5.2.1, esta función sólo funcinará si PHP fue complilado con &#8211;enable-memory-limit.</p>
<p><strong>xdebug_time_index()</strong>: Devuelve el tiempo en segundos que ha tardado en ejecutarse el script.</p>
<p><strong>xdebug_peak_memory_usage()</strong>: Devuelve el pico máximo de memoria usuado por el script.</p>
<p>Otra de las características más salientables de xDebug es la integración con IDE&#8217;s, entre ellos Eclipse y Netbeans, lo que permite la depuración de las aplicaciones sin salir del entorno de trabajo.</p>
<p>La instalación de xDebug debe estar reservada únicamente al servidor de desarrollo, puesto que la cantidad de información que muestra xDebug puede ser utilizada por un atacante para encontrar puntos de ataque.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/12/12/todo-controlado-con-xdebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nueva versión estable PHP 5.2.8</title>
		<link>http://www.sgmendez.com/2008/12/10/nueva-version-estable-php-528/</link>
		<comments>http://www.sgmendez.com/2008/12/10/nueva-version-estable-php-528/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 06:35:02 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[lanzamientos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=241</guid>
		<description><![CDATA[El pasado 4 de diciembre veían la luz dos nuevas versiones de PHP, por un lado la versión estable 5.2.7 y por el otro la relase candidate 5.3.0alpha3. Y tres días más tarde se anunciaba el fallo de seguridad en la 5.2.7 que provocaba que aunque magic-quotes-gpc estuviese activado se mantubiese como desactivado.
La recomendación era [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-242" style="border: 0pt none;" title="php_snow" src="http://www.sgmendez.com/wp-content/upload/2008/12/php_snow.gif" alt="php_snow" width="120" height="64" />El pasado 4 de diciembre veían la luz dos nuevas versiones de PHP, por un lado la versión estable <a href="http://www.php.net/archive/2008.php#id2008-12-04-3" target="_blank">5.2.7</a> y por el otro la relase candidate <a href="http://www.php.net/archive/2008.php#id2008-12-04-2" target="_blank">5.3.0alpha3</a>. Y tres días más tarde <a href="http://www.php.net/archive/2008.php#id2008-12-07-1" target="_blank">se anunciaba el fallo</a> de seguridad en la 5.2.7 que provocaba que aunque magic-quotes-gpc estuviese activado se mantubiese como desactivado.</p>
<p>La <a href="http://www.desarrollosphp.com/2008/12/php-527-descartado/" target="_blank">recomendación era regresar a la versión 5.2.6</a>, a la espera de que fuese lanzado PHP 5.2.8, pues bién tan solo un día más tarde <a href="http://www.desarrollosphp.com/2008/12/lanzado-php-528/">ya estaba disponible 5.2.8 </a>con el fallo corregido. A aquellos que instalasen 5.2.7 se recomienda <a href="http://www.php.net/releases/5_2_8.php" target="_blank">actualizar a 5.2.8</a> para evitar cualquier problema de seguridad en ese sentido.</p>
<p>En cuanto a la RC <a href="http://www.php.net/archive/2008.php#id2008-12-04-2" target="_blank">PHP 5.3.0alpha3</a> trae consigo muchas novedades, entre ellas los <a href="http://php.net/language.namespaces" target="_blank">namespaces</a>, el cambio de compilador de gcc a cc, o un <a href="http://wiki.php.net/rfc/rounding" target="_blank">redondeo más preciso</a> al trabajar con decimales.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/12/10/nueva-version-estable-php-528/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Soporte para Symfony en Netbeans 7.0</title>
		<link>http://www.sgmendez.com/2008/11/18/soporte-para-symfony-en-netbeans-70/</link>
		<comments>http://www.sgmendez.com/2008/11/18/soporte-para-symfony-en-netbeans-70/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:47:36 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=216</guid>
		<description><![CDATA[Ya es oficial, Netbeans 7.0 contará con soporte para Symfony, después de que la votación recibiese 469 votos a favor del soporte de este framework de PHP en la próxima versión de Netbeans.
Una gran decisión por parte de Netbeans incluir soporte para uno de los mejores frameworks de PHP he probado hasta la fecha. Y [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-217" title="nb-logo2" src="http://www.sgmendez.com/wp-content/upload/2008/11/nb-logo2.gif" alt="" width="159" height="60" />Ya es oficial, <a href="http://www.netbeans.org/issues/show_bug.cgi?id=145913#desc30" target="_blank">Netbeans 7.0 contará con soporte para Symfony</a>, después de que la votación recibiese 469 votos a favor del <a href="http://www.symfony.es/2008/11/14/mision-cumplida-symfony-estara-en-netbeans-70/" target="_blank">soporte de este framework de PHP</a> en la próxima versión de <a href="http://www.netbeans.org/" target="_blank">Netbeans</a>.</p>
<p>Una gran decisión por parte de Netbeans incluir soporte para uno de los mejores frameworks de PHP he probado hasta la fecha. Y espero que siga mejorando, para finales de este año se espera que esté lista la versión 1.2 de Symfony, de momento ya esta disponible la beta 2 para probar sus nuevas funcionalidades.</p>
<p>Aunque personalmente prefiero usar <a href="http://www.eclipse.org/pdt/">Eclipse con PDT</a> como IDE para el desarrollo en PHP (tengo que recordar probar <a href="http://noy.cc/symfoclipse/index.html" target="_blank">este plugin para Simfony</a>), es una gran noticia que Netbeans tenga soporte Symfony, esto ayudará a que más gente se anime a usar el framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/11/18/soporte-para-symfony-en-netbeans-70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Etiquetas de PHP</title>
		<link>http://www.sgmendez.com/2008/09/24/etiquetas-de-php/</link>
		<comments>http://www.sgmendez.com/2008/09/24/etiquetas-de-php/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 21:35:10 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[etiquetas]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=91</guid>
		<description><![CDATA[Cualquier programa escrito en PHP debe estar contenido entre unas etiquetas determinadas. Hay cuatro tipos de etiquetas que indican bloques de código PHP:
&#60;?php &#8230; ?&#62;
&#60;script language=&#8221;php&#8221;&#62; &#8230; &#60;/script&#62;
&#60;? &#8230; ?&#62; &#60;?= &#8230; ?&#62;
&#60;% &#8230; %&#62; &#60;%= &#8230; %&#62;
Las dos primeras están siempre disponibles, en cualquier sevidor donde esté instalado el interprete de PHP. El tercer [...]]]></description>
			<content:encoded><![CDATA[<p>Cualquier programa escrito en PHP debe estar contenido entre unas etiquetas determinadas. Hay cuatro tipos de etiquetas que indican bloques de código PHP:</p>
<blockquote><p>&lt;?php &#8230; ?&gt;</p>
<p>&lt;script language=&#8221;php&#8221;&gt; &#8230; &lt;/script&gt;</p>
<p>&lt;? &#8230; ?&gt; &lt;?= &#8230; ?&gt;</p>
<p>&lt;% &#8230; %&gt; &lt;%= &#8230; %&gt;</p></blockquote>
<p>Las dos primeras están siempre disponibles, en cualquier sevidor donde esté instalado el interprete de PHP. El tercer grupo son las etiquetas abreviadas de PHP, solo están disponibles si está habilitado el parámetro <em>short-open-tags</em> (valor on) en el php.ini, lo mismo ocurre con las etiquetas de ASP (parámetro del php.ini asp_tags).</p>
<p>Aunque es posible su uso, se desaconseja usar las etiquetas cortas, puesto que si queremos usar XML ese es el formato con el que identifican los archivos XML. Lo más recomendable es usar la primera etiqueta, hará nuestros programas mucho más portables y nos ahorrará quebraderos de cabeza.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/09/24/etiquetas-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primera PHP Barcelona Workshop</title>
		<link>http://www.sgmendez.com/2008/05/31/primera-php-barcelona-workshop/</link>
		<comments>http://www.sgmendez.com/2008/05/31/primera-php-barcelona-workshop/#comments</comments>
		<pubDate>Sat, 31 May 2008 10:06:46 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[Webs]]></category>
		<category><![CDATA[Barcelona]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[talleres]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=73</guid>
		<description><![CDATA[
Para el próximo 7 de junio de 2008, el grupo de programadores PHP de Barcelona han organizado la primera PHP Barcelona Workshop.Tal  y como comentan ellos mismos tras la pasada Barcelona PHP Conference se habían quedado con ganas de algo más práctico y han organizado este conjunto de talleres de PHP.
Los talleres estarán dedicados [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sgmendez.com/wp-content/upload/2008/05/barcelonaphpworkshop001-300x155.png" alt="" title="barcelonaphpworkshop001" width="300" height="155" class="aligncenter size-medium wp-image-74" /></p>
<p>Para el próximo 7 de junio de 2008, el grupo de programadores PHP de Barcelona han organizado la <a href="http://phpbarcelona.org/eventos/primera-barcelona-php-workshop" target='_blank'>primera PHP Barcelona Workshop</a>.Tal  y como comentan ellos mismos tras la pasada <a href="http://phpbarcelona.org/eventos/primera-barcelona-php-conference" target='_blank'>Barcelona PHP Conference</a> se habían quedado con ganas de algo más práctico y han organizado este conjunto de talleres de PHP.<br />
Los <a href="http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/" target='_blank'>talleres estarán dedicados</a> a: </p>
<ul>
<li>Construir una pequeña red social con Symfony</li>
<li>Trabajar con motores de workflow</li>
<li>internacionalización de proyectos PHP</li>
<li>VIM como IDE para PHP</li>
<li>Modernizar páginas con AJAX</li>
<li>Seguridad y Site-Cross-Scripting (XSS)</li>
</ul>
<p>Desde la organización del evento se recomienda llevar un portatil con conexión wifi, soporte FTP, SMB o NFS, editor de código PHP, cliente SSH, cliente MySQL y navegador web.<br />
La PHP Barcelona Workshop se celebrará en el <a href="http://javiercasares.com/2007/09/22/citilab/" target='_blank'>Citilab de Cornellá</a> y el aforo es de 200 personas. El precio de la asistencia es de 5 € por persona, un coste totalmente simbolico si tenemos en cuenta que se incluye la asistencia y comida.<br />
El próximo sábado, entre las 9:30 y las 20:00 estaré completamente dedicado a PHP asistiendo a los talleres. A pesar de ser un evento totalmente recomendable, tengo una pequeña pega, por la mañana es necesario decidir a que taller queremos asistir entre dos propuestas, y a mi personalmente me gustaría asistir a ambas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/05/31/primera-php-barcelona-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar eAccelerator</title>
		<link>http://www.sgmendez.com/2008/05/27/instalar-eaccelerator/</link>
		<comments>http://www.sgmendez.com/2008/05/27/instalar-eaccelerator/#comments</comments>
		<pubDate>Tue, 27 May 2008 06:09:56 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[Webs]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Eaccelerator]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php.ini]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=59</guid>
		<description><![CDATA[Una de las formas de mejorar el rendimiento de un servidor con p&#225;ginas web en PHP es la instalaci&#243;n de un sistema cache como m&#243;dulo del int&#233;rprete de PHP instalado en el servidor. El uso de estos sistemas puede mejorar el rendimiento del servidor entre un 20% y un 50%. Entre los sistemas m&#225;s populares [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las formas de mejorar el rendimiento de un servidor con p&aacute;ginas web en PHP es la instalaci&oacute;n de un sistema cache como m&oacute;dulo del int&eacute;rprete de PHP instalado en el servidor. El uso de estos sistemas puede mejorar el rendimiento del servidor entre un 20% y un 50%. Entre los sistemas m&aacute;s populares que podemos encontrar se encuentran <a href="javascript:void(0);/*1211300697392*/">Zend Optimizer</a>, <a href="javascript:void(0);/*1211300731495*/">IonCube</a> o <a href="javascript:void(0);/*1211300755165*/">eAccelerator</a>.<br/><br />
Vamos a centrarnos en &eacute;ste &uacute;ltimo y veremos como instalarlo paso a paso sobre un servidor Linux desde los fuentes. Para poder compilar correctamente eAccelerator debes tener instalado phpize, en <a href="javascript:void(0);/*1211299283988*/">Fedora </a>puedes obtenerlo usando <span style="font-weight: bold;">yum install php-devel</span>, en <a href="javascript:void(0);/*1211299311109*/">Debian </a><span style="font-weight: bold;">apt-get install php-dev</span>.<br/><br />
Lo primero es descargar el paguete correspondiente a la <a href="javascript:void(0);/*1211284112596*/">&uacute;ltima versi&oacute;n de eAccelerator</a> (en este caso la <span style="font-weight: bold;">0.9.5.3</span>). Podemos elegir descargarlo en .tar.bz2 o .zip, usaremos el .tar.bz2 y lo descargamos, descomprimimos y entramos en el directorio:<br/></p>
<blockquote><p>wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2<br/><br />
tar jvxf eaccelerator-0.9.5.3.tar.bz2<br/><br />
cd eaccelerator-0.9.5.3</p></blockquote>
<p><br/><br />
Una vez dentro del directorio, vamos a empezar a compilar los fuentes. Si s&oacute;lo tienes un int&eacute;rprete de PHP instalado (suele ser lo m&aacute;s habitual) puedes ejecutar:<br/></p>
<blockquote><p>phpize<br/><br />
./configure<br/><br />
make</p></blockquote>
<p><br/><br />
En caso de tener m&aacute;s de una instalaci&oacute;n deber&aacute;s indicar donde se encuentra la que quieres usar. Sustituye la ruta en la primera l&iacute;nea (/usr/php) por aquella donde tengas instalado PHP:<br/></p>
<blockquote><p>PHP_PREFIX=&quot;/usr/php&quot;<br/><br />
$PHP_PREFIX/bin/phpize<br/><br />
./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=$PHP_PREFIX/bin/php-config<br/><br />
make</p></blockquote>
<p><br/><br />
Realizado esto ya tenemos el m&oacute;dulo preparado para su instalaci&oacute;n, ejecutamos:<br/><br />
make install<br/><br />
Una vez terminada la instalaci&oacute;n se nos mostrar&aacute; la ruta donde se ha copiado el m&oacute;dulo del eAccelerator que debemos configurar en el php.ini, si todo ha ido bien debes tener algo como esto:<br/></p>
<blockquote><p>Installing shared extensions:&nbsp;&nbsp;&nbsp; /usr/lib/php/modules/20080501/</p></blockquote>
<p><br/><br />
Ahora debemos indicar en el php.ini nuestro nuevo m&oacute;dulo para que sea cargado con el int&eacute;rprete. Abrimos el php.ini, si no sabes donde est&aacute; localizado ejecuta <span style="font-weight: bold;">phpinfo()</span>. Editamos el archivo y buscamos una secci&oacute;n llamada &quot;Dynamic Extensions&quot;. Buscamos una directiva llamada <span style="font-weight: bold;">extension_dir</span> y la definimos con la ruta donde guardamos las extensiones:<br/></p>
<blockquote><p>extension_dir = &quot;/usr/php/modulos/&quot;</p></blockquote>
<p><br/><br />
A continuaci&oacute;n agregamos las siguientes l&iacute;neas que incluyen el nombre del m&oacute;dulo y su configuraci&oacute;n:<br/></p>
<blockquote><p>extension=&quot;eaccelerator.so&quot;<br/><br />
eaccelerator.shm_size=&quot;16&quot;<br/><br />
eaccelerator.cache_dir=&quot;/tmp/eaccelerator&quot;<br/><br />
eaccelerator.enable=&quot;1&quot;<br/><br />
eaccelerator.optimizer=&quot;1&quot;<br/><br />
eaccelerator.check_mtime=&quot;1&quot;<br/><br />
eaccelerator.debug=&quot;0&quot;<br/><br />
eaccelerator.filter=&quot;&quot;<br/><br />
eaccelerator.shm_max=&quot;0&quot;<br/><br />
eaccelerator.shm_ttl=&quot;0&quot;<br/><br />
eaccelerator.shm_prune_period=&quot;0&quot;<br/><br />
eaccelerator.shm_only=&quot;0&quot;<br/><br />
eaccelerator.compress=&quot;1&quot;<br/><br />
eaccelerator.compress_level=&quot;9&quot;</p></blockquote>
<p><br/><br />
Guardamos el php.ini y ahora debemos crear el directorio temporal que usar&aacute; eAccelerator, definido en la configuraci&oacute;n que acabamos de agregar al php.ini como eaccelerator.cache, este directorio debe tener permisos de escritura:<br/></p>
<blockquote><p>mkdir /tmp/eaccelerator/<br/><br />
chmod 777 /tmp/eaccelerator/</p></blockquote>
<p><br/><br />
Termidamo esto ya tenemos eAccelerator intalado en nuestro servidor. S&oacute;lo falta reiniciar apache para que la nueva configuraci&oacute;n tenga efecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/05/27/instalar-eaccelerator/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Calcular el tiempo de carga de una página en PHP</title>
		<link>http://www.sgmendez.com/2008/05/20/calcular-el-tiempo-de-carga-de-una-pagina-en-php/</link>
		<comments>http://www.sgmendez.com/2008/05/20/calcular-el-tiempo-de-carga-de-una-pagina-en-php/#comments</comments>
		<pubDate>Tue, 20 May 2008 08:37:25 +0000</pubDate>
		<dc:creator>Salva Mendez</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[Webs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tiempo carga]]></category>

		<guid isPermaLink="false">http://www.sgmendez.com/?p=58</guid>
		<description><![CDATA[Es posible que deseemos conocer el tiempo de carga de una página en PHP, entre otras cosas por saber si está tardando demasiado tiempo en mostrarse al usuario, una de las reazones más frecuentes para que el usuario abandone la web y busque el resultado en otro sitio.
Al principio del documento debemos calcular el tiempo [...]]]></description>
			<content:encoded><![CDATA[<p>Es posible que deseemos conocer el tiempo de carga de una página en PHP, entre otras cosas por saber si está tardando demasiado tiempo en mostrarse al usuario, una de las reazones más frecuentes para que el usuario abandone la web y busque el resultado en otro sitio.<br/><br />
Al principio del documento debemos calcular el tiempo en el momento que comienza a cargarse la página, para ello colocamos el siguiente código:<br/></p>
<blockquote><p>&lt;?php<br/> // Inicio del documento<br/> // Calculamos segundos y microsegundos desde Epoch Unix<br/> $tiempo = microtime();<br/> // Separamos en un array el tiempo en segundos y en microsegundos<br/> $tiempo = explode(&#8221; &#8220;,$tiempo);<br/> // Sumamos segundos y microsegundos<br/> $tiempo_inicial = $tiempo[0] + $tiempo[1];<br/> ?&gt;</p>
</blockquote>
<p>Al final de la página, volvemos a calcular el tiempo en ese momento y calculamos la diferencia entre ambos, imprimiendo el resultado por pantalla.<br/></p>
<blockquote><p>&lt;?php<br/> // Fin del documento<br/> $tiempo = microtime();<br/> $tiempo = explode(&#8221; &#8220;,$tiempo);<br /> // Calculamos en tiempo al final del documento<br/> $tiempo_final = $tiempo[0] + $tiempo[1];<br/> // Calculamos en tiempo de carga<br/> $tiempo_carga = $tiempo_final &#8211; $tiempo_inicial;<br/> // Redondeamos el valor del flotante a tres decimales<br/> $tiempo_carga = round($tiempo_carga,3);<br/> echo &#8220;Pagina generada en {$tiempo_carga} segundos&#8221;;<br/> ?&gt;</p>
</blockquote>
<p>Con esto ya tendríamos calculado el tiempo de carga de una página en PHP. Esto puede ser de gran utilidad para generar tiempos de carga y enviar el resultado a un log o hacer que nos envíe un correo si se supera un determinado tiempo de carga.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgmendez.com/2008/05/20/calcular-el-tiempo-de-carga-de-una-pagina-en-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
