30 Consejos para trabajar en symfony

Investigando, encontré una presentación de  Nicolas Perriault en donde, basado en su experiencia, da 30 consejos a tener en cuenta a la hora de desarrollar en symfony. Como el mismo lo dice, son practicas discutibles lo que se busca con esto es mejorar la comunicación entre desarrolladores a través de la normalización y mejorar de la seguridad, mantenibilidad, portabilidad y la interoperabilidad mediante el aumento de código calidad.
Me pareció bastante interesante, por lo cual deseo compartirlas con ustedes en este post.

Tip 0: Siempre escribe “symfony”

Tip 1: Maneja la vista dentro de la vista. No manejes nunca la vista Desde el controlador o el modelo. El uso de slot puede ayudar bastante.

Tip 2: Siempre usa la protección CSRF (viene por defecto desde la versión 1.3)

Tip 3: Siempre usa redirect después de manejar datos con POST.
(Puedes mostrar mensajes flash)

*Por propósitos de seguridad.
*Por ergonomía.
*Para evitar duplicados en la base de datos.

Tip 4: Sentencias SQL, instancias de Propel Criteria o Doctrine_Query siempre en el modelo.

Tip 5: No modificar nunca el núcleo de symfony. Si quieres añadir, cambiar o quitar cosas, extiéndelo (mediante plugins, herencia%85)

*Afinando el archivo factories.yml y la captura de eventos nativos de

Symfony puede ayudar mucho lograr este objetivo.

Tip 6: No meter etiquetas HTML dentro de PHP.

Tip 7: Si usas caché, recuerda configurarlo adecuadamente y activarlo. Además no te olvides de limpiarlo cada vez que modifiques un archivo .yml.
*Mejor: evitar el uso de caché. No es broma.
Tip 8: Usar nombres de rutas en vez de direcciones manuales en url_for, link_to y redirect.

*Además, las rutas por defecto debería estar desactivada
por defecto (al menos en apps que no funcionan en modulos

admin-generator 1.0)
Tip 9: Escribir la documentación en inglés, incluyendo los comentarios del código.

Tip 10: Utiliza las excepciones. Muestra mensajes útiles al usuario final.

Tip 11: No despliegues en producción ficheros de desarrollo (como los *_dev.php)

Tip 12: Una clase de control no debe tener más de 15 métodos, y un método no debería tener más de 30 líneas.

Tip 13: Usa siempre el mismo formato para el código (mejor usando los “symfonys coding standards”)

Tip 14: Todo lo relacionado con el usuario y su sesión debería almacenarse en sfUser.

Tip 15: Nunca serializes objetos en la sesión.

Tip 16: Personaliza las páginas de error (404, 500..).

Tip 17: No deberías usar sfContext directamente en el modelo.

* Porque la instancia de sfContext puede difierir mucho en relación con el env

utilizado (CLI, prueba,dev, prod …)
*Sería hacer que tu código fuera bastante incontrastables
* Sí, es duro.

Tip 18: Evita la creación de una clase genérica con un montón de métodos estáticos. es mejor escribir clases especializadas.

*Es como reinventar procedimiento de programación o el uso de funciones.
*Escribe clases especializadas

Tip 19: Usar sfLogger para hacer debug, apoyado de FirePHP o FireSymfony.

Tip 20: Si se usa gestor de versiones para el código (svn, cvs), nunca subas ficheros con contraseñas o rutas absolutas.

* Ejemplo típico: el archivo databases.yml
* Distribuir configuración depende de la plataforma archivos.

Tip 21: Escribe y usa las pruebas funcionales.

* Probar Funcionalmente la interfaz de usuario
(por ejemplo, 404/403/401 HTTP códigos, la seguridad y el usuario
autenticación, transacciones y formularios, etc)

Tip 22: Nunca escribas paths absolutos en el código.

* Haga su proyecto symfony portátiles.

Tip 23: No representes los objetos con su clave primaria en las URLs.

* Por razones de seguridad: PKs numéricos son fácilmente
adivinar, mientras que los slugs no lo son.
* Para la usabilidad y SEO URL:
es más sexy /article/symfony-rulez.html
que /article/123.html

Tip 24: Todas las variables de configuración deberían definirse en app.yml.

* Puede compartir todo el proyecto (cross-
applications) ajustes poniendo app.yml
archivo de configuración dentro de la raíz o carpeta de la
proyecto.

Tip 25: Intenta no versionar las clases base creadas por symfony, ya que dificultarías el trabajo para futuras extensiones.

* Tal vez la gente va a querer ampliar o añadir
comportamientos de las clases del modelo.

Tip 26: Usa el sistema de tareas de symfony para scripts de línea de comando (como tareas de administración del proyecto)

Tip 27: Altera la petición y la respuesta mediante filtros.

Tip 28: Siempre crea ficheros README, INSTALL y CHANGELOG cuando vayas a distribuir la aplicación.

* Plugin Symfony! = Sistema Operativo.

Tip 29: Puedes reusar funcionalidad y módulos entre aplicaciones escribiendo plugins.

Tip 30: Estudia el código de otros frameworks para ver qué hace bien cada uno y usarlo.

* Puede ser que tengan buenas ideas, incluso mejor
para resolver el problema que tiene.
* Incluso los marcos escrito en otros
idiomas que PHP (Django, Rails,Primavera …)

……Para descargar el documento completo hacer click aqui……

Posted in Symfony