<?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>Pablasso &#187; CakePHP</title>
	<atom:link href="http://www.pablasso.com/category/cakephp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pablasso.com</link>
	<description>Sobre desarrollo de software y ñoñadas</description>
	<lastBuildDate>Sun, 09 Oct 2011 19:25:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bundle de CakePHP para Textmate</title>
		<link>http://www.pablasso.com/2009/02/24/bundle-de-cakephp-para-textmate</link>
		<comments>http://www.pablasso.com/2009/02/24/bundle-de-cakephp-para-textmate#comments</comments>
		<pubDate>Tue, 24 Feb 2009 17:02:50 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Textmate]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/?p=1232</guid>
		<description><![CDATA[Si utilizas el buen Textmate y CakePHP, te agradará utilizar bundles (auto-completar, snippets) específicos para este framework.
Matthew Harris inicio este proyecto y sigue siendo actualizados por otros usuarios. Todo lo que tienes que hacer es bajarlo con subversion.

cd ~/Library/Application\ Support/TextMate/Bundles
$ svn co http://macromates.com/svn/Bundles/trunk/Review/Bundles/PHP\ Cake.tmbundle

Si no existe la carpeta de Bundles anteriormente, solo créala. Reinicias Textmate [...]]]></description>
			<content:encoded><![CDATA[<p>Si utilizas el buen <a href="http://macromates.com/">Textmate</a> y <a href="http://cakephp.org/">CakePHP</a>, te agradará utilizar bundles (auto-completar, snippets) específicos para este framework.</p>
<p>Matthew Harris <a href="http://bakery.cakephp.org/articles/view/cakephp-for-textmate">inicio este proyecto</a> y sigue siendo actualizados por otros usuarios. Todo lo que tienes que hacer es bajarlo con subversion.</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Application\ Support<span style="color: #000000; font-weight: bold;">/</span>TextMate<span style="color: #000000; font-weight: bold;">/</span>Bundles
$ svn <span style="color: #c20cb9; font-weight: bold;">co</span> http:<span style="color: #000000; font-weight: bold;">//</span>macromates.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>Bundles<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">/</span>Review<span style="color: #000000; font-weight: bold;">/</span>Bundles<span style="color: #000000; font-weight: bold;">/</span>PHP\ Cake.tmbundle</pre></div></div>

<p>Si no existe la carpeta de Bundles anteriormente, solo créala. Reinicias Textmate y listo.</p>
<p><img src="http://www.pablasso.com/wp-content/uploads/2009/02/cakephp_bundle.png" alt="Los snippets son de dioses" title="Los snippets son de dioses" width="699" height="452" class="aligncenter size-full wp-image-1244" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2009/02/24/bundle-de-cakephp-para-textmate/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Depura código de PHP con Komodo IDE y Xdebug</title>
		<link>http://www.pablasso.com/2009/01/02/depura-codigo-de-php-con-komodo-ide-y-xdebug</link>
		<comments>http://www.pablasso.com/2009/01/02/depura-codigo-de-php-con-komodo-ide-y-xdebug#comments</comments>
		<pubDate>Fri, 02 Jan 2009 07:13:59 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[komodo ide]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/?p=663</guid>
		<description><![CDATA[Tengo cerca de dos años utilizando Komodo Edit, la versión libre de Komodo IDE, para programar aplicaciones web y estoy bastante feliz con el. Cubre mis necesidades mínimas como tener un buen coloreado de código, autocompletado, marcadores, snippets y ser agradable a la vista.
Ahora (gracias a Hunk) comencé a utilizar Komodo IDE 5 que tiene [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo cerca de dos años utilizando <a href="http://www.activestate.com/komodo_edit/">Komodo Edit</a>, la versión libre de <a href="http://www.activestate.com/komodo/">Komodo IDE</a>, para programar aplicaciones web y estoy bastante feliz con el. Cubre mis necesidades mínimas como tener un buen coloreado de código, autocompletado, marcadores, snippets y ser agradable a la vista.</p>
<p>Ahora (gracias a <a href="http://hunk.com.mx/">Hunk</a>) comencé a utilizar Komodo IDE 5 que tiene muchas características importantes (en serio, <a href="http://www.activestate.com/komodo/features/">muchas</a>), pero entre ellas destaca la posibilidad de integrar un depurador completo (breakpoints, watchers, etc) que se integra perfectamente con <a href="http://www.xdebug.org">Xdebug</a>.</p>
<h3>Otras opciones</h3>
<p>Esto no es nada nuevo claro, he probado otras opciones como <a href="http://2bits.com/articles/using-vim-and-xdebug-dbgp-for-debugging-drupal-or-any-php-application.html">Vim + Xdebug</a>, <a href="http://www.eclipse.org/pdt/">PDT</a> (Eclipse). Con Vim la integración no se siente natural y ademas el nerd dentro de mi no es suficientemente bueno para recordar shortcuts que no utilizo continuamente.</p>
<p>PDT no me gusta porque esta basado en <a href="http://www.eclipse.org">Eclipse</a>, contra el que no tengo nada en contra, pero es demasiado generalista y Java nunca se ha distinguido por su ligereza. <a href="http://www.zend.com/en/products/studio/">Zend Studio</a> es el IDE oficial de los creadores de PHP, pero con el puro precio no quiero ni mirarlo, no lo he probado en años y ahora parece que se mudaron también a Eclipse.</p>
<h3>¿Como funciona?</h3>
<p>La cosa es así: Xdebug es una extensión de PHP que le da la habilidad de proveer muchos mas datos para depuración, esta extensión (por medio de «depuración por remoto») se comunicará directamente con Komodo, quien crea un proceso que espera por datos todo el tiempo.</p>
<p>Tu puedes usar tu aplicación en tu navegador favorito y Komodo sabrá cuando te has topado con un breakpoint, inmediatamente iniciará una sesión de depuración y avisará por ello.</p>
<h3>Configurando Komodo IDE con Xdebug</h3>
<p>Configurar es muy sencillo (en cualquier sistema operativo), si tienes Ubuntu la instalación de Xdebug es una simple linea.</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">sudo</span> aptitude <span style="color: #c20cb9; font-weight: bold;">install</span> php5-xdebug</pre></div></div>

<p>Ubuntu habrá creado un archivo de configuración solo para Xdebug en la ruta <em>/etc/php5/apache2/conf.d/xdebug.ini</em> (si tu sistema operativo no separa las configuraciones lo meterás directo al <em>php.ini</em>), que sera cargado la próxima vez que reinicies tu servidor web.</p>
<p>En este archivo vamos a habilitar depuración por remoto agregando los siguientes parámetros:</p>

<div class="wp_syntax"><div class="code"><pre class="bash">xdebug.<span style="color: #007800;">remote_enable=</span><span style="color: #000000;">1</span>
xdebug.<span style="color: #007800;">remote_handler=</span>dbgp
xdebug.<span style="color: #007800;">remote_mode=</span>req
xdebug.<span style="color: #007800;">remote_host=</span><span style="color: #000000;">127.0</span><span style="color: #000000;">.0</span><span style="color: #000000;">.1</span>
xdebug.<span style="color: #007800;">remote_port=</span><span style="color: #000000;">9000</span></pre></div></div>

<p>Existe un parámetro llamado <em>xdebug.idekey</em> al que debes de poner atención si varias personas comparten el mismo servidor web. El parámetro <em>zend_extension</em> Ubuntu ya lo debió haber agregado.</p>
<p>El parámetro <em>xdebug.remote_port</em> manda los datos por dicho puerto a tu IDE. Para decirle a Komodo que utilice ese puerto tienes que ir a «Preferences -> Debugger -> Connection» y agregarlo manualmente. Asegúrate de aprobar también la opción de «Debug -> Listen for Debugging Connections» para que levante el proceso que espere por datos.</p>
<p>Reinicia tu servidor web para que cargue la configuración de Xdebug y listo.</p>
<h3>¡A probarlo!</h3>
<p>Para probar solo tienes que agregar este parámetro en la URL:</p>

<div class="wp_syntax"><div class="code"><pre class="bash">?<span style="color: #007800;">XDEBUG_SESSION_START=</span><span style="color: #000000;">1</span></pre></div></div>

<p>Aquí por ejemplo coloque un breakpoint en una aplicación hecha con <a href="http://cakephp.org/">CakePHP</a> (que tiene bastantes capas tan solo contando el framework) y al probar con Firefox, Komodo abrió automáticamente la sesión de debuggeo.</p>
<p><img src="http://www.pablasso.com/wp-content/uploads/2009/01/url_debug.png" alt="URL con el parametro adicional" title="URL con el parametro adicional" width="489" height="28" class="aligncenter size-full wp-image-667" /></p>
<p><img src="http://www.pablasso.com/wp-content/uploads/2009/01/komodo_debug.png" alt="Komodo depurando" title="Komodo depurando" width="658" height="516" class="aligncenter size-full wp-image-668" /></p>
<p>Tremendo no tener que depender de imprimir a pantalla suciamente cuando se necesita depurar algo complicado :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2009/01/02/depura-codigo-de-php-con-komodo-ide-y-xdebug/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CakePHP 1.2 lanzado</title>
		<link>http://www.pablasso.com/2008/12/26/cakephp-12-lanzado</link>
		<comments>http://www.pablasso.com/2008/12/26/cakephp-12-lanzado#comments</comments>
		<pubDate>Fri, 26 Dec 2008 12:49:22 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/?p=593</guid>
		<description><![CDATA[Después de no se cuantos meses de desarrollo hace unas horas CakePHP 1.2 llego a su fase estable, descargalo antes de que se enfrie!
]]></description>
			<content:encoded><![CDATA[<p>Después de no se cuantos meses de desarrollo hace unas horas <a href="http://cakephp.org/">CakePHP</a> 1.2 <a href="http://bakery.cakephp.org/articles/view/the-gift-of-1-2-final">llego a su fase estable</a>, <a href="http://cakeforge.org/frs/?group_id=23&#038;release_id=433">descargalo</a> antes de que se enfrie!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2008/12/26/cakephp-12-lanzado/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elements en Helpers de CakePHP</title>
		<link>http://www.pablasso.com/2008/04/19/elements-en-helpers-de-cakephp</link>
		<comments>http://www.pablasso.com/2008/04/19/elements-en-helpers-de-cakephp#comments</comments>
		<pubDate>Sat, 19 Apr 2008 16:11:10 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2008/04/19/elements-en-helpers-de-cakephp</guid>
		<description><![CDATA[Tanto como no se debe de usar un Model dentro de un Component, tampoco se debe de usar un Element dentro de un Helper, aun así, si tienes una situación especial donde debes de hacerlo, lo puedes lograr de la siguiente manera.

1
2
$vista = ClassRegistry::getObject&#40;'view'&#41;;
$vista-&#62;renderElement&#40;'nombre_elemento'&#41;;

CakePHP te pone las reglas (y para tu propia sanidad, deberías de [...]]]></description>
			<content:encoded><![CDATA[<p>Tanto como no se debe de usar un Model dentro de un Component, tampoco se debe de usar un Element dentro de un Helper, aun así, si tienes una situación especial donde debes de hacerlo, lo puedes lograr de la siguiente manera.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php"><span style="color: #ff0000">$vista</span> <span style="color: #66cc66;">=</span> ClassRegistry<span style="color: #66cc66;">::</span><span style="color: #006600;">getObject</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'view'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #ff0000">$vista</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">renderElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'nombre_elemento'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>CakePHP te pone las reglas (y para tu propia sanidad, deberías de seguirlas), pero no te limita a ellas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2008/04/19/elements-en-helpers-de-cakephp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dolores de cabeza con los espacios blancos</title>
		<link>http://www.pablasso.com/2008/04/01/dolores-de-cabeza-con-los-espacios-blancos</link>
		<comments>http://www.pablasso.com/2008/04/01/dolores-de-cabeza-con-los-espacios-blancos#comments</comments>
		<pubDate>Tue, 01 Apr 2008 22:04:04 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2008/04/01/dolores-de-cabeza-con-los-espacios-blancos</guid>
		<description><![CDATA[En CakePHP, una situación muy común es que se te vaya una linea en blanco después de que has cerrado los tags de PHP en prácticamente cualquier archivo que este incluido en el framework, ya sea un helper, view, controller, component.. lo que sea.
Normalmente esto no trae problemas, pero cuando necesitas que lo que imprimes [...]]]></description>
			<content:encoded><![CDATA[<p>En CakePHP, una situación muy común es que se te vaya una linea en blanco después de que has cerrado los tags de PHP en prácticamente cualquier archivo que este incluido en el framework, ya sea un helper, view, controller, component.. lo que sea.</p>
<p>Normalmente esto no trae problemas, pero cuando necesitas que lo que imprimes en pantalla sea absolutamente lo primero, como las declaraciones de un feed XML o un header para imprimir una imagen, si que afecta y es un dolor de cabeza buscar de archivo por archivo donde esta el espacio en blanco si tu proyecto a crecido demasiado.</p>
<p>Por <a href="http://groups.google.com/group/cake-php/browse_thread/thread/2db873356d6c7611/fd0cef3068de456d">ahi</a> en la lista de cake, alguien público una expresión regular con <a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?sed">sed</a> que recursivamente busca por cualquier archivo de PHP con lineas vacías al final y las elimina:</p>
<blockquote><p>find -name &#8220;*.php&#8221; | xargs sed -i -e :a -e &#8216;/^\n*$/{$d;N;ba&#8217; -e &#8216;}&#8217; </p></blockquote>
<p>Recomendaría que solo la utilizaras si tu código esta en un repositorio, para que te des cuenta de cuales archivos a modificado y donde exactamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2008/04/01/dolores-de-cabeza-con-los-espacios-blancos/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Usando funciones de MySQL en CakePHP</title>
		<link>http://www.pablasso.com/2008/03/11/usando-funciones-de-mysql-en-cakephp</link>
		<comments>http://www.pablasso.com/2008/03/11/usando-funciones-de-mysql-en-cakephp#comments</comments>
		<pubDate>Tue, 11 Mar 2008 23:56:49 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2008/03/11/usando-funciones-de-mysql-en-cakephp</guid>
		<description><![CDATA[Algo que me atraso en la madrugada era que CakePHP escapa todas las condicionales que le mandas en una consulta SQL, y si la condicional de casualidad esta formada con una funcion de MySQL, esta obviamente no se ejecuta.
Por ejemplo, esto no funcionara: (busca que el campo created sea mas reciente que hace 1 día)

1
2
3
4
5
$conditions [...]]]></description>
			<content:encoded><![CDATA[<p>Algo que me atraso en la madrugada era que CakePHP escapa todas las condicionales que le mandas en una consulta SQL, y si la condicional de casualidad esta formada con una funcion de MySQL, esta obviamente no se ejecuta.</p>
<p>Por ejemplo, esto no funcionara: <small>(busca que el campo <em>created</em> sea mas reciente que hace 1 día)</small></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php"><span style="color: #ff0000">$conditions</span> <span style="color: #66cc66;">=</span> <span style="color: #000066;">array</span>
    <span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">&quot;created&quot;</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #ff0000;">&quot;&gt; date_sub( curdate(), interval 1 day)&quot;</span>
    <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">Model</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">findAll</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000">$conditions</span><span style="color: #66cc66;">,</span> <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;depart_date ASC&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Para evitar esto CakePHP implementa un operador mágico <em>&#8220;-!&#8221;</em> que le indica no escapar esa sentencia y nuestra consulta se ejecute como pretendemos.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php"><span style="color: #ff0000">$conditions</span> <span style="color: #66cc66;">=</span> <span style="color: #000066;">array</span>
    <span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">&quot;created&quot;</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #ff0000;">&quot;&gt; -!date_sub( curdate(), interval 1 day)&quot;</span>
    <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">Model</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">findAll</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000">$conditions</span><span style="color: #66cc66;">,</span> <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;depart_date ASC&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Voilà!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2008/03/11/usando-funciones-de-mysql-en-cakephp/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Helpers dentro de controllers en CakePHP</title>
		<link>http://www.pablasso.com/2007/08/09/helpers-dentro-de-controllers-en-cakephp</link>
		<comments>http://www.pablasso.com/2007/08/09/helpers-dentro-de-controllers-en-cakephp#comments</comments>
		<pubDate>Thu, 09 Aug 2007 15:24:18 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2007/08/09/helpers-dentro-de-controllers-en-cakephp</guid>
		<description><![CDATA[Esto es cochino, sucio y hay 99% de posibilidad de que si necesitas hacer esto, estes en un error de conceptos y lo que intentes hacer se pueda hacer mejor de otra forma.
Los Helpers fueron pensados para ser usados dentro de las Vistas. Punto.
Aún asi no deja de ser interesante el saber como utilizarlos dentro [...]]]></description>
			<content:encoded><![CDATA[<p>Esto es cochino, sucio y hay 99% de posibilidad de que si necesitas hacer esto, estes en un error de conceptos y lo que intentes hacer se pueda hacer mejor de otra forma.</p>
<p>Los Helpers fueron pensados para ser usados dentro de las Vistas. Punto.</p>
<p>Aún asi no deja de ser interesante el saber como utilizarlos dentro de un Controller, quien sabe, talvez algún día te saque de algún apuro.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">class</span> UsersController <span style="color: #000000; font-weight: bold;">extends</span> AppController <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        loadHelper<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Html'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #ff0000">$html</span> <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HtmlHelper<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        debug<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$html</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">link</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Un buen link'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'http://cakephp.org'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Vía | <a href="http://cakebaker.42dh.com/2007/08/09/how-to-use-a-helper-in-a-controller/">CakeBaker</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2007/08/09/helpers-dentro-de-controllers-en-cakephp/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>El Ciclo de Vida en CakePHP</title>
		<link>http://www.pablasso.com/2007/06/15/el-ciclo-de-vida-en-cakephp</link>
		<comments>http://www.pablasso.com/2007/06/15/el-ciclo-de-vida-en-cakephp#comments</comments>
		<pubDate>Fri, 15 Jun 2007 19:55:04 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Planeta Linux]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2007/06/15/el-ciclo-de-vida-en-cakephp</guid>
		<description><![CDATA[Brandon Parise, creó un diagrama donde podemos apreciar el ciclo de vida del script al hacer una petición a CakePHP. (clic en la imagén para verlo completo)

En la página de Brandon se ira actualizando el diagrama.
Vía &#124; Cakebaker
]]></description>
			<content:encoded><![CDATA[<p>Brandon Parise, creó un diagrama donde podemos apreciar el ciclo de vida del script al hacer una petición a CakePHP. (clic en la imagén para verlo completo)</p>
<p align="center"><a href="http://www.pablasso.com/wp-content/uploads/2007/06/lifecycle.png"><img src='http://www.pablasso.com/wp-content/uploads/2007/06/ciclo_cakephp.png' alt='Ciclo de Vida en CakePHP' /></a></center></p>
<p>En la página de Brandon se ira actualizando el <a href="http://www.cakecollab.org/lifecycle.png">diagrama</a>.</p>
<p>Vía | <a href="http://cakebaker.42dh.com/2007/06/15/what-happens-if-you-do-a-request/">Cakebaker</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2007/06/15/el-ciclo-de-vida-en-cakephp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Componente de JSON en CakePHP</title>
		<link>http://www.pablasso.com/2007/05/28/componente-de-json-en-cakephp</link>
		<comments>http://www.pablasso.com/2007/05/28/componente-de-json-en-cakephp#comments</comments>
		<pubDate>Mon, 28 May 2007 20:12:12 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2007/05/28/componente-de-json-en-cakephp</guid>
		<description><![CDATA[Un componente muy útil desarrollado Eelco Wiersma en base al paquete de PEAR Service_JSON.
Su uso es muy simple, agregar el componente en tu controlador y esta listo para encoding y decoding en JSON.

1
2
3
4
5
6
7
8
var $components = array&#40;'json'&#41;;
&#160;
$valor = array&#40;'uno', 'dos', 'tres', array&#40;'arreglo', 'multiple'&#41;&#41;;
//convertimos el arreglo a json y lo guardamos en $resultado
$resultado = $this-&#62;json-&#62;encode&#40;$valor&#41;;
&#160;
//ahora al revez.. [...]]]></description>
			<content:encoded><![CDATA[<p>Un componente muy útil desarrollado <a href="http://www.pagebakers.nl/2007/01/04/jsoncomponent-for-cakephp/">Eelco Wiersma</a> en base al paquete de PEAR <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=198">Service_JSON</a>.</p>
<p>Su uso es muy simple, agregar el componente en tu controlador y esta listo para encoding y decoding en <a href="http://www.json.org/">JSON</a>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #ff0000">$components</span> <span style="color: #66cc66;">=</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'json'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
<span style="color: #ff0000">$valor</span> <span style="color: #66cc66;">=</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'uno'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'dos'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'tres'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'arreglo'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'multiple'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #808080; font-style: italic;">//convertimos el arreglo a json y lo guardamos en $resultado</span>
<span style="color: #ff0000">$resultado</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">json</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">encode</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$valor</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">//ahora al revez.. lo pasamos de json a un objeto</span>
<span style="color: #ff0000">$resultado</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">json</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">decode</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$resultado</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Bajalo en <a href="http://cakeforge.org/snippet/detail.php?type=snippet&amp;id=163">CakeForge</a></p>
<p><strong>Actualización</strong></p>
<p>Las funciones de JSON también estan disponibles como extensiones de <a href="http://us.php.net/JSON">PECL</a> para PHP y a partir de PHP 5.2 son incluidas en los binarios por default.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2007/05/28/componente-de-json-en-cakephp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cual versión de CakePHP deberías de usar?</title>
		<link>http://www.pablasso.com/2007/05/25/cual-version-de-cakephp-deberias-de-usar</link>
		<comments>http://www.pablasso.com/2007/05/25/cual-version-de-cakephp-deberias-de-usar#comments</comments>
		<pubDate>Fri, 25 May 2007 23:34:18 +0000</pubDate>
		<dc:creator>pablasso</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.pablasso.com/2007/05/25/cual-version-de-cakephp-deberias-de-usar</guid>
		<description><![CDATA[Ahora que esta tan de &#8216;moda&#8217; la utilización de frameworks para programar cualquier cosa, y siendo PHP tan usado, mas de alguno seguro se ha topado con CakePHP.
Desde hace algunos meses sucede una extraña situación con el proyecto; esta a punto de salir una nueva versión (1.2.x.x) que sustituira a la actual (1.1.x.x) haciendo varios [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora que esta tan de &#8216;moda&#8217; la utilización de frameworks para programar cualquier cosa, y siendo PHP tan usado, mas de alguno seguro se ha topado con <a href="http://cakephp.org/">CakePHP</a>.</p>
<p>Desde hace algunos meses sucede una extraña situación con el proyecto; esta a punto de salir una nueva versión (<a href="http://cakeforge.org/frs/?group_id=23&amp;release_id=236">1.2.x.x</a>) que sustituira a la actual (<a href="http://cakeforge.org/frs/?group_id=23&amp;release_id=235">1.1.x.x</a>) haciendo varios cambios significativos en el funcionamiento del framework, el gran problema es que esta versión como bien puede salir en dias, tambien puede salir en semanas o hasta en meses.</p>
<p>Asi que si estas indeciso sobre que versión utilizar, aqui van unos pros y contras, cortesía de <a href="http://cakebaker.42dh.com/2007/05/25/which-cake-should-you-eat/">CakeBaker</a></p>
<p><strong>CakePHP 1.1.x.x</strong></p>
<blockquote><p><strong>Pros:</strong></p>
<ul>
<li> Estable</li>
<li> Documentación abundante con manuales y tutoriales</li>
</ul>
<p><strong>Contras:</strong></p>
<ul>
<li> No se sacan mejoras para esta versión, solo se corriguen bugs</li>
</ul>
</blockquote>
<p><strong>CakePHP 1.2.x.x</strong></p>
<blockquote><p><strong>Pros:</strong></p>
<ul>
<li> Muchas funcionalidades nuevas</li>
<li> El futuro de Cake</li>
</ul>
<p><strong>Contras:</strong></p>
<ul>
<li> Sin documentación (casi)</li>
<li> Es una versión Alpha, asi que puede cambiar y algunas funciones pueden no estar terminadas</li>
</ul>
</blockquote>
<p>En lo personal, pienso que es simple, los que ya tienen experiencia con Cake, deberían de usar la versión 1.2.x.x y no tendran ningún problema al adaptarse (y si lo tienen hay muchas personas a quien preguntarles en IRC o listas de correo).</p>
<p>Las personas que no lo conocen aún, deberían de usar la versión que esta documentada, que es la 1.1.x.x.</p>
<p>Una experiencia con un modelo del que estas aprendiendo y que no tiene documentación, puede ser frustrante.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pablasso.com/2007/05/25/cual-version-de-cakephp-deberias-de-usar/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

