Google Analytics

lunes, 21 de febrero de 2011

Curso nivelatorio para tocar con la sinfónica

Buenas. Siguiendo con la historia hoy vengo a intentar volcar mis mañas de solista al querido framework y fracasar con todo el éxito posible.

Quizá se complica un poco adaptarse a la estructura y forma de funcionamiento, configuración, etc. pero vale la pena. Realmente.

Y aquí vamos. Imagino que leyeron los primeros capítulos de Practical Symfony.

Es muy recomendable colocar el framework en lib/vendor/, pero porque ?, podes ponerlo en donde quieras, pero es bueno seguir mas o menos los lineamientos del framework. Además symfony creara directorios dentro de la carpeta lib. Es más, deberías poner todas las librerias externas dentro de este directorio.

Si trabajas con SVN, es muy recomendable agregar el svn:external. Y también es recomendable el primer commit (cosa que yo no hice).

Hasta ahora solo tenemos un solo directorio en el proyecto, el cual es una librería externa ;). Ahora empieza la magia.
php lib/vendor/symfony/data/bin/symfony generate:project [NombreDelProyecto]

Veremos que genera un árbol de directorios que necesita symfony para trabajar. Esto es lo bueno con respecto a otros frameworks, empezás con solo una dependencia, vas viendo como crece el proyecto, y no tenes que andar adivinando que va en cada carpeta.

NOTA: No olvides  check_configuration,php, muy útil para saber si symfony va a correr en tu server.

Ahora podes usar ./symfony para llamadas de consola. Es el momento de generar apps, tasks, etc. y ver como genera su estructura.

Estructura
La estructura principal de un proyecto esta dada por apps, lib, plugins:
  • Plugins: extensiones que trabajan en forma independiente. Muchas veces es útil buscar un plugin que cubra una funcionalidad a crear, testear, etc.
  • Lib: Aquí están las clases pertenecientes al Modelo, Formularios, Filtros, Tareas.  Además aquí deberías agregar las clases que necesites crear.
  • Apps: (ejemplo frontend) dentro tiene módulos y librerías para uso propio. Además tiene acceso a lib y plugins del proyecto. 
También esta el directorio config en la raiz del proyecto, como así también, en apps y plugins. De esta forma permite configurar cada sección de nuestro proyecto independientemente del otro, y si así lo requiere acceder desde una app a algún dato de la configuración global.

Entornos (ENV)
Symfony permite trabajar con distintos entornos. Al principio parece una boludez, pero lo vas a necesitar. Podes generar entornos a tu antojo. no es necesario que los hagas todos de una vez. Básicamente, definís una DB para cada entorno y como se comportará cada entorno.

Una vez definidos, podrás hacer pruebas en algunos entornos. por ejemplo usé el entorno test para probar la migración de la base de datos. Pero cuidado, el modelo es común a todos los entornos, por lo que si lo regeneras es probable que algún otro entorno falle.

Configuración (Yaml)
En esto se puede ver la versatilidad de symfony, puedes configurarlo mediante PHP, XML y YaML. Quizá la primera impresión asusta pero lo mejor de lo mejor es YaML.

Configurar en PHP, es como seguir programando. Código donde no debería. Tedioso. A alguien que no sabe programar no le va ser fácil.

El XML es mas universal, sin embargo necesitas al menos conocer la sintaxis.

La ventaja de Yaml, es la simpleza, no necesitas recordar cerrar tags, y mucho menos hace falta saber cual es el api de configuración. Es simple, la llave seguida de dos puntos y el valor.

type: integer

En caso de poseer proliedades en una nueva linea con tabulación de espacios.
id:
   type: integer


 Es todo por hoy.

No hay comentarios:

Publicar un comentario