<?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>3f blog &#187; php</title>
	<atom:link href="http://blog.soluciones3f.com.ar/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.soluciones3f.com.ar</link>
	<description>Experiencias compartidas</description>
	<lastBuildDate>Tue, 01 Nov 2011 18:08:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Reflexiones y descubrimientos relacionados con mime-type, gedit y smarty</title>
		<link>http://blog.soluciones3f.com.ar/2011/02/16/reflexiones-y-descubrimientos-relacionados-con-mime-type-gedit-y-smarty/</link>
		<comments>http://blog.soluciones3f.com.ar/2011/02/16/reflexiones-y-descubrimientos-relacionados-con-mime-type-gedit-y-smarty/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 01:20:52 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[gnu linux]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[coloreo de sintaxis]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[editor de texto]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mime type]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[text editor]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=643</guid>
		<description><![CDATA[Siempre me molestó que para hacer que gedit reconozca un determinado tipo de archivos de una determinada manera, tenía que modificar archivos en el directorio /usr Particularmente lo que me molestaba tener que actualizar eran los tipos MIME que identifican un determinado archivo, con un determinado tipo y gedit como nautilus utilizan para saber como [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre me molestó que para hacer que gedit reconozca un determinado tipo de archivos de una determinada manera, tenía que modificar archivos en el directorio /usr</p>
<p>Particularmente lo que me molestaba tener que actualizar eran los tipos MIME que identifican un determinado archivo, con un determinado tipo y gedit como nautilus utilizan para saber como abrir cada archivo, de que forma colorearlo, etc. Para modificar ese directorio se necesita permisos de administrador y siempre me pareció que debería haber una forma de hacerlo desde mi cuenta de usuario limitado.</p>
<p>Hoy, que estaba trabajado con PHP, queria abrir unos archivos de Smarty que tienen extensión tpl, y que se colorearan automáticamente como html, que es el lenguaje más cercano que reconoce (o al menos de los que vienen por defecto) y decidí buscar en internet una forma de hacerlo y encontré dos páginas, por un lado el blog de c3b en un artículo titulado <a href="http://www.c3b.co.uk/?p=32">Alternative method for opening Smarty templates with HTML syntax highlighting in gedit</a> y también en la página de gnome bajo el nombre <a href="http://library.gnome.org/admin/system-admin-guide/stable/mimetypes-modifying.html.en">Modifying MIME types</a></p>
<p>Combinando el conocimiento de ambos sitios, logré que al hacer doble-click sobre un archivo tpl, se me abra automáticamente el gedit (y no firefox!) y se me coloree automáticamente la sintaxis como PHP</p>
<p>¿Cual fue el procedimiento? Fácil.</p>
<p><span id="more-643"></span>Lo primero que hice fue crear la carpeta <em>~/.local/share/mime/packages</em></p>
<p>En esa carpeta creé un archivo llamado Overrides.xml con el siguiente contenido</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version='1.0' encoding='utf-8'?&gt;
&lt;mime-info xmlns=&quot;http://www.freedesktop.org/standards/shared-mime-info&quot;&gt;
    &lt;mime-type type=&quot;application/x-php&quot;&gt;
        &lt;glob pattern=&quot;*.tpl&quot;/&gt;
    &lt;/mime-type&gt;
&lt;/mime-info&gt;
</pre>
<p>Luego ejecuté el comando <em>update-mime-database ~/.local/share/mime</em></p>
<p>La lógica detras de este procedimiento, es que en el archivo Overrides.xml puedo crear nuevas asociaciones, o modificar exisntes. En este caso en particular, se le informa al sistema que los archivos .tpl son archivos PHP, y por lo tanto lo colorea automáticamente como PHP</p>
<p>Y todo esto sin usar sudo ni una sola vez <img src='http://blog.soluciones3f.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2011/02/16/reflexiones-y-descubrimientos-relacionados-con-mime-type-gedit-y-smarty/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Upload de archivos en embed forms con Symfony 1.2</title>
		<link>http://blog.soluciones3f.com.ar/2009/04/05/upload-de-archivos-en-embed-forms-con-symfony-12/</link>
		<comments>http://blog.soluciones3f.com.ar/2009/04/05/upload-de-archivos-en-embed-forms-con-symfony-12/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 05:24:44 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sfForm]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=266</guid>
		<description><![CDATA[Realizando un proyecto usando Symfony 1.2.2 surgió la necesidad de tener un form en el cual se sube una imagen, y embebido en ese form otro form, el cual sube otro archivo.  Sin embargo al usar este formulario, resulta que el archivo que se encontraba en el formulario embebido no funcionaba correctamente. Afortunadamente, luego de [...]]]></description>
			<content:encoded><![CDATA[<p>Realizando un proyecto usando <a href="http://www.symfony-project.org/">Symfony </a>1.2.2 surgió la necesidad de tener un form en el cual se sube una imagen, y embebido en ese form otro form, el cual sube otro archivo.  Sin embargo al usar este formulario, resulta que el archivo que se encontraba en el formulario embebido no funcionaba correctamente. Afortunadamente, luego de mucha investigación encontré el motivo del problema.</p>
<p><span id="more-266"></span>Luego de probar todas las ideas que se me iban ocurriendo sin éxito, decidí ahondar un poco en el código e Symfony para ver que estaba pasando.</p>
<p>Como sabemos aquellos que llevamos un tiempo programando en <a href="http://php.net">PHP</a>, el formato del array $_FILES dista muchísimo de ser el más cómodo para trabajar, por lo tanto, symfony, cuando procesa los archivos de un formulario llama al método estático sfForm::convertFileInformation el cual tiene por objetivo convertir el array de archivos en algo más utilizable. Lamentablemente la salida de este método, cuando se tienen archivos tanto en el formulario principal como embebido no es el correcto y ocasiona el problema que estaba experimentando.</p>
<p>Cuando ya estaba dispuesto a parchear el framework decidí buscar en internet si alguien había encontrado una solución y a mi problema, y afortunadamente encontré en el <a href="http://trac.symfony-project.org/ticket/5075">Trac del proyecto Symfony</a> alguien que reportó el mismo error que yo tenía (<a href="http://trac.symfony-project.org/ticket/5075">ticket #5075</a>)  proponiendo una solución que funciona de maravillas para mi.</p>
<p>Es suficiente con llamar al sfForm::bind de la siguiente manera para que se procese correctamente el array de archivos</p>
<pre lang="php">$this->form->bind($request->getParameter('media_file'), swToolbox::convertFileInformation($request->getFiles('media_file')));</pre>
<p>De esta manera se preprocesa el array enviado pero de forma correcta, para que el resto del framework funcione. Dado que esta solución anda muy bien, y se incluye el framework 1.2.2 por default, no entiendo el motivo por el cual no fue actualizado el código de sfForm para ya contemplar esta solución.</p>
<p>En todo caso, este pequeño bug me llevó varias horas detectarlo y solucionarlo, pero resultó ser más fácil de lo que esperaba.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2009/04/05/upload-de-archivos-en-embed-forms-con-symfony-12/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cantidad de días de un mes.</title>
		<link>http://blog.soluciones3f.com.ar/2008/06/20/cantidad-de-dias-de-un-mes/</link>
		<comments>http://blog.soluciones3f.com.ar/2008/06/20/cantidad-de-dias-de-un-mes/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 19:45:39 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[Sin categoría]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=91</guid>
		<description><![CDATA[Estoy medio enojado, necesitaba algo absolutamente trivial. Como conseguir la cantidad de días que hay en un mes dado usando PHP. En mi fugaz búsqueda por google, encontré varias respuestas, todas equivocadas o increíblemente complicadas, algunas llegando a hacer un switch con la cantidad de días y una corrección por los años bisiestos. Sin embargo, [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy medio enojado, necesitaba algo absolutamente trivial. Como conseguir la cantidad de días que hay en un mes dado usando PHP.</p>
<p>En mi fugaz búsqueda por google, encontré varias respuestas, todas equivocadas o increíblemente complicadas, algunas llegando a hacer un switch con la cantidad de días y una corrección por los años bisiestos.</p>
<p>Sin embargo, una solución más adecuada es la que propongo aquí</p>
<p><code>$dias_del_mes =  date("d", mktime(0,0,0,$month+1, 0, $year));</code></p>
<p>En esa simple linea de código lo que estamos haciendo, es abusar de mktime, a sabiendas que si la parte del día es cero, lo que realmente se utiliza es el ultimo día del mes anterior. Cuyo numero es la cantidad de días total del mes.</p>
<p>Espero que las pobres almas que vengan después que yo encuentren esta solución o cualquier otra correcta antes de las demás que andan dando vueltas por ahí y obligan a hacer cosas realmente feas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2008/06/20/cantidad-de-dias-de-un-mes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Obtener el primer día de la semana en PHP</title>
		<link>http://blog.soluciones3f.com.ar/2008/03/16/obtener-el-primer-dia-de-la-semana-en-php/</link>
		<comments>http://blog.soluciones3f.com.ar/2008/03/16/obtener-el-primer-dia-de-la-semana-en-php/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 00:51:59 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[domingo]]></category>
		<category><![CDATA[fechas]]></category>
		<category><![CDATA[getdate]]></category>
		<category><![CDATA[lunes]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[semana]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/2008/03/16/obtener-el-primer-dia-de-la-semana-en-php/</guid>
		<description><![CDATA[Efectivamente hay algoritmos mejores, y un lector comentó de una función de PHP que pareciera hacer exactamente lo mismo que mi algorimo, pero obviamente es mas simple. strtotime (”last Monday”); Me encontré con esta simple necesidad el día de hoy. Como conseguir el primer día de la semana considerando que esta comienza el Lunes. Por [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Efectivamente hay algoritmos mejores, y un lector comentó de una función de PHP que pareciera hacer exactamente lo mismo que mi algorimo, pero obviamente es mas simple.</p>
<pre lang="php">strtotime (”last Monday”);</pre>
</blockquote>
<p>Me encontré con esta simple necesidad el día de hoy. Como conseguir el primer día de la semana considerando que esta comienza el Lunes. Por ejemplo, hoy es Domingo 16, entonces mi función debía retornar Lunes 10 por ser este el lunes de la semana en que esta el domingo. <em>(no necesariamente el lunes más cercano, de hecho está mas cerca el lunes 17, pero considerando que la semana comienza en lunes, este ya es de la semana siguiente)</em></p>
<p>Tal vez este lleno de lugares en internet con algoritmos mejores o iguales al mio, pero como no fue el primer resultado en una búsqueda en google, amerita hacer un pequeño post con la función.</p>
<p>El funcionamiento es básicamente, determinar que día de la semana es el que nos pasaron,  y restarle al timestamp tantos días como nos hayamos pasado del lunes.</p>
<p>O sea, si nos dan una fecha que es miércoles, restarle a esa fecha dos días. Si es Lunes, no restarle nada, y si es domingo, restarle 6 días.</p>
<pre lang="php">
<pre class="brush: php; title: ; notranslate">function getFirstDayOfWeek($date) {
    $getdate = getdate($date);

    // How many days ahead monday are we?
    switch ( $getdate['wday'] ) {
        case 0: // we are on sunday
            $days = 6;
            break;

        default: // any other day
            $days = $getdate['wday']-1;
            break;
    }

    $seconds = $days*24*60*60;
    $monday = date($getdate[0])-$seconds;

    return $monday;
}</pre>
</pre>
<p>Esta función trabaja muy bien para mis necesidades, pero si alguien necesita considerar el domingo como primer día de la semana, se puede simplificar y quedaría de la siguiente manera:</p>
<pre lang="php">
<pre lang="php">
<pre class="brush: php; title: ; notranslate">function getFirstDayOfWeek($date) {
    $getdate = getdate($date);

    // substact as many days as days ahead sunday we are
    $seconds = $getdate['wday']*24*60*60;
    $sunday = date($getdate[0])-$seconds;

    return $sunday;
}</pre>
</pre>
</pre>
<p>Espero a alguien le sea de utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2008/03/16/obtener-el-primer-dia-de-la-semana-en-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

