<?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>PHPBSD.net &#187; programación</title>
	<atom:link href="http://www.phpbsd.net/tag/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpbsd.net</link>
	<description>Blogueando sobre PHP, BSD, SEO, AJAX, Seguridad, Rendimiento... y mucho más</description>
	<lastBuildDate>Thu, 07 Oct 2010 11:57:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP Barcelona Conference 2010</title>
		<link>http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/</link>
		<comments>http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 11:51:18 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[conferencias]]></category>
		<category><![CDATA[grupo-programadores]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=203</guid>
		<description><![CDATA[El grupo de programadores PHPBarcelona se complace en anunciar que los próximos 29 y 30 de Octubre se celebrará la cuarta edición de la PHP Barcelona Conference, un evento que poco a poco se ha ido consolidando en el calendario internacional de conferencias dedicadas al PHP y que por su reducido precio y alta calidad [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/' rel='bookmark' title='Permanent Link: Conferencia internacional de PHP en Barcelona'>Conferencia internacional de PHP en Barcelona</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>El grupo de programadores <a target="_blank" href="http://phpbarcelona.org/" title="PHPBarcelona.org | Grupo de programadores PHP de Barcelona">PHPBarcelona</a> se complace en anunciar que los próximos 29 y 30 de Octubre se celebrará la cuarta edición de la <a title="PHP Barcelona Conference 2010" href="http://phpconference.es/" target="_blank">PHP Barcelona Conference</a>, un evento que poco a poco se ha ido consolidando en el calendario internacional de conferencias dedicadas al PHP y que por su reducido precio y alta calidad de los contenidos representa una oportunidad única, más si vives en España.</p>
<p>La conferencia tendrá lugar en el Citilab (Barcelona) y contaremos con la presencia de <strong>Ilia Alshanetsky</strong>, <strong>Fabien Potencier</strong>, <strong>Stefan Priebsch</strong>, <strong>Lorenzo Alberton</strong>, <strong>Enrico Zimuel</strong>, entre muchos otros, que nos expondrán temas de los más variados mezclando ponencias teóricas con algunos talleres prácticos, todo acompañado de mucho networking, concursos, regalos, catering, etc. y, por supuesto, elePHPants para &#8220;casi&#8221; todos :) incluso contaremos con una prueba de certificación Zend en vivo para el que se anime.</p>
<p>Como cada año la PHP Barcelona Conference representa una oportunidad única para conocer auténticos gurus del mundillo PHP y lo más importante: pasarse dos días enteros aprendiendo mucho entre presentaciones, talleres y concursos y haciendo networking del bueno, no sólo con las celebridades invitadas y los demás asistentes, si no también con algunas de las principales empresas involucradas con el PHP de España y del resto del mundo.</p>
<p>A parte del inestimable trabajo de los miembros del grupo PHPBarcelona y su junta directiva, por supuesto contamos con la ayuda de nuestros queridos patrocinadores, empresas como <strong>Oracle</strong>, <strong>Zend</strong>, <strong>Atrapalo</strong>, <strong>Softonic</strong>, <strong>eMagister</strong>, <strong>Privalia</strong>, <strong>Microsoft</strong>, <strong>Tuenti</strong>, <strong>ServerGrove</strong>, <strong>D-Unlock</strong> u <strong>O&#8217;reilly</strong>, que desde un primer momento han apostado por nosotros y sin las que todo esto no sería posible.</p>
<p>Consulta la <a title="Schedule | PHP Barcelona Conference 2010" href="http://phpconference.es/php-barcelona-conference-2010/schedule/" target="_blank">agenda del evento</a> para ver en qué consistirá esta fiesta dedicada al PHP y regístrate por un precio muy reducido para una conferencia de estas características, tan sólo 60€ (o 30€ para un día).</p>
<p>Puedes encontrar información detallada acerca de la conferencia y lo necesario para registrarte en la web del evento: <a title="PHP Barcelona Conference 2010" href="http://phpconference.es/" target="_blank">http://phpconference.es</a></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/' rel='bookmark' title='Permanent Link: Conferencia internacional de PHP en Barcelona'>Conferencia internacional de PHP en Barcelona</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interesantes usos y alternativas de __toString() en PHP 5.x</title>
		<link>http://www.phpbsd.net/2009/04/02/interesantes-usos-y-alternativas-de-__tostring-en-php-5x/</link>
		<comments>http://www.phpbsd.net/2009/04/02/interesantes-usos-y-alternativas-de-__tostring-en-php-5x/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 23:50:19 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[tostring]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=143</guid>
		<description><![CDATA[Desde la llegada de PHP 5.0 disponemos de varios métodos mágicos para nuestras clases PHP, entre ellos tenemos __toString() que nos permite codificar cómo queremos que se comporte una clase cuando una instancia de ella se convierte a un string.
Aunque a simple vista el método __toString() pueda parecer poco importante en PHP éste toma mucha [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/13/un-error-handler-que-lance-exceptions-en-php/' rel='bookmark' title='Permanent Link: Un error handler que lance exceptions en PHP'>Un error handler que lance exceptions en PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/11/urls-limpias-y-amigables-con-php-y-apache/' rel='bookmark' title='Permanent Link: URLs limpias y amigables con PHP y Apache'>URLs limpias y amigables con PHP y Apache</a></li><li><a href='http://www.phpbsd.net/2007/04/25/carga-automatica-de-clases-en-php-con-autoload/' rel='bookmark' title='Permanent Link: Carga automática de clases en PHP con autoload'>Carga automática de clases en PHP con autoload</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Desde la llegada de PHP 5.0 disponemos de varios <strong>métodos mágicos</strong> para nuestras clases PHP, entre ellos tenemos <a target="_blank" title="PHP: Magic Methods - Manual" href="http://www.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.tostring">__toString()</a> que nos permite codificar cómo queremos que se comporte una clase cuando una instancia de ella se convierte a un string.</p>
<p>Aunque a simple vista el método <em>__toString()</em> pueda parecer poco importante en PHP éste toma mucha relevancia si trabajamos con <a target="_blank" title="symfony | Web PHP Framework" href="http://www.symfony-project.org/">symfony</a> o algún otro <strong>framework orientado a objetos</strong> donde la información de la base datos se encuentra mapeada en un modelo de objetos.</p>
<p>A pesar de que <em>__toString()</em> está disponible desde la versión 5.0.0 del PHP en mi opinión <strong>no empieza a ser realmente útil hasta la versión 5.2.0</strong>, algo que en el <a target="_blank" title="PHP: PHP 5 ChangeLog" href="http://www.php.net/ChangeLog-5.php#5.2.0">changelog del PHP</a> reflejaron con un tímido:</p>
<blockquote><p>Changed __toString() to be called wherever applicable. (Marcus)</p></blockquote>
<p>Hasta entonces <em>__toString()</em> sólo se llamaba cuando se usaba <em>echo()</em> o <em>print()</em> lo que limitaba mucho su funcionalidad. Desde la versión 5.2.0 <em>__toString()</em> se llama siempre que tratemos a un objeto como a un string.</p>
<p>Por ejemplo dada la siguiente definición de clase:</p>
<div class="syntax_hilite">
<div id="php-6">
<div class="php"><span style="color:#000000; font-weight:bold;">class</span> User extends BaseUser<br />
<span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; public <span style="color:#000000; font-weight:bold;">function</span> __toString<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">getName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Hasta PHP 5.2.0 sólo podíamos invocar a <em>__toString()</em> con:</p>
<div class="syntax_hilite">
<div id="php-7">
<div class="php"><span style="color:#0000FF;">$user</span> = <span style="color:#000000; font-weight:bold;">new</span> User<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$user</span>;<br />
<a href="http://www.php.net/print"><span style="color:#000066;">print</span></a> <span style="color:#0000FF;">$user</span>;</div>
</div>
</div>
<p></p>
<p>Desde la versión 5.2.0 podemos hacer varias cosas interesantes con <em>__toString()</em> sobretodo relacionadas con el manejo de arrays de objetos, algo muy frecuente en los frameworks que corren por ahí hoy en día.</p>
<p>Por ejemplo si obtenemos el típico array de objetos con symfony:</p>
<div class="syntax_hilite">
<div id="php-8">
<div class="php"><span style="color:#0000FF;">$users</span> = UserPeer::<span style="color:#006600;">doSelect</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#000000; font-weight:bold;">new</span> Criteria<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Trabajando directamente con las funciones de PHP entre otras muchas cosas podemos:</p>
<ul>
<li>Ordenar el array de objetos con un simple <em>sort()</em></li>
<li>Eliminar objetos duplicados del array con un <em>array_unique()</em></li>
<li>Generar una lista separada por comas para la presentación con un <em>implode()</em></li>
<li>Buscar un objeto determinado dentro del array con <em>array_search()</em></li>
</ul>
<h4>Alternativas a __toString()</h4>
<p>Si no tenemos la suerte de trabajar con PHP 5.2.x, o si queremos poder trabajar con un método distinto de <em>__toString()</em> para determinadas operaciones con arrays de objetos, podemos usar un código parecido al que propongo a continuación:</p>
<div class="syntax_hilite">
<div id="php-9">
<div class="php"><span style="color:#000000; font-weight:bold;">class</span> objectTools<br />
<span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; protected <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> getMethodValues<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$items</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$key</span> =&gt; <span style="color:#0000FF;">$obj</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$items</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#0000FF;">$key</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0000FF;">$obj</span>-&gt;<span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$items</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; protected <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> getObjectList<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span>, <span style="color:#0000FF;">$list</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$ret</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$key</span> =&gt; <span style="color:#0000FF;">$item</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$ret</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0000FF;">$list</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#0000FF;">$key</span><span style="color:#006600; font-weight:bold;">&#93;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$ret</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; public <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> arraySortByMethod<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span>, <span style="color:#0000FF;">$sort</span>=<span style="color:#FF0000;">'desc'</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$items</span> = self::<span style="color:#006600;">getMethodValues</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <a href="http://www.php.net/asort"><span style="color:#000066;">asort</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$sort</span>==<span style="color:#FF0000;">'desc'</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/array_values"><span style="color:#000066;">array_values</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/array_reverse"><span style="color:#000066;">array_reverse</span></a><span style="color:#006600; font-weight:bold;">&#40;</span>self::<span style="color:#006600;">getObjectList</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span>, <span style="color:#0000FF;">$list</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> self::<span style="color:#006600;">getObjectList</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span>, <span style="color:#0000FF;">$list</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; public <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> arrayUniqueByMethod<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$items</span> = self::<span style="color:#006600;">getMethodValues</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> self::<span style="color:#006600;">getObjectList</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/array_unique"><span style="color:#000066;">array_unique</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$items</span><span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#0000FF;">$list</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; public <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> arrayImplodeByMethod<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span>, <span style="color:#0000FF;">$sep</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$items</span> = self::<span style="color:#006600;">getMethodValues</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/implode"><span style="color:#000066;">implode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$sep</span>, <span style="color:#0000FF;">$items</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; public <a href="http://www.php.net/static"><span style="color:#000066;">static</span></a> <span style="color:#000000; font-weight:bold;">function</span> arraySearchByMethod<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span>, <span style="color:#0000FF;">$needle</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color:#0000FF;">$items</span> = self::<span style="color:#006600;">getMethodValues</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$list</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/array_search"><span style="color:#000066;">array_search</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$needle</span>, <span style="color:#0000FF;">$items</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Lo anterior es más una propuesta de código que algo decente para ser distribuido. Simplemente se trata de trabajar con un array temporal para almacenar los valores del método solicitado, correr la función PHP y, si es necesario, volver a construir el array de objetos.</p>
<p>Algunos ejemplos de uso:</p>
<div class="syntax_hilite">
<div id="php-10">
<div class="php"><span style="color:#0000FF;">$ordenados</span> = objectTools::<span style="color:#006600;">arraySortByMethod</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$users</span>, <span style="color:#FF0000;">'getName'</span>, <span style="color:#FF0000;">'asc'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$sin_duplicados</span> = objectTools::<span style="color:#006600;">arrayUniqueByMethod</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$users</span>, <span style="color:#FF0000;">'getName'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$pos</span> = objectTools::<span style="color:#006600;">arraySearchByMethod</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$users</span>, <span style="color:#FF0000;">'getName'</span>, <span style="color:#FF0000;">'oriol'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#FF9933; font-style:italic;">//y por último en una plantilla...</span><br />
<a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#FF0000;">'Usuarios: '</span> . objectTools::<span style="color:#006600;">arrayImplodeByMethod</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$users</span>, <span style="color:#FF0000;">'getName'</span>, <span style="color:#FF0000;">', '</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Fácilmente se pueden añadir tantos métodos de tratamiento de arrays como se necesiten... o mucho mejor hacer un método que simplemente reciba como variable la función PHP a ejecutar. En mi caso de momento sólo necesito estos en concreto y también así los puedo controlar individualmente.</p>
<p>Aunque estos métodos de <strong>objectTools</strong> nacieron como "parche" rápido dado que no tenía PHP 5.2.x para un proyecto symfony, ahora, una vez solventando el problema con los servidores, los sigo encontrando útiles en múltiples situaciones. Por supuesto se ha de tener presente el poco rendimiento de este código frente a realizar queries a medida usando el objeto Criteria, pero si ya tenemos un array de objetos en memoria sí que será más óptimo trabajar con él en lugar de lanzar varias queries contra la base de datos.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/13/un-error-handler-que-lance-exceptions-en-php/' rel='bookmark' title='Permanent Link: Un error handler que lance exceptions en PHP'>Un error handler que lance exceptions en PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/11/urls-limpias-y-amigables-con-php-y-apache/' rel='bookmark' title='Permanent Link: URLs limpias y amigables con PHP y Apache'>URLs limpias y amigables con PHP y Apache</a></li><li><a href='http://www.phpbsd.net/2007/04/25/carga-automatica-de-clases-en-php-con-autoload/' rel='bookmark' title='Permanent Link: Carga automática de clases en PHP con autoload'>Carga automática de clases en PHP con autoload</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/04/02/interesantes-usos-y-alternativas-de-__tostring-en-php-5x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nueva edición de la PHP UK Conference</title>
		<link>http://www.phpbsd.net/2009/02/25/nueva-edicion-de-la-php-uk-conference/</link>
		<comments>http://www.phpbsd.net/2009/02/25/nueva-edicion-de-la-php-uk-conference/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 23:43:03 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[conferencias]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phplondon]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=123</guid>
		<description><![CDATA[Este Viernes 27 de Febrero nuestros amigos de phpLondon organizan su conferencia anual de PHP, la PHP UK Conference 2009, sin duda una de las conferencias de PHP con más renombre y una de las que cae relativamente cerca (si vives en España).
Este año pinta realmente interesante con presentaciones muy variadas, puedes revisar la agenda [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li><li><a href='http://www.phpbsd.net/2006/09/11/falta-poco-para-la-international-php-conference-2006/' rel='bookmark' title='Permanent Link: Falta poco para la International PHP Conference 2006'>Falta poco para la International PHP Conference 2006</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Este Viernes 27 de Febrero nuestros amigos de <a title="PHP London" target="_blank" href="http://www.phplondon.org/">phpLondon</a> organizan su conferencia anual de PHP, la <a title="PHP UK Conference 2009 | Friday 27th February - Olympia Conference Centre, London" target="_blank" href="http://www.phpconference.co.uk/">PHP UK Conference 2009</a>, sin duda una de las conferencias de PHP con más renombre y una de las que cae relativamente cerca (si vives en España).</p>
<p>Este año pinta realmente interesante con presentaciones muy variadas, puedes revisar la agenda completa en la web del evento. Entre otros temas se hablará sobre como vivir (o sobrevivir) con los frameworks PHP, mitos sobre symfony, un poco de REST, Flex y AIR, Drizzle, PHP 5.3 y 6.0 (namespaces, funciones lambda, etc.)...  incluso uno de Microsoft nos "intentará" descubrir Windows como servidor para aplicaciones PHP (esto no me lo pierdo).</p>
<p>Aunque entre viaje, estancia y entrada asistir tiene un coste considerable es una pequeña aventura PHP que merece la pena. Como siempre en este tipo de eventos a parte de los nuevos conocimientos que se puedan adquirir se ha de valorar la posibilidad de networking con un buen número de gurus en la materia.</p>
<p>PS: y si el presupuesto no te lo permite (o en tu empresa no quieren pagártelo) siempre puedes esperar a la siguiente edición de la <a title="PHP Barcelona Conference" target="_blank" href="http://phpconference.es/">PHP Barcelona Conference</a> :)</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li><li><a href='http://www.phpbsd.net/2006/09/11/falta-poco-para-la-international-php-conference-2006/' rel='bookmark' title='Permanent Link: Falta poco para la International PHP Conference 2006'>Falta poco para la International PHP Conference 2006</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/02/25/nueva-edicion-de-la-php-uk-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualizar un WordPress a la última versión</title>
		<link>http://www.phpbsd.net/2009/02/21/actualizar-un-wordpress-a-la-ultima-version/</link>
		<comments>http://www.phpbsd.net/2009/02/21/actualizar-un-wordpress-a-la-ultima-version/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 14:26:57 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=99</guid>
		<description><![CDATA[Es un procedimiento muy sencillo que está perfectamente detallado en la documentación de WordPress aunque quizás faltan un par de puntos por explicar un poco mejor.
Si nuestra intención es hacer borrón y cuenta nueva con nuestro blog eliminando todos los archivos pero conservando la base de datos los pasos a seguir son los siguientes:
[1] Como [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/07/internacionalizacion-de-temas-en-wordpress-usando-gettext/' rel='bookmark' title='Permanent Link: Internacionalización de temas en WordPress usando gettext'>Internacionalización de temas en WordPress usando gettext</a></li><li><a href='http://www.phpbsd.net/2007/10/09/titulos-un-poco-mas-seo-y-en-espanol-para-wordpress/' rel='bookmark' title='Permanent Link: Títulos un poco más SEO y en español para WordPress'>Títulos un poco más SEO y en español para WordPress</a></li><li><a href='http://www.phpbsd.net/2009/04/10/wordpress-con-el-feedburner-de-google-y-su-maldito-proxy/' rel='bookmark' title='Permanent Link: WordPress con el FeedBurner de Google y su maldito proxy'>WordPress con el FeedBurner de Google y su maldito proxy</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Es un procedimiento muy sencillo que está perfectamente detallado en la <a target="_blank" title="Upgrading WordPress Extended &laquo; WordPress Codex" href="http://codex.wordpress.org/Upgrading_WordPress_Extended">documentación de WordPress</a> aunque quizás faltan un par de puntos por explicar un poco mejor.</p>
<p>Si nuestra intención es hacer <strong>borrón y cuenta nueva con nuestro blog</strong> eliminando todos los archivos pero conservando la base de datos los pasos a seguir son los siguientes:</p>
<p><strong>[1]</strong> Como siempre antes de empezar cualquier tarea parecida <strong>backup de todo</strong>. Incluso es buena idea montar el blog entero en otro sitio para después poder comparar el viejo con el nuevo.</p>
<p><strong>[2]</strong> Desactivamos todos los plugins y seleccionamos el tema por defecto. Aunque en nuestro caso como tenemos intención de borrar todos los archivos el nuevo WordPress desactivará todo lo que no encuentre.</p>
<p><strong>[3]</strong> Borramos todos los archivos anteriores. Si tenemos el wordpress mezclado con otras cosas el comando en cuestión es algo como:</p>
<p><code>$ rm -rf index.php license.txt readme.html wp-* xmlrpc.php</code></p>
<p><strong>[4]</strong> Descomprimimos la última versión de WordPress en el mismo sitio donde teníamos la anterior.</p>
<p><strong>[5]</strong> Editamos el nuevo <em>wp-config.php</em> y añadimos los datos de conexión y nombre de la BD.</p>
<p><strong>[6]</strong> Comprobamos en qué codificación está trabajando nuestro WordPress. Por ejemplo con:</p>
<p><code>mysql> show create table wp_posts;</code></p>
<p>Nos fijamos en el CHARSET utilizado y definimos DB_CHARSET con el mismo valor. En el caso de ser "utf8" no tenemos que tocar nada pero si estamos con "latin1" es necesario indicarlo en <em>wp-config.php</em> con:</p>
<div class="syntax_hilite">
<div id="php-12">
<div class="php"><a href="http://www.php.net/define"><span style="color:#000066;">define</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'DB_CHARSET'</span>, <span style="color:#FF0000;">'latin1'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p><strong>[7]</strong> Iniciamos el programa de actualización apuntando el navegador a la URL habitual del dashborad (p.e. http://tublog.es/wp-admin/)</p>
<p><strong>[8]</strong> Automáticamente aparecerá un mensaje diciendo que debemos proceder con la actualización de la BD. Hacemos clic en "Siguiente" y cruzamos los dedos... si todo va bien te aparecerá algo como "Update successful".</p>
<p><strong>[9]</strong> WordPress casi actualizado!</p>
<p>Digo casi porque casi seguro vamos a necesitar realizar alguno de lo siguientes pasos adicionales:</p>
<ul>
<li>Si habíamos subido archivos al WordPress utilizando su dashboard hemos de copiar la anterior carpeta <em>wp-content/uploads</em> a la nueva instalación.</li>
<li>Si trabajábamos con algún plugin para los tags debemos lanzar la importación manualmente desde el dashboard, por ejemplo en el caso del UTW desde "Herramientas" -> "Importar" -> "Ultimate Tag Warrior".</li>
<li>Si ha pasado mucho tiempo desde la última actualización no es mala idea repasarse las opciones de configuración de WordPress y comprobar que todo está ok, especialmente la sección de Permalinks.</li>
<li>Como hemos empezado de nuevo en lo que a código PHP se refiere es necesario volver a instalar los plugins que echemos en falta y un tema que nos guste. Por supuesto descargando las últimas versiones de todo y no aprovechando nada del anterior WP para así sacar el máximo partido de las nuevas funcionalidades (en parte uno de los objetivos del procedimiento descrito en este post).</li>
</ul>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/07/internacionalizacion-de-temas-en-wordpress-usando-gettext/' rel='bookmark' title='Permanent Link: Internacionalización de temas en WordPress usando gettext'>Internacionalización de temas en WordPress usando gettext</a></li><li><a href='http://www.phpbsd.net/2007/10/09/titulos-un-poco-mas-seo-y-en-espanol-para-wordpress/' rel='bookmark' title='Permanent Link: Títulos un poco más SEO y en español para WordPress'>Títulos un poco más SEO y en español para WordPress</a></li><li><a href='http://www.phpbsd.net/2009/04/10/wordpress-con-el-feedburner-de-google-y-su-maldito-proxy/' rel='bookmark' title='Permanent Link: WordPress con el FeedBurner de Google y su maldito proxy'>WordPress con el FeedBurner de Google y su maldito proxy</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/02/21/actualizar-un-wordpress-a-la-ultima-version/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Conferencia internacional de PHP en Barcelona</title>
		<link>http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/</link>
		<comments>http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 13:52:04 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[conferencias]]></category>
		<category><![CDATA[grupo-programadores]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/</guid>
		<description><![CDATA[El próximo 27 de Setiembre los de grupo de programadores PHPBarcelona hemos organizado la segunda edición de la Barcelona PHP Conference. Será la primera conferencia internacional de PHP realizada en España con un formato y contenido comparable a otras conferencias de reconocido renombre realizadas alrededor del mundo.
Como ponentes tenemos a: Derick Rethans, Scott MacVicar, Helgi [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>El próximo 27 de Setiembre los de grupo de programadores <a target="_blank" href="http://phpbarcelona.org/" title="PHPBarcelona.org | Grupo de programadores PHP de Barcelona">PHPBarcelona</a> hemos organizado la segunda edición de la <a title="Barcelona PHP Conference 2008" href="http://phpconference.es/" target="_blank">Barcelona PHP Conference</a>. Será la primera conferencia internacional de PHP realizada en España con un formato y contenido comparable a otras conferencias de reconocido renombre realizadas <a title="PHP: PHP Conferences around the world" href="http://www.php.net/conferences/" target="_blank">alrededor del mundo</a>.</p>
<p>Como ponentes tenemos a: Derick Rethans, Scott MacVicar, Helgi Thormar, Marcus Bointon, Zoë Slattery, Arno Schneider, Jordi Roura, Pau Garcia-Milà y Jens Bierkandt.</p>
<p>Que nos hablarán de:</p>
<ul>
<li>Xdebug</li>
<li>Website releases made easy with the PEAR installer</li>
<li>SQLite3</li>
<li>Text indexing and search libraries for PHP</li>
<li>Rasmus, think again! - Agile Framework == happy PHP Developer</li>
<li>How to pimp high volume PHP websites</li>
<li>Email in PHP</li>
<li>Tuning the usability of online applications using web analytics techniques</li>
<li>eyeOS: Open Source Web Desktop System in PHP</li>
</ul>
<p class="alert"><strong>Puedes visitar <a title="Barcelona PHP Conference 2008" href="http://phpconference.es/" target="_blank">phpconference.es</a> para revisar toda la información de este evento:<br />la agenda, los ponentes, las presentaciones, el local, etc.<br />y también para inscribirte por tan sólo 20€.</strong></p>
<p>Desde los comienzos de este grupo de programadores este fue uno de nuestros principales objetivos (o sueños): conseguir montar una conferencia del mismo estilo y nivel que las que se hacen por todas partes pero realizada en Barcelona y con entrada gratuita o por un precio reducido.</p>
<p><strong>Finalmente lo hemos conseguido!</strong> y el siguiente sábado podrás disfrutar de un evento de estas características por sólo 20€ y en la ciudad de Barcelona. Evidentemente (o al menos a mi entender) si eres un programador PHP de Barcelona o cualquier otra localidad de España esto supone una gran noticia. El precio de la entrada sumado al viaje y la estancia no llega al 20% de lo que te constaría asistir a cualquiera otra conferencia de PHP parecida.</p>
<p>Sin duda una oportunidad única para pasarse todo un día aprendiendo mucho, conociendo a auténticos "gurus" en la materia, haciendo contactos con algunas de las principales empresas que desarrollan en PHP en nuestro país, compartiendo experiencias con programadores de todo el mundo, etc. Todo acompañado de bebidas, desayuno, comida, algún concurso y, como siempre, las cervecitas del final.</p>
<p>Para ir abriendo boca aquí os dejo un <a href="http://www.vimeo.com/1766152" target="_blank" rel="nofollow">vídeo promocional</a> que se ha currado Arno Schneider:</p>
<p><object width="450" height="339"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1766152&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1766152&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="450" height="339"></embed></object><br /><span style="color: #56AFED;font-size: 10px;">Trailer hecho con <a style="color: #56AFED;font-size: 10px;font-weight: bold;" rel="nofollow" target="_blank" href="http://animoto.com/?ref=nvqlyrtc">animoto</a></span></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primera edición de la Barcelona PHP Workshop</title>
		<link>http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/</link>
		<comments>http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/#comments</comments>
		<pubDate>Mon, 26 May 2008 13:38:31 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[grupo-programadores]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[talleres-prácticos]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/</guid>
		<description><![CDATA[Con los del grupo de programadores PHP de Barcelona ya la hemos vuelto a liar con la realización de nuestro próximo evento, la primera edición de la Barcelona PHP Workshop que se celebrará el siguiente 7 de Junio. A diferencia de la pasada Barcelona PHP Conference que organizamos este es un nuevo tipo de evento [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/' rel='bookmark' title='Permanent Link: Conferencia internacional de PHP en Barcelona'>Conferencia internacional de PHP en Barcelona</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Con los del <a target="_blank" href="http://phpbarcelona.org/" title="PHPBarcelona.org | Grupo de programadores PHP de Barcelona">grupo de programadores PHP de Barcelona</a> ya la hemos vuelto a liar con la realización de nuestro próximo evento, la primera edición de la <a target="_blank" href="http://phpbarcelona.org/eventos/primera-barcelona-php-workshop" title="Primera Barcelona PHP Workshop | PHPBarcelona.org">Barcelona PHP Workshop</a> que se celebrará el siguiente 7 de Junio. A diferencia de la pasada <a target="_blank" href="http://phpbarcelona.org/eventos/primera-barcelona-php-conference" title="Primera Barcelona PHP Conference | PHPBarcelona.org">Barcelona PHP Conference</a> que organizamos este es un nuevo tipo de evento totalmente enfocado a <strong>talleres prácticos de programación en PHP</strong>.</p>
<p>A pesar del éxito de la pasada conference mucha gente se quedó con las ganas de practicar más y escuchar menos, pues bien, si fuiste uno de estos esta es tu oportunidad :^)</p>
<p>Serán un total de 6 talleres de programación en PHP ocupando todo el sábado donde tanto las temáticas como los ejercicios serán de lo más variado:</p>
<ul>
<li>Construir una pequeña red social con Symfony.</li>
<li>Trabajar con motores de workflow.</li>
<li>Internacionalizar proyectos PHP.</li>
<li>Usar AJAX para modernizar tus páginas.</li>
<li>Proteger tu sites contra XSS unido a un pequeño concurso de seguridad.</li>
<li>Como usar VIM como una potente IDE para el desarrollo en PHP.</li>
</ul>
<p>Como añadido gracias a nuestros patrocinadores podremos disfrutar de desayuno, comida, bebida, algunos regalos, etc.</p>
<p>Puedes visitar la página del evento para revisar la agenda completa e inscribirte por tan sólo 5 euros:<br />
<a target="_blank" href="http://phpbarcelona.org/eventos/primera-barcelona-php-workshop" title="Primera Barcelona PHP Workshop | PHPBarcelona.org">http://phpbarcelona.org/eventos/primera-barcelona-php-workshop</a></p>
<p>Tenemos un total de 200 plazas disponibles y en el momento de escribir este post vamos por los 154 asistentes!</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2010/10/07/php-barcelona-conference-2010/' rel='bookmark' title='Permanent Link: PHP Barcelona Conference 2010'>PHP Barcelona Conference 2010</a></li><li><a href='http://www.phpbsd.net/2008/09/20/conferencia-internacional-de-php-en-barcelona/' rel='bookmark' title='Permanent Link: Conferencia internacional de PHP en Barcelona'>Conferencia internacional de PHP en Barcelona</a></li><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Optimización de aplicaciones PHP (server side)</title>
		<link>http://www.phpbsd.net/2008/04/11/optimizacion-de-aplicaciones-php-server-side/</link>
		<comments>http://www.phpbsd.net/2008/04/11/optimizacion-de-aplicaciones-php-server-side/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 23:08:19 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Notas]]></category>
		<category><![CDATA[conferencias]]></category>
		<category><![CDATA[grupo-programadores]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/04/11/optimizacion-de-aplicaciones-php-server-side/</guid>
		<description><![CDATA[Como comentaba en el anterior post aquí os dejo la presentación sobre optimización de aplicaciones PHP (server side) que realicé en la pasada Barcelona PHP Conference.

 &#124; View &#124; Upload your own

El archivo PDF: Optimización de aplicaciones PHP (server side)


Entradas relacionadas:Algunos tutoriales del PHP&#124;Tek 2007Como interactuar con Google desde PHP usando Zend FrameworkPrimera edición de [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/05/25/algunos-tutoriales-del-phptek-2007/' rel='bookmark' title='Permanent Link: Algunos tutoriales del PHP|Tek 2007'>Algunos tutoriales del PHP|Tek 2007</a></li><li><a href='http://www.phpbsd.net/2007/12/12/como-interactuar-con-google-desde-php-usando-zend-framework/' rel='bookmark' title='Permanent Link: Como interactuar con Google desde PHP usando Zend Framework'>Como interactuar con Google desde PHP usando Zend Framework</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Como comentaba en el anterior post aquí os dejo la presentación sobre <strong>optimización de aplicaciones PHP (server side)</strong> que realicé en la pasada <a target="_blank" href="http://phpbarcelona.org/eventos/primera-barcelona-php-conference" title="Primera Barcelona PHP Conference | PHPBarcelona.org">Barcelona PHP Conference</a>.</p>
<div style="width:425px;text-align:left" id="__ss_280242"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=optimizacin-de-aplicaciones-php-server-side-1203892854852872-5"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=optimizacin-de-aplicaciones-php-server-side-1203892854852872-5" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/orioljimenez/optimizacin-de-aplicaciones-php-server-side?src=embed" title="View 'Optimización de aplicaciones PHP (server side)' on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div>
</div>
<p>El archivo PDF: <a href="http://www.phpbsd.net/wp-content/talks/optimizacion_de_aplicaciones_php_server_side.pdf" title="Optimización de aplicaciones PHP (server side)">Optimización de aplicaciones PHP (server side)</a></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/05/25/algunos-tutoriales-del-phptek-2007/' rel='bookmark' title='Permanent Link: Algunos tutoriales del PHP|Tek 2007'>Algunos tutoriales del PHP|Tek 2007</a></li><li><a href='http://www.phpbsd.net/2007/12/12/como-interactuar-con-google-desde-php-usando-zend-framework/' rel='bookmark' title='Permanent Link: Como interactuar con Google desde PHP usando Zend Framework'>Como interactuar con Google desde PHP usando Zend Framework</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/04/11/optimizacion-de-aplicaciones-php-server-side/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML Purifier, evita los ataques XSS y valida tu HTML</title>
		<link>http://www.phpbsd.net/2008/01/29/html-purifier-evita-los-ataques-xss-y-valida-tu-html/</link>
		<comments>http://www.phpbsd.net/2008/01/29/html-purifier-evita-los-ataques-xss-y-valida-tu-html/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 18:11:45 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[htmlpurifier]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/01/29/html-purifier-evita-los-ataques-xss-y-valida-tu-html/</guid>
		<description><![CDATA[HTML Purifier es una librería para filtrar HTML escrita en PHP que permite eliminar el código malicioso (XSS) a la vez que comprueba que el HTML valide contra el estándar correspondiente.
Una de las principales diferencias de HTML Purifier comparada con otras librerías de filtrado HTML es que descompone por completo el HTML y verifica que [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/14/capturando-los-fatal-errors-del-php-con-nuestro-handler/' rel='bookmark' title='Permanent Link: Capturando los fatal errors del PHP con nuestro handler'>Capturando los fatal errors del PHP con nuestro handler</a></li><li><a href='http://www.phpbsd.net/2007/02/11/el-mes-de-los-bugs-y-nueva-version-de-php/' rel='bookmark' title='Permanent Link: El mes de los bugs y nueva versión de PHP'>El mes de los bugs y nueva versión de PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/31/transfiriendo-datos-con-la-libreria-curl-en-php/' rel='bookmark' title='Permanent Link: Transfiriendo datos con la librería cURL en PHP'>Transfiriendo datos con la librería cURL en PHP</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://htmlpurifier.org/" title="HTML Purifier - Filter your HTML the standards-compliant way!">HTML Purifier</a> es una librería para filtrar HTML escrita en PHP que permite <strong>eliminar el código malicioso</strong> (<a target="_blank" href="http://es.wikipedia.org/wiki/XSS" title="XSS - Wikipedia, la enciclopedia libre">XSS</a>) a la vez que comprueba que el <strong>HTML valide contra el estándar correspondiente</strong>.</p>
<p>Una de las principales diferencias de HTML Purifier comparada con otras librerías de filtrado HTML es que <strong>descompone por completo el HTML</strong> y verifica que cada uno de los elementos se encuentre dentro de una whitelist de elementos permitidos en lugar de limitarse a buscar elementos prohibidos en una blacklist (normalmente desfasada). A la vez que elimina el código no deseado también hace algo poco común en librerías de este tipo, valida que el HTML cumpla el estándar correspondiente y si no lo cumple realiza las modificaciones necesarias para corregirlo.</p>
<p>Puedes usar HTML Purifier tanto para filtrar datos de entrada, en el caso de que sea posible recibir código HTML, como el HTML de salida de tu aplicación. Lo más frecuente es usarla para filtrar datos de entrada como comentarios, emails, el resultado de algunos editores WYSIWYG, etc.</p>
<p>Se ha de tener presente que dado su funcionamiento interno <strong>es una librería muy potente pero pesada y lenta</strong>, no es para nada recomendable filtrar la salida de tu aplicación cada vez que generas código HTML. Mucho mejor filtrar la entrada y asegurar que el contenido de tu sistema está limpio. En todo caso para filtrar la salida se convierte en algo obligatorio trabajar con algún sistema de cache (<a href="http://www.phpbsd.net/2007/05/16/cache-de-paginas-estaticas-para-php/" title="Cache de páginas estáticas para PHP en PHPBSD.net">generar páginas estáticas</a>, un <a target="_blank" href="http://en.wikipedia.org/wiki/Reverse_proxy" title="Reverse proxy - Wikipedia, the free encyclopedia">reverse proxy</a>, en BD capturando el output-buffer, etc.)</p>
<p>A continuación explico brevemente su instalación y uso.</p>
<h4>Instalación</h4>
<p><strong>[1]</strong> Descargar el archivo <a target="_blank" href="http://htmlpurifier.org/releases/htmlpurifier-3.0.0.tar.gz" title="htmlpurifier-3.0.0.tar.gz">htmlpurifier-3.0.0.tar.gz</a> y descomprimirlo en el servidor. No es necesario que esté accesible para los usuarios, puedes colocarlo fuera del <em>DocumentRoot</em>. Ten en cuenta que la última versión (la 3.0) sólo es compatible con PHP5.</p>
<p><strong>[2]</strong> Poner los permisos adecuados a los directorios que HTML Purifier usará para cachear algunos archivos. Los directorios en cuestión son <em>DefinitionCache/Serializer</em> y todos sus subdirectorios. Si tenemos acceso por shell al servidor lo solucionamos con un:</p>
<p><code>chmod -R 0777 HTMLPurifier/DefinitionCache/Serializer</code></p>
<p>Utiliza 0777 o 0775 según convenga, el objetivo es permitir al servidor web escribir en estos directorios.</p>
<p><strong>[3]</strong> Es necesario tener instalada la extensión <a target="_blank" href="http://es2.php.net/manual/es/ref.iconv.php" title="PHP: iconv - Manual">iconv</a> si quieres trabajar con un enconding distinto de UTF-8 y si quieres una salida más bonita del HTML también es necesaria la extensión <a target="_blank" href="http://es2.php.net/manual/es/ref.tidy.php" title="PHP: tidy - Manual">tidy</a>.</p>
<p><strong>[4]</strong> Para mayor comodidad puedes incluir el directorio de la HTML Purifier en tu <em>include_path</em> a pesar de que es recomendable sólo hacer <em>require()</em> cuando vayas a usarla, es una librería bastante grande.</p>
<h4>Usando la librería</h4>
<div class="syntax_hilite">
<div id="php-14">
<div class="php"><span style="color:#0000FF;">$dirty_html</span> = <span style="color:#FF0000;">'&lt;strong&gt;prueba'</span>;<br />
<span style="color:#616100;">require_once</span> <span style="color:#FF0000;">'/directorio_de_htmlpurifier/library/HTMLPurifier.auto.php'</span>;<br />
<span style="color:#FF9933; font-style:italic;">//require_once 'HTMLPurifier.php';</span><br />
<span style="color:#0000FF;">$config</span> = HTMLPurifier_Config::<span style="color:#006600;">createDefault</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$config</span>-&gt;<span style="color:#006600;">set</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'Core'</span>, <span style="color:#FF0000;">'Encoding'</span>, <span style="color:#FF0000;">'ISO-8859-1'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$config</span>-&gt;<span style="color:#006600;">set</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'HTML'</span>, <span style="color:#FF0000;">'Doctype'</span>, <span style="color:#FF0000;">'HTML 4.01 Transitional'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$purifier</span> = <span style="color:#000000; font-weight:bold;">new</span> HTMLPurifier<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$config</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#0000FF;">$clean_html</span> = <span style="color:#0000FF;">$purifier</span>-&gt;<span style="color:#006600;">purify</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$dirty_html</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$clean_html</span>;</div>
</div>
</div>
<p></p>
<p>En el ejemplo se incluye el archivo <em>HTMLPurifier.auto.php</em> indicando la ruta completa, si has añadido el directorio de la librería en tu <em>include_path</em> puedes incluir <em>HTMLPurifier.php</em> directamente (usa la línea comentada).</p>
<p>En este ejemplo simple se está configurando HTML Purifier para que trabaje con 'HTML 4.01 Transitional' codificado en 'ISO-8859-1'. Por defecto la librería trabaja con 'XHTML 1.0 Transitional' en 'UTF-8', si este es el único tipo de documento y codificación que necesitas puedes eliminar las llamadas a <em>set()</em> y no es necesario crear el objeto <em>$config</em>. Existen muchos otros <a target="_blank" href="http://htmlpurifier.org/live/configdoc/plain.html" title="Configuration Documentation - HTML Purifier">parámetros de configuración</a> que se merecen una ojeada aunque para un funcionamiento normal no es necesario tocar casi nada.</p>
<p>También existen plugins para varios CMS conocidos para empezar a usar HTML Purifier de una forma todavía más fácil. Entre ellos está el plugin <a target="_blank" href="http://urbangiraffe.com/plugins/html-purified/" title="HTML Purified - Enhanced protection against XSS | Urban Giraffe">HTML Purified para WordPress</a> y el módulo <a target="_blank" href="http://drupal.org/project/htmlpurifier" title="HTML Purifier | drupal.org">HTML Purifier para Drupal</a>.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/14/capturando-los-fatal-errors-del-php-con-nuestro-handler/' rel='bookmark' title='Permanent Link: Capturando los fatal errors del PHP con nuestro handler'>Capturando los fatal errors del PHP con nuestro handler</a></li><li><a href='http://www.phpbsd.net/2007/02/11/el-mes-de-los-bugs-y-nueva-version-de-php/' rel='bookmark' title='Permanent Link: El mes de los bugs y nueva versión de PHP'>El mes de los bugs y nueva versión de PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/31/transfiriendo-datos-con-la-libreria-curl-en-php/' rel='bookmark' title='Permanent Link: Transfiriendo datos con la librería cURL en PHP'>Transfiriendo datos con la librería cURL en PHP</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/01/29/html-purifier-evita-los-ataques-xss-y-valida-tu-html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHPBarcelona.org, el nuevo portal para el Grupo PHP</title>
		<link>http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/</link>
		<comments>http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 19:42:52 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[grupo-programadores]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/</guid>
		<description><![CDATA[Pues eso, tal como Xavi anunciaba ayer hace un par de días terminé el montaje de lo que considero es la 1a fase de PHPBarcelona.org, el nuevo portal para el grupo de programadores PHP de Barcelona. La verdad es que desde que empezó el grupo con este post no ha parado de crecer, ya somos [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li><li><a href='http://www.phpbsd.net/2007/06/05/nuevo-blog-para-las-nuevas-pear/' rel='bookmark' title='Permanent Link: Nuevo blog para las &#8220;nuevas&#8221; PEAR'>Nuevo blog para las &#8220;nuevas&#8221; PEAR</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Pues eso, tal como <a target="_blank" href="http://www.syntaxerror.es/2008/01/17/phpbarcelonaorg-se-estrena-en-la-blogosfera/" title="PHPBarcelona.org se estrena en la blogosfera :: Syntax Error">Xavi anunciaba ayer</a> hace un par de días terminé el montaje de lo que considero es la 1a fase de <a target="_blank" href="http://phpbarcelona.org/" title="PHPBarcelona.org | Grupo de programadores PHP de Barcelona">PHPBarcelona.org</a>, el nuevo portal para el <strong>grupo de programadores PHP de Barcelona</strong>. La verdad es que desde que empezó el grupo con <a href="http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/" title="Grupo de programadores PHP de Barcelona en PHPBSD.net">este post</a> no ha parado de crecer, ya somos más de 50, y después de dos quedadas y muchos emails teníamos varias ideas interesantes que necesitaban de un sitio en internet para desarrollarlas, lo que acostumbra a pasar cuando juntas más de dos frikis del PHP :)</p>
<p>Una de las principales funciones del portal pretende ser organizarnos en la preparación de eventos como nuestras habituales <strong>quedadas</strong> o las futuras <strong>conferencias de PHP</strong> que tenemos intención de hacer, y también, cómo no, para crear un poco más de community entre nosotros.</p>
<p>Después de evaluar algunas posibles soluciones para, como siempre, programar lo mínimo nos hemos decantado por <a target="_blank" href="http://drupal.org/" title="drupal.org | Community plumbing">Drupal</a>. Era simplemente perfecto para la ocasión (ni Ning ni ostias parecidas)</p>
<p>Un resumen por encima de lo que ofrece ahora mismo el portal:</p>
<ul>
<li>Calendario de eventos con posibilidad de inscribirse a los eventos, colgar archivos, comentarios, etc.</li>
<li>Foro de soporte técnico, ya veremos que uso le damos, sea de soporte técnico o no el formato foro puede resultar útil para determinadas cuestiones. Por ejemplo tenemos intención de usarlo para discutir acerca de los temas a tratar en futuras conferencias.</li>
<li>Encuestas, útil para realizar votaciones entre nosotros para decidir cualquier cosa (esto vía email si que es un coñazo de gestionar).</li>
<li>Demás características estándar de un Drupal: sistema de entradas tipo blog con comentarios, motor de búsqueda, formularios de contacto individuales por usuario, listado de los usuarios del portal, etc.</li>
</ul>
<p>Algunas de las cosas comentadas en la lista que le vamos a añadir en breve son:</p>
<ul>
<li>Sistema de ofertas de empleo PHP en Barcelona.</li>
<li>Directorio de empresas/profesionales dedicados al PHP en Barcelona. (el listado de <a target="_blank" href="http://phpbarcelona.org/programadores-php" title="Programadores PHP | PHPBarcelona.org">programadores PHP</a> más o menos ya lo tenemos).</li>
<li>Documentación relacionada con PHP en español.</li>
</ul>
<p>Añadir que ahora mismo el portal está bastante vacío de contenido, pero tiempo al tiempo, de momento ya tenemos la herramienta.</p>
<p>Puedes suscribirte al <a target="_blank" href="http://phpbarcelona.org/rss.xml" title="RSS de PHPBarcelona.org">RSS de PHPBarcelona.org</a> para estar al día de lo que se mueve en este grupo PHP, y si eres de Barcelona y te gusta el PHP, no lo dudes, <strong>¡únete al grupo!</strong></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/11/07/grupo-de-programadores-php-de-barcelona/' rel='bookmark' title='Permanent Link: Grupo de programadores PHP de Barcelona'>Grupo de programadores PHP de Barcelona</a></li><li><a href='http://www.phpbsd.net/2007/06/05/nuevo-blog-para-las-nuevas-pear/' rel='bookmark' title='Permanent Link: Nuevo blog para las &#8220;nuevas&#8221; PEAR'>Nuevo blog para las &#8220;nuevas&#8221; PEAR</a></li><li><a href='http://www.phpbsd.net/2008/05/26/primera-edicion-de-la-barcelona-php-workshop/' rel='bookmark' title='Permanent Link: Primera edición de la Barcelona PHP Workshop'>Primera edición de la Barcelona PHP Workshop</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Funciones PHP en JavaScript</title>
		<link>http://www.phpbsd.net/2008/01/09/funciones-php-en-javascript/</link>
		<comments>http://www.phpbsd.net/2008/01/09/funciones-php-en-javascript/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 00:14:56 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Notas]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[librerías]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php2js]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2008/01/09/funciones-php-en-javascript/</guid>
		<description><![CDATA[Si eres programador PHP y en ocasiones encuentras a faltar determinadas funciones de PHP en JavaScript te interesará el proyecto Porting PHP to Javascript. Kevin van Zonneveld con la ayuda de algunos colaboradores está desarrollando una librería con varias funciones PHP implementadas en JavaScript con el objetivo de reducir al máximo las diferencias entre ambos [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/11/28/buscar-funciones-php-desde-firefox/' rel='bookmark' title='Permanent Link: Buscar funciones PHP desde Firefox'>Buscar funciones PHP desde Firefox</a></li><li><a href='http://www.phpbsd.net/2007/05/18/funciones-anonimas-en-php/' rel='bookmark' title='Permanent Link: Funciones anónimas en PHP'>Funciones anónimas en PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/31/transfiriendo-datos-con-la-libreria-curl-en-php/' rel='bookmark' title='Permanent Link: Transfiriendo datos con la librería cURL en PHP'>Transfiriendo datos con la librería cURL en PHP</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Si eres programador PHP y en ocasiones encuentras a faltar determinadas funciones de PHP en JavaScript te interesará el proyecto <a target="_blank" href="http://kevin.vanzonneveld.net/techblog/category/php2js/" title="PHP equivalents">Porting PHP to Javascript</a>. <a target="_blank" href="http://kevin.vanzonneveld.net/techblog/" title="KvZ - TechBlog">Kevin van Zonneveld</a> con la ayuda de algunos colaboradores está desarrollando <strong>una librería con varias funciones PHP implementadas en JavaScript</strong> con el objetivo de reducir al máximo las diferencias entre ambos lenguajes de programación.</p>
<p>De momento las funciones implementadas en JavaScript son las siguientes:</p>
<p><code>addslashes()<br />
array_combine()<br />
array_pop()<br />
array_push()<br />
array_search()<br />
base64_decode()<br />
base64_encode()<br />
basename()<br />
chr()<br />
crc32()<br />
explode()<br />
function_exists()<br />
implode()<br />
include()<br />
include_once()<br />
is_array()<br />
is_numeric()<br />
ltrim()<br />
nl2br()<br />
ord()<br />
rtrim()<br />
soundex()<br />
str_pad()<br />
str_repeat()<br />
str_replace()<br />
str_rot13()<br />
strip_tags()<br />
stripslashes()<br />
strtolower()<br />
strtoupper()<br />
trim()<br />
ucwords()<br />
utf8_decode()<br />
utf8_encode()<br />
wordwrap()</code></p>
<p>Kevin publica cada función en un post dentro de la categoría <a target="_blank" href="http://kevin.vanzonneveld.net/techblog/category/php2js/" title="PHP equivalents">php2js</a> en su blog. En cada post encontrarás el código JavaScript de la función, una descripción, los parámetros de entrada, los valores de retorno, etc. También puedes descargar directamente la librería completa <a target="_blank" href="http://kevin.vanzonneveld.net/code/php_equivalents/php.js" title="php.js">php.js</a> o la versión comprimida <a target="_blank" href="http://kevin.vanzonneveld.net/code/php_equivalents/php.min.js" title="php.min.js">php.min.js</a>.</p>
<p>Si te apetece participar en este proyecto puedes hacerlo en el mismo blog colgando un comentario.</p>
<p>Vía <a target="_blank" href="http://devzone.zend.com/article/2913-Porting-PHP-to-JavaScript" title="Porting PHP to JavaScript">Zend Developer Zone</a></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/11/28/buscar-funciones-php-desde-firefox/' rel='bookmark' title='Permanent Link: Buscar funciones PHP desde Firefox'>Buscar funciones PHP desde Firefox</a></li><li><a href='http://www.phpbsd.net/2007/05/18/funciones-anonimas-en-php/' rel='bookmark' title='Permanent Link: Funciones anónimas en PHP'>Funciones anónimas en PHP</a></li><li><a href='http://www.phpbsd.net/2007/01/31/transfiriendo-datos-con-la-libreria-curl-en-php/' rel='bookmark' title='Permanent Link: Transfiriendo datos con la librería cURL en PHP'>Transfiriendo datos con la librería cURL en PHP</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2008/01/09/funciones-php-en-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

