Usuario:ManuelRomero/DAW/Symfony
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 03:15 7 mar 2014; ManuelRomero (Discusión | contribuciones)
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
FrameWork
- Programa tus programas, no tus herramientas
- Automatiza tareas comunes, permitiendonos centrarnos y dedicar el esfuerzo al desarrollo de la aplicación concreta
- Nos ayuda a centrarnos en la aplicación, simplificando tareas comunes para diferentes aplicaciones
- Establecemos patrones de desarrollo y diseño, facilitanto el posterior mantenimiento y crecimiento de la aplicación
- Automa
Symfony
- Sigue el patrón MVC
Separa el desarrollo/programación
- Lógica de negocio
- lógica de servidor
- lógica de la aplicación web
http://librosweb.es/symfony/capitulo_1/symfony_en_pocas_palabras.html
Características de Synfony
- Contienen herramienta que generan código
- está basado en pruebas del tipo text-driven development
- contiene una barra de depuración web
- tiene una interfaz de línea de comandos para automatizar instalación de aplicaciones
- Se pueden realizar cambios ad-hot
- Log en detalle
Referencias
- https://groups.google.com/forum/#!forum/symfony-es
- Foros de symfony http://forum.symfony-project.org/
- listas de correo http://groups.google.com/group/symfony-es
- Canal IRC irc://irc.freenode.net/symfony
Conceptos básicos
- Se requieren conocimientos de programación en PHP (versión mínima 5.2.4).
- Conocimientos de OOPç
- clase, objeto, método herencia http://www.php.net/manual/es/language.oop5.basic.php.
- Métodos mágicos del tipo __nombreMetodo(). Métodos comunes a todos los objetos que tie pueden sobreescribir y mantienen una finalidad que permite unificarlos para cualquier tipo de objeto. Por ejemplo __toString() nos dará una cadena de caracteres que identifique al objeto; los objetos son de diferente tipo cada uno lo hará de una manera, pero en cualquier objeto sabemos que existe es método y nos intentará dar información en forma de cadena de caracteres.
http://www.php.net/manual/es/language.oop5.magic.php
- ORM Mapeo de Objeto a Relacional
Symfony nos ofrece una interfaz que permite que trabajemos con objetos y clases aunque en realidad por detrás haya registros y tablas. O sea que traduce la lógica de objetos a lógica relacional. Entre las herramientas open source que implementan esta funcionalidad Symfony soporta las dos más usadas Porpel http://www.propelorm.org y Doctrine http://www.doctrine-project.org
- RAD Rapid Application Designe
- Empezar a desarrollar rápidamente usando lenguajes de scriping (php, python, ruby).
- El cliente ve el prototipo funcionando y participa de posibles cambios.
- DRY (Don't Repeat Yourself). Se intenta no repetir el código, se refactoriza en un único lugar. Princip.
- TDD (Test-driven development) el desarrollo a veces está basado en pruebas programas que hay que escribir antes que la aplicación.
Los métodos deben de ser lo más sencillos y directos posibles KISS (Keep it Simple, Stupid).
- YAML http://www.yaml.org/. Estandar para serializar datos. Ain't Markup Language.
- Es un lenguaje sencillo que pemite describir datos como XML, pero de una forma más sencilla.
- Utiliza la tabulación para especificar la estructura
casa: familia: apellido: García padres: - Antonio - María hijos: - Jose - Manuel - Carmen direccion: numero: 34 calle: Gran Vía ciudad: Cualquiera codigopostal: "12345"
- Otra forma de describirlo
casa: familia: { apellido: García, padres: [Antonio, María], hijos: [Jose, Manuel, Carmen] } direccion: { numero: 34, direccion: Gran Vía, ciudad: Cualquiera, codigopostal: "12345" }