Diferencia entre revisiones de «Usuario:ManuelRomero/DAW/Symfony»

De WikiEducator
Saltar a: navegación, buscar
(Conceptos básicos)
 
(2 revisiones intermedias por el mismo usuario no mostrado)
Línea 32: Línea 32:
 
*listas de correo  http://groups.google.com/group/symfony-es
 
*listas de correo  http://groups.google.com/group/symfony-es
 
*Canal IRC irc://irc.freenode.net/symfony
 
*Canal IRC irc://irc.freenode.net/symfony
===Conceptos básicos===
+
=== 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.
+
;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
 +
<source lang=xml>
 +
casa:
 +
  familia:
 +
    apellido: García
 +
    padres:
 +
      - Antonio
 +
      - María
 +
    hijos:
 +
      - Jose
 +
      - Manuel
 +
      - Carmen
 +
  direccion:
 +
    numero: 34
 +
    calle: Gran Vía
 +
    ciudad: Cualquiera
 +
    codigopostal: "12345"
 +
 
 +
</source>
 +
*Otra forma de describirlo
 +
<source lang=XML>
 +
casa:
 +
  familia: { apellido: García, padres: [Antonio, María], hijos: [Jose, Manuel, Carmen] }
 +
  direccion: { numero: 34, direccion: Gran Vía, ciudad: Cualquiera, codigopostal: "12345" }
 +
</source>

Última revisión de 03:15 7 mar 2014

Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg


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

  1. Lógica de negocio
  2. lógica de servidor
  3. lógica de la aplicación web

http://librosweb.es/symfony/capitulo_1/symfony_en_pocas_palabras.html

Características de Synfony

  1. Contienen herramienta que generan código
  2. está basado en pruebas del tipo text-driven development
  3. contiene una barra de depuración web
  4. tiene una interfaz de línea de comandos para automatizar instalación de aplicaciones
  5. Se pueden realizar cambios ad-hot
  6. Log en detalle

Referencias

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" }