<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2spanishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>PHPBSD.net</title>
	
	<link>http://www.phpbsd.net</link>
	<description>Blogueando sobre PHP, BSD, SEO, AJAX, Seguridad, Rendimiento... y mucho más</description>
	<lastBuildDate>Mon, 30 Nov 2009 11:28:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/phpbsd" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="phpbsd" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">phpbsd</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/content?lg=es&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://eur.i1.yimg.com/eur.yimg.com/i/es/my/addto1.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/phpbsd" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fphpbsd" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>WordPress con el FeedBurner de Google y su maldito proxy</title>
		<link>http://www.phpbsd.net/2009/04/10/wordpress-con-el-feedburner-de-google-y-su-maldito-proxy/</link>
		<comments>http://www.phpbsd.net/2009/04/10/wordpress-con-el-feedburner-de-google-y-su-maldito-proxy/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 19:51:23 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rewrite-engine]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=169</guid>
		<description><![CDATA[Hace tiempo escribí un post acerca de como usar FeedBurner para los feeds de un WordPress que se ha quedado algo obsoleto debido a algunos cambios en WordPress respecto a la URL de los feeds y a la compra de FeedBurner por parte de Google.
Si todavía crees que usar FeedBurner es una buena idea (yo [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</a></li><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/2009/02/21/actualizar-un-wordpress-a-la-ultima-version/' rel='bookmark' title='Permanent Link: Actualizar un WordPress a la última versión'>Actualizar un WordPress a la última versión</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo escribí un post acerca de <a title="Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress en PHPBSD.net" href="http://www.phpbsd.net/2007/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/">como usar FeedBurner para los feeds de un WordPress</a> que se ha quedado algo obsoleto debido a algunos cambios en WordPress respecto a la URL de los feeds y a la compra de FeedBurner por parte de Google.</p>
<p>Si todavía crees que usar FeedBurner es una buena idea (yo nunca lo tuve claro) la forma más cómoda de configurarlo es <strong>modificando el archivo .htaccess</strong>, aunque también existen plugins específicos (por ejemplo el <a title="flagrantdisregard  &raquo; FD Feedburner Plugin for WordPress" target="_blank" href="http://flagrantdisregard.com/feedburner/">FD Feedburner Plugin</a>).</p>
<p>Se trata de añadir lo siguiente al .htaccess:</p>
<p><code>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]<br />
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]<br />
RewriteRule ^feed/(.*)$ http://feeds2.feedburner.com/xxxxxx [R,L]<br />
&lt;/IfModule&gt;</code></p>
<p>Con lo anterior conseguimos que nuestro WordPress únicamente genere el feed para FeedBurner y que el resto de clientes (navegadores, arañas, etc.) sean redirigidos a la URL de FeedBurner.</p>
<p>Teóricamente este es el mejor método para usar FeedBurner ya que <strong>seguimos difundiendo la URL del feed original</strong> y así siempre podemos dejar de usar este servicio sin muchos inconvenientes. El problema está en que al haber la redirección muchos usuarios siguen el enlace del feed con el navegador y se suscriben a la URL del feed de FeedBurner&#8230; o sea que con el tiempo acabaremos con lectores suscritos a ambas URLs.</p>
<p>El método alternativo es modificar el theme de WordPress, o usar algún plugin, para difundir directamente la URL del feed de FeedBurner.</p>
<h4>Proxy de Google</h4>
<p>Si teníamos una cuenta en FeedBurner y la hemos migrado a Google recientemente, a parte del engorroso cambio de la URL del feed, quizás hemos notado que ahora la URL que difunde tu feed para cada post pasa por un proxy de Google.</p>
<p>En principio esto ya sucedía antes y el cambio únicamente es que ahora en lugar de pasar por <em>feeds.feedburner.com</em> pasa por <em>feedproxy.google.com</em> (aunque en mi caso antes de migrar la cuenta a Google no pasaba por ningún proxy, tengo caché, lo puedo demostrar :)</p>
<p>En cualquier caso si queremos <strong>desactivar completamente el proxy de Google</strong> hemos de cambiar la configuración de nuestro feed en FeedBurner. Concretamente se trata de desactivar la opción &#8220;Item link clicks&#8221; de la sección &#8220;TotalStats&#8221; dentro de la pestaña &#8220;Analize&#8221;. Con esto seguiremos teniendo estadísticas de número de lectores e ítems vistos (información más que suficiente) pero difundiremos siempre la URL original de cada post, algo <strong>muy recomendable para SEO</strong> (como bien <a title="Feedburner y permalinks &#8220;robadores&#8221; de posicionamiento | SigT" target="_blank" href="http://sigt.net/archivo/feedburner-y-permalinks-robadores-de-posicionamiento.xhtml">nos explicaba Armonth</a> hace tiempo).</p>
<p>Así es como debería quedar la configuración en FeedBurner:</p>
<p><img src="http://www.phpbsd.net/wp-content/images/snapshot_feedburner.jpg" alt="FeedBurner snapshot" /></p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</a></li><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/2009/02/21/actualizar-un-wordpress-a-la-ultima-version/' rel='bookmark' title='Permanent Link: Actualizar un WordPress a la última versión'>Actualizar un WordPress a la última versión</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/RX2XIzPSLHHmeQezhha8E-FK7L4/0/da"><img src="http://feedads.g.doubleclick.net/~a/RX2XIzPSLHHmeQezhha8E-FK7L4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RX2XIzPSLHHmeQezhha8E-FK7L4/1/da"><img src="http://feedads.g.doubleclick.net/~a/RX2XIzPSLHHmeQezhha8E-FK7L4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/yzb1pufI0Vs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/04/10/wordpress-con-el-feedburner-de-google-y-su-maldito-proxy/feed/</wfw:commentRss>
		<slash:comments>4</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-11">
<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-12">
<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-13">
<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-14">
<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-15">
<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>
<p><a href="http://feedads.g.doubleclick.net/~a/yFxZMX2VM9YkyvUpRZM1-MVktDE/0/da"><img src="http://feedads.g.doubleclick.net/~a/yFxZMX2VM9YkyvUpRZM1-MVktDE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yFxZMX2VM9YkyvUpRZM1-MVktDE/1/da"><img src="http://feedads.g.doubleclick.net/~a/yFxZMX2VM9YkyvUpRZM1-MVktDE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/ormqi1Y2_N0" height="1" width="1"/>]]></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>Disponible la versión 5.2.9 del PHP. Actualizando que es gerundio!</title>
		<link>http://www.phpbsd.net/2009/03/16/disponible-la-version-529-del-php-actualizando-que-es-gerundio/</link>
		<comments>http://www.phpbsd.net/2009/03/16/disponible-la-version-529-del-php-actualizando-que-es-gerundio/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 13:49:30 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=132</guid>
		<description><![CDATA[Hace poco más de dos semanas se liberó la versión 5.2.9 del PHP. La que probablemente será la última release de la rama 5.2.x... o al menos eso esperamos muchos como yo que andamos impacientes por la llegada de la 5.3 estable con todas sus novedades.
Como siempre se corrigen un buen número de bugs de [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/01/disponible-la-version-523-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 5.2.3 del PHP'>Disponible la versión 5.2.3 del PHP</a></li><li><a href='http://www.phpbsd.net/2007/05/04/disponible-la-version-522-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 5.2.2 del PHP'>Disponible la versión 5.2.2 del PHP</a></li><li><a href='http://www.phpbsd.net/2007/02/15/disponible-la-version-445-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 4.4.5 del PHP'>Disponible la versión 4.4.5 del PHP</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Hace poco más de dos semanas se liberó <a target="_blank" title="PHP: PHP 5.2.9 Release Announcement" href="http://www.php.net/releases/5_2_9.php">la versión 5.2.9 del PHP</a>. La que probablemente será la última release de la rama 5.2.x... o al menos eso esperamos muchos como yo que andamos impacientes por la llegada de la 5.3 estable con todas sus novedades.</p>
<p>Como siempre se corrigen un buen número de bugs de seguridad (algunos relacionados con las extensiones <a target="_blank" title="PHP: libxml - Manual" href="http://es.php.net/manual/es/book.libxml.php">libxml</a> y <a target="_blank" title="PHP: XML Parser - Manual" href="http://es.php.net/manual/es/book.xml.php">XML</a>) y se añaden algunas mejoras menores... por ejemplo, como curiosidad, ahora a la función <a target="_blank" title="PHP: array_unique - Manual" href="http://es.php.net/manual/en/function.array-unique.php">array_unique</a> le podemos pasar el tipo de comparación a realizar para descartar ítems. En el <a href="http://www.php.net/ChangeLog-5.php#5.2.9">changelog</a> están detallados todos los cambios.</p>
<p>En mi opinión siempre es muy recomendable <strong>actualizar los servidores a la última versión</strong>, si queremos podemos esperar unas semanas para ver como reacciona internet a una nueva release pero se ha de tener en cuenta que lleva meses de <a target="_blank" title="PHP-QAT: Quality Assurance Team" href="http://qa.php.net/">test por parte de la comunidad</a> (algo en lo que, por cierto, cualquiera puede participar). Me parece sorprendente todavía encontrar sistemas/proyectos corriendo PHP 4.x o incluso 5.0.x / 5.1.x. (aunque PHP 5 sigue sonando a nuevo se ha de pensar que la <a href="http://www.php.net/ChangeLog-5.php#5.0.0">versión 5.0</a> salió el Julio del 2004 y la <a href="http://www.php.net/ChangeLog-5.php#5.1.0">5.1</a> el Noviembre del 2005).</p>
<p>A pesar de que muchas distribuciones Linux (no tanto los *BSD) incluyen como estables versiones desfasadas del PHP si uno tiene un servidor web (LAMP) creo que es recomendable conseguir tener la combinación Apache+MySQL+PHP lo más actualizada posible. Es la forma de <strong>aprovechar las nuevas funcionalidades existentes</strong> (sobretodo en el caso del PHP dado que es un lenguaje de programación :) y también es la forma de <strong>encontrar bugs</strong> y hacer que estos proyectos open source evolucionen correctamente.</p>
<p>PS: Por suerte <a title="HOSTGATOR WEB HOSTING - cPanel, Reseller, and Dedicated Website Hosting" target="_blank" href="http://secure.hostgator.com/cgi-bin/affiliates/clickthru.cgi?id=ojimenez">HostGator</a> hace tiempo que se pusieron las pilas y nos mantienen bastante actualizados (este blog corre sobre PHP 5.2.8).</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/01/disponible-la-version-523-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 5.2.3 del PHP'>Disponible la versión 5.2.3 del PHP</a></li><li><a href='http://www.phpbsd.net/2007/05/04/disponible-la-version-522-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 5.2.2 del PHP'>Disponible la versión 5.2.2 del PHP</a></li><li><a href='http://www.phpbsd.net/2007/02/15/disponible-la-version-445-del-php/' rel='bookmark' title='Permanent Link: Disponible la versión 4.4.5 del PHP'>Disponible la versión 4.4.5 del PHP</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/RzcsKdnfeaheuqmtDZkPIkWtXxE/0/da"><img src="http://feedads.g.doubleclick.net/~a/RzcsKdnfeaheuqmtDZkPIkWtXxE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RzcsKdnfeaheuqmtDZkPIkWtXxE/1/da"><img src="http://feedads.g.doubleclick.net/~a/RzcsKdnfeaheuqmtDZkPIkWtXxE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/xVZw1BMSMfQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/03/16/disponible-la-version-529-del-php-actualizando-que-es-gerundio/feed/</wfw:commentRss>
		<slash:comments>0</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/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><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/2008/04/11/optimizacion-de-aplicaciones-php-server-side/' rel='bookmark' title='Permanent Link: Optimización de aplicaciones PHP (server side)'>Optimización de aplicaciones PHP (server side)</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/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><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/2008/04/11/optimizacion-de-aplicaciones-php-server-side/' rel='bookmark' title='Permanent Link: Optimización de aplicaciones PHP (server side)'>Optimización de aplicaciones PHP (server side)</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/kVddz0BUHhXNpF7Pb5yZJtPxTro/0/da"><img src="http://feedads.g.doubleclick.net/~a/kVddz0BUHhXNpF7Pb5yZJtPxTro/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/kVddz0BUHhXNpF7Pb5yZJtPxTro/1/da"><img src="http://feedads.g.doubleclick.net/~a/kVddz0BUHhXNpF7Pb5yZJtPxTro/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/cGBxDCMytJA" height="1" width="1"/>]]></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>Administrar servidores web vía SSH sin contraseña</title>
		<link>http://www.phpbsd.net/2009/02/22/administrar-servidores-web-via-ssh-sin-contrasena/</link>
		<comments>http://www.phpbsd.net/2009/02/22/administrar-servidores-web-via-ssh-sin-contrasena/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 15:06:45 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=113</guid>
		<description><![CDATA[Desde hace muchos años y por mucho que evolucione el desarrollo web e internet el SSH, al igual que el CVS/SVN, sigue siendo una de las herramientas más usada para administrar aplicaciones web y sus respectivos servidores.
Una de las funciones que para mi resulta más útil del SSH a parte de lo evidente que es [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/13/instalar-clases-pear-en-un-hosting-compartido/' rel='bookmark' title='Permanent Link: Instalar clases PEAR en un hosting compartido'>Instalar clases PEAR en un hosting compartido</a></li><li><a href='http://www.phpbsd.net/2007/04/26/instalacion-del-apc-alternative-php-cache-sobre-freebsd/' rel='bookmark' title='Permanent Link: Instalación del APC (Alternative PHP Cache) sobre FreeBSD'>Instalación del APC (Alternative PHP Cache) sobre FreeBSD</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Desde hace muchos años y por mucho que evolucione el desarrollo web e internet el <a target="_blank" title="Secure Shell - Wikipedia, la enciclopedia libre" href="http://es.wikipedia.org/wiki/SSH">SSH</a>, al igual que el CVS/SVN, sigue siendo una de las herramientas más usada para administrar aplicaciones web y sus respectivos servidores.</p>
<p>Una de las funciones que para mi resulta más útil del SSH a parte de lo evidente que es poder iniciar sesión en nuestro servidor, es poder <strong>ejecutar comandos remotamente</strong> y así fácilmente poder escribir scripts (PHP y/o de shell) que interactúen entre máquinas. Por ejemplo para subir la última release de nuestra web a producción, borrar cachés de disco, reiniciar algún que otro Apache que se ha quedado tonto, etc.</p>
<p>Algo que resulta muy útil en estos casos es poder usar SSH entre distintas máquinas <strong>sin necesidad de ir introduciendo la contraseña</strong>. Para conseguirlo, y entendiendo bien el riesgo de seguridad que puede suponer, hemos de seguir los siguientes pasos:</p>
<p><strong>[1]</strong> Iniciamos sesión en el servidor A con el usuario que queremos dejar libre de contraseña y ejecutamos:</p>
<p><code>$ ssh-keygen -t rsa</code></p>
<p><strong>[2]</strong> Añadimos la clave publica generada (<em>.ssh/id_rsa.pub</em>) al archivo de claves aceptadas del servidor B, por ejemplo vía SCP:</p>
<p><code>$ scp .ssh/id_rsa.pub usuario@B:.ssh/authorized_keys</code></p>
<p>Se ha de tener en cuenta que el anterior comando sobreescribe el archivo y podemos tener más de una clave aceptada en <em>authorized_keys</em>.</p>
<p><strong>[3]</strong> <strong>Listos!</strong> Desde el servidor A ya podemos entrar en B sin contraseña. Si estamos logueados con el usuario correcto sólo será necesario ejecutar:</p>
<p><code>$ ssh B</code></p>
<p>Al programar en PHP por supuesto que siempre tienes la alternativa de realizarlo todo vía peticiones HTTP aunque para determinadas tareas y situaciones los scripts CLI son una gran alternativa (y los puedes hacer muy chulos usando <a target="_blank" title="PHP: Ncurses - Manual" href="http://es.php.net/ncurses">ncurses</a>).</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/06/13/instalar-clases-pear-en-un-hosting-compartido/' rel='bookmark' title='Permanent Link: Instalar clases PEAR en un hosting compartido'>Instalar clases PEAR en un hosting compartido</a></li><li><a href='http://www.phpbsd.net/2007/04/26/instalacion-del-apc-alternative-php-cache-sobre-freebsd/' rel='bookmark' title='Permanent Link: Instalación del APC (Alternative PHP Cache) sobre FreeBSD'>Instalación del APC (Alternative PHP Cache) sobre FreeBSD</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/ZkosYe4kkbM6n_S3MVuOW5OssP8/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZkosYe4kkbM6n_S3MVuOW5OssP8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZkosYe4kkbM6n_S3MVuOW5OssP8/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZkosYe4kkbM6n_S3MVuOW5OssP8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/52yXJNQZd7Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/02/22/administrar-servidores-web-via-ssh-sin-contrasena/feed/</wfw:commentRss>
		<slash:comments>2</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/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</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></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-17">
<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/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</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></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/WORFad77B99g_ZzxsbA9RIMEDhU/0/da"><img src="http://feedads.g.doubleclick.net/~a/WORFad77B99g_ZzxsbA9RIMEDhU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WORFad77B99g_ZzxsbA9RIMEDhU/1/da"><img src="http://feedads.g.doubleclick.net/~a/WORFad77B99g_ZzxsbA9RIMEDhU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/8z-h82xduSo" height="1" width="1"/>]]></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>PHPBSD.net actualizado!</title>
		<link>http://www.phpbsd.net/2009/02/18/phpbsdnet-actualizado/</link>
		<comments>http://www.phpbsd.net/2009/02/18/phpbsdnet-actualizado/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 21:21:57 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[phpbsd]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/?p=96</guid>
		<description><![CDATA[Por fin me he sacado de encima una de las tareas pendientes más pesada que me había propuesto para este año: actualizar este blog a la última versión de WP, la 2.7.1.
Ahora que ya está hecho (y parece que todo funciona) confieso que he migrado desde una versión de WordPress 2.0.4 con más de 20 [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/02/02/phpbsdnet-se-une-a-planet-webdev/' rel='bookmark' title='Permanent Link: PHPBSD.net se une a Planet Webdev'>PHPBSD.net se une a Planet Webdev</a></li><li><a href='http://www.phpbsd.net/2006/11/19/phpbsdnet-pasa-a-formar-parte-de-la-red-smallsquidcom/' rel='bookmark' title='Permanent Link: PHPBSD.net pasa a formar parte de la red SmallSquid.com'>PHPBSD.net pasa a formar parte de la red SmallSquid.com</a></li><li><a href='http://www.phpbsd.net/2008/04/10/se-acabaron-las-vacaciones/' rel='bookmark' title='Permanent Link: Se acabaron las &#8220;vacaciones&#8221;'>Se acabaron las &#8220;vacaciones&#8221;</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Por fin me he sacado de encima una de las tareas pendientes más pesada que me había propuesto para este año: <strong>actualizar este blog a la última versión de WP</strong>, la 2.7.1.</p>
<p>Ahora que ya está hecho (y parece que todo funciona) confieso que he migrado desde una versión de WordPress 2.0.4 con más de 20 plugins, modificaciones por todos sitios, etc. en definitiva ha sido todo un mini-proyecto por mi culpa, ya sabía yo que este día llegaría y que con la cantidad de modificaciones que le había hecho al anterior WP fliparía  :)</p>
<p>Decir que ha sido un borrón y cuenta nueva sólo conservando la base de datos, en un siguiente post ya contaré los detalles, pero por la parte que le toca a WP el proceso ha sido bastante limpio y sencillo a excepción de algún problema de codificación, ahora WP trabaja con UTF-8 por defecto.</p>
<p>PS: Todo sea para intentar darle algo más de vida a este blog.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/02/02/phpbsdnet-se-une-a-planet-webdev/' rel='bookmark' title='Permanent Link: PHPBSD.net se une a Planet Webdev'>PHPBSD.net se une a Planet Webdev</a></li><li><a href='http://www.phpbsd.net/2006/11/19/phpbsdnet-pasa-a-formar-parte-de-la-red-smallsquidcom/' rel='bookmark' title='Permanent Link: PHPBSD.net pasa a formar parte de la red SmallSquid.com'>PHPBSD.net pasa a formar parte de la red SmallSquid.com</a></li><li><a href='http://www.phpbsd.net/2008/04/10/se-acabaron-las-vacaciones/' rel='bookmark' title='Permanent Link: Se acabaron las &#8220;vacaciones&#8221;'>Se acabaron las &#8220;vacaciones&#8221;</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/chd-iV19lv3sO4JvdUZn2bMt23Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/chd-iV19lv3sO4JvdUZn2bMt23Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/chd-iV19lv3sO4JvdUZn2bMt23Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/chd-iV19lv3sO4JvdUZn2bMt23Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/CUurEeYSoq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2009/02/18/phpbsdnet-actualizado/feed/</wfw:commentRss>
		<slash:comments>2</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/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><li><a href='http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/' rel='bookmark' title='Permanent Link: PHPBarcelona.org, el nuevo portal para el Grupo PHP'>PHPBarcelona.org, el nuevo portal para el Grupo PHP</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/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><li><a href='http://www.phpbsd.net/2008/01/18/phpbarcelonaorg-el-nuevo-portal-para-el-grupo-php/' rel='bookmark' title='Permanent Link: PHPBarcelona.org, el nuevo portal para el Grupo PHP'>PHPBarcelona.org, el nuevo portal para el Grupo PHP</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/Lxcsiw5yRFhsEW9uMnx8LQw1HPc/0/da"><img src="http://feedads.g.doubleclick.net/~a/Lxcsiw5yRFhsEW9uMnx8LQw1HPc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Lxcsiw5yRFhsEW9uMnx8LQw1HPc/1/da"><img src="http://feedads.g.doubleclick.net/~a/Lxcsiw5yRFhsEW9uMnx8LQw1HPc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/bFlJ-xgs4no" height="1" width="1"/>]]></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/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><li><a href='http://www.phpbsd.net/2009/02/25/nueva-edicion-de-la-php-uk-conference/' rel='bookmark' title='Permanent Link: Nueva edición de la PHP UK Conference'>Nueva edición de la PHP UK Conference</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/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><li><a href='http://www.phpbsd.net/2009/02/25/nueva-edicion-de-la-php-uk-conference/' rel='bookmark' title='Permanent Link: Nueva edición de la PHP UK Conference'>Nueva edición de la PHP UK Conference</a></li></ul></p>
<p><a href="http://feedads.g.doubleclick.net/~a/l4flhHNPIMT2xcLQCg_1Bw3X82g/0/da"><img src="http://feedads.g.doubleclick.net/~a/l4flhHNPIMT2xcLQCg_1Bw3X82g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/l4flhHNPIMT2xcLQCg_1Bw3X82g/1/da"><img src="http://feedads.g.doubleclick.net/~a/l4flhHNPIMT2xcLQCg_1Bw3X82g/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/t2xvyfD96zY" height="1" width="1"/>]]></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:Se acabaron las &#8220;vacaciones&#8221;Como interactuar con Google desde PHP usando Zend FrameworkPrimera edición de la [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2008/04/10/se-acabaron-las-vacaciones/' rel='bookmark' title='Permanent Link: Se acabaron las &#8220;vacaciones&#8221;'>Se acabaron las &#8220;vacaciones&#8221;</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/2008/04/10/se-acabaron-las-vacaciones/' rel='bookmark' title='Permanent Link: Se acabaron las &#8220;vacaciones&#8221;'>Se acabaron las &#8220;vacaciones&#8221;</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>
<p><a href="http://feedads.g.doubleclick.net/~a/ShYYT0JW00PWWO5GI_SKIHblGpg/0/da"><img src="http://feedads.g.doubleclick.net/~a/ShYYT0JW00PWWO5GI_SKIHblGpg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ShYYT0JW00PWWO5GI_SKIHblGpg/1/da"><img src="http://feedads.g.doubleclick.net/~a/ShYYT0JW00PWWO5GI_SKIHblGpg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/phpbsd/~4/MnZ0Nu-xHnk" height="1" width="1"/>]]></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>
	</channel>
</rss><!-- Dynamic page generated in 6.410 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-04 16:00:32 -->
