Hoy he tenido un gran comedero de cabeza, estoy usando una API externa a Symfony, la cual requiere un archivo de configuración, la forma mas sencilla de usarlo es copiar y editar ese archivo de configuración en la carpeta Vendor del mismo, pero como sabemos los vendor se instalan y actualizan por separado, así que eso para hacer pruebas esta genial, pero no para trabajar, así que e pensado que lo mas correcto seria almacenar ese archivo de configuración dentro de la carpeta app/config de Symfony, el problema me lo he encontrado al decirle al controlador donde estaba ese archivo.
En symfony (1) tenemos la orden: sfConfig::get('sf_app_config_dir')
Pero en Symfony2 no existe así que debemos decírselo a mano, por lo que el siguiente código podría decirse que es su equivalente; una vez sepamos como es muy sencillo, pero no hay demasiada información en la red, así que aquí os lo dejo, y espero que os resulte de gran utilidad, como a mi cuando hoy he dado con ello.
$ConfigFile = $this->get('kernel')->getRootDir() . '/config';
Mostrando entradas con la etiqueta symphony. Mostrar todas las entradas
Mostrando entradas con la etiqueta symphony. Mostrar todas las entradas
jueves, 6 de junio de 2013
sábado, 25 de mayo de 2013
Es fácil que al utilizar los fragmentos del tipo
<<<EOJ
<script type="text/javascript>
..........
..........
..........
</script>
EOJ
hagamos algo parecido
$html =<<<EOJ
<script type="text/javascript>
function loQueSea(){
..........
..........
..........
}
</script>
EOJ;
return $html;
Esto nos marcara error, puesto que no podemos tabularlo de esta manera, la siguiente linea después de la definición <<<EOJ debe estar sin tabular, por lo que el formato correcto para lo anterior seria algo así:
$html =<<<EOJ
<script type="text/javascript>
function loQueSea(){
..........
..........
..........
}
</script>
EOJ;
return $html;
<<<EOJ
<script type="text/javascript>
..........
..........
..........
</script>
EOJ
hagamos algo parecido
$html =<<<EOJ
<script type="text/javascript>
function loQueSea(){
..........
..........
..........
}
</script>
EOJ;
return $html;
Esto nos marcara error, puesto que no podemos tabularlo de esta manera, la siguiente linea después de la definición <<<EOJ debe estar sin tabular, por lo que el formato correcto para lo anterior seria algo así:
$html =<<<EOJ
<script type="text/javascript>
function loQueSea(){
..........
..........
..........
}
</script>
EOJ;
return $html;
Symfony - An exception has been thrown during the rendering of a template
Seguramente nos de este error a muchos de los que empezamos con Symfony y usamos de referencia el libro de desarrollo ágil con Symfony.
An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig".
[3/3] Twig_Error_Runtime: An exception has been thrown during the rendering of a template ("No route found for "GET Default:listaCiudades"") in "OfertaBundle:Default:portada.html.twig"
[2/3] NotFoundHttpException: No route found for "GET Default:listaCiudades"
[1/3] ResourceNotFoundException:
este error nos indica que no encuentra la vista de listaCiudades, en realidad el problema esta en que lo busca donde no debe, esta buscándolo dentro del Bundle de Oferta, y claro, esta en Ciudades....
Esto es debido a que en el libro nos viene este código:
<li>{% render "CiudadBundle:Default:listaCiudades"
with {'ciudad': ciudadSeleccionada } %}</li>
el cual debemos poner en la plantilla del frontend, pero esto no es valido para versiones de Symfony superiores a la 2.1, versión para la cual esta escrita la versión mas actual a día de hoy del libro; para versiones superiores debemos poner este otro código:
<li>{{ render (controller("CiudadBundle:Default:listaCiudades" , { 'ciudad': ciudadSeleccionada })) }}</li>
PD: el libro lo podéis encontrar en: http://symfony.es/libro/ cuesta 10€, esta en perfecto castellano, son mas de 600 paginas, y por lo general esta bien, aunque contiene algunos errores de este tipo.
PD2: este código esta probado para la versión 2.2.1 de Symfony.
sábado, 18 de mayo de 2013
Instalacion de symfony2
Instalar symfony 2 es muy sencillo, el problema es que hay mucha documentacion obsoleta en la red, y a veces cuesta encontrar la correcta
para comenzar con symfony 2 tenemos 2 opciones, descargar desde la web oficial http://symfony.com la version con vendors; o si solemos utilizar git la version sin vendors, para descargar la version con vendors, solo debemos descargar el paquete necesario y descomprimirlo en nuestra raiz del servidor
Por lo que voy a explicar como instalarlo sin Vendors; descargaremos el paquete sin ellos, actualmente el ultimo estable es: http://symfony.com/download?v=Symfony_Standard_Vendors_2.2.1.zip; despues deberemos ejecutar este comando de consola, una vez localizados en nuestro directorio raiz del servidor
php composer.phar install
y no php bin/vendors install como nos dicen en muchos otros sitios, esto dara error al descargarnos el paquete bin vacio
pero esto seguramente nos de error al no tener el composer instalado; auque tiene facil solucion, tan solo debemos entrar en https://getcomposer.org/installer
y guardar el contenido en el directorio raiz de nuestro proyecto, como instalador.php
ejecutar en la consola php instalador.php, dejaremos que termine de trabajar, y ahora si podemos usar
php composer.phar install
desoues de esperar un rato a que se descarguen todos los paquetes, ya deberemos tener preparado todo para trabajar con symfony
Por lo que voy a explicar como instalarlo sin Vendors; descargaremos el paquete sin ellos, actualmente el ultimo estable es: http://symfony.com/download?v=Symfony_Standard_Vendors_2.2.1.zip; despues deberemos ejecutar este comando de consola, una vez localizados en nuestro directorio raiz del servidor
php composer.phar install
y no php bin/vendors install como nos dicen en muchos otros sitios, esto dara error al descargarnos el paquete bin vacio
pero esto seguramente nos de error al no tener el composer instalado; auque tiene facil solucion, tan solo debemos entrar en https://getcomposer.org/installer
y guardar el contenido en el directorio raiz de nuestro proyecto, como instalador.php
ejecutar en la consola php instalador.php, dejaremos que termine de trabajar, y ahora si podemos usar
php composer.phar install
desoues de esperar un rato a que se descarguen todos los paquetes, ya deberemos tener preparado todo para trabajar con symfony
viernes, 17 de mayo de 2013
Symfony - Doctrine\ORM\Mapping\MappingException
[Doctrine\ORM\Mapping\MappingException]
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.
Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:
/*
*@ORM\Entity
*/
class Tienda{
.......
En lugar de
/**
*@ORM\Entity
*/
class Tienda{
.......
el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion
Class "Cupon\TiendaBundle\Entity\Tienda" is not valid entity or mapper super class.
Este error ocurre si tenemos mal las anotaciones de la Entidad es decir si tenemos algo al estilo:
/*
*@ORM\Entity
*/
class Tienda{
.......
En lugar de
/**
*@ORM\Entity
*/
class Tienda{
.......
el segundo asterisco de la parte superior es vital para que Doctrine lo pueda reconocer como anotacion
domingo, 12 de mayo de 2013
symfony requisitos minimos
Aunque sea una cosa basica, es bueno tener en consideracion que la version minima de php que necesita symfony es la PHP 5.3.3
martes, 7 de mayo de 2013
symfony - Instalación y primeros pasos
Genial video de las charlas de desymfony, en el que nos hacen uan pequeña introduccion, y comparacion con otros frameworks, no solo de php, si no de otros lenguajes, tambien veremios la instalacion y comienzan con una aplicacion y vemos una manera rapida de hacer con symphony el controlador, y varias paginas estaticas, todo ello casi sin codigo, y en aproximadamente una hora
Gracias a David por darmelo a conocer ;)
Gracias a David por darmelo a conocer ;)
Suscribirse a:
Entradas (Atom)