Your SlideShare is downloading. ×
Symfony Parte 5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Symfony Parte 5

1,124
views

Published on

En esta presentación creamos nuestras aplicaciones y primeros módulos. Y hacemos una revisión a los códigos de programación.

En esta presentación creamos nuestras aplicaciones y primeros módulos. Y hacemos una revisión a los códigos de programación.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,124
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Symfony Parte 5 Rodrigo Miranda rmiranda@poodu.cl contacto@rodrigomiranda.cl http://www.rodrigomiranda.cl
  • 2. Crear
Módulos
de
la
 Aplicación
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 3. Crear

Módulos
en
aplicación
Administrador: •  Vamos a generar algunos módulos de la aplicación administrador. Para comenzar, vamos a construir dos: encuesta y grupo-pregunta. •  Nos interesa generar el CRUD de cada uno de ellos; que es el acrónimo de las palabras inglesas “Creation/Retrieval/Update/Deletion (Crear, Obtener, Actualizar y Borrar). Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 4. Módulos en aplicación Administrador •  Podríamos ocupar los siguientes comandos que ya conocemos. #./symfony propel:generate-module administrador encuesta Encuesta #./symfony propel:generate-module administrador grupo- pregunta GrupoPregunta •  Los cuales generan módulos llamados encuesta y grupo-pregunta en la aplicación administrador, basados en los modelos Encuesta y GrupoPregunta encontrados en el directorio lib/model del proyecto. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 5. Módulos en aplicación Administrador •  Podemos agregar las siguientes opciones a ese comando. --with-show: Permite generar una acción y una plantilla específicas para visualizar los datos de un objeto. Esta plantilla solamente permite visualizar los datos, no modificarlos. --non-atomic-actions: Dado que el flujo de trabajo de los formulario de este módulo se controla mediante métodos create, edit y update. Podríamos crear un único método que se encargue de estas funcionalidades Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 6. Módulos en aplicación Administrador Probamos
los
módulos
en
las
sgtes
URLs: •  http://encuesta.localhost/administrador_dev.php/encuesta •  http://encuesta.localhost/administrador_dev.php/ grupopregunta •  Nota: Los problemas que puedes encontrar ya estás en condiciones de solucionarlos. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 7. Módulos en aplicación Administrador •  Si intentas agregar una nueva encuesta verás que Symfony muestra una excepción, ya que no se ha indicado una representación en forma de texto de los objetos referenciados. Para solventarlo utiliza el método mágico __toString. En las clases que indica Symfony ( Ti p o E n c u e s t a y O r g a n i z a c i o n ) q u e s e encuentran en lib/model. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 8. Módulos en aplicación Administrador •  Si intentamos guardar una nueva encuesta el formulario nos indica que existen campos requeridos que debo llenar. En los campos textos puedo colocar algo de información, pero no puedo hacer lo mismo en los campos tipo Select. Es necesario al parecer tener datos iniciales en el sistema. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 9. Datos
Iniciales,
Prueba
y
de
 Usuarios
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 10. Módulos en aplicación Administrador   unque hemos creado una estructura de base de A datos básica, todas sus tablas están vacías. En cualquier aplicación web siempren existen tres tipos de datos, por lo tanto comenzaremos a solucionarlo. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 11. Módulos en aplicación Administrador •  Datos iniciales: Son datos que necesita la aplicación para funcionar. Para este caso, necesitamos nombres de algunas categorías y tipos que son fk en otras tablas. •  Datos de pruebas: Son los datos para probar la aplicación. Los buenos programadores crean pruebas unitarias para asegurar que la aplicación se comporta tal y como se describe en los escenarios. La mejor forma de probar la aplicación consiste en realizar pruebas unitarias automáticas. •  Datos de usuarios: Son los datos reales creados por lo usuarios que utilizan la aplicación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 12. Módulos en aplicación Administrador   uando realizas el proceso de construir a mano el C schema.yml y posteriormente desde él generar la estructura de la base de datos, debes considerar que symfony al generar las tablas elimina toda la información en ellas. Sin embargo, como nosotros generamos el schema desde la estructura de la base de datos ya creada, realizando el proceso inverso, no nos preocuparemos ;-) . Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 13. YAML
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 14. YAML: •  Formato para serializar datos que es fácil de leer por las personas, computadores o máquinas y es compatible con todos los lenguajes de programación. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 15. •  Nos permite describir los datos como en XML, pero con una sintaxis mucho más sencilla. Es útil para describir datos que pueden ser transformados en arrays simples y asociativos. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 16. •  YAML utiliza la tabulación para indicar su estructura, los elementos que forman una secuencia utilizan un guión medio y los pares clave/valor de los array asociativos se separan con dos puntos. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 17. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 18. •  YAML además nos provee de una notación abreviada. Los arreglos simples se definen con [ ] y los arreglos asociativos con { }. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 19. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 20. Sintaxis: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 21. Arreglos
Simples: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 22. Arreglos
Asocia>vos: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 23. Crear
algunos
Datos
Iniciales
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 24. •  Crearemos archivos formato YAML y los guardaremos en el directorio data/fixture. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 25. data/fixtures/010_organizacion.yml Organizacion:  Modelo primer_elemento:  Etiqueta nombre único etiqueta: Poodu  Columna a llenar segundo_elemento: etiqueta: Conicyt tercer_elemento: etiqueta: Google Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 26. data/fixtures/020_tipoencuesta.yml TipoEncuesta: primer_elemento: etiqueta: Pregunta por Pregunta segundo_elemento: etiqueta: Sección por Sección tercer_elemento: etiqueta: Todos en Uno Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 27. •  Cuando una cadena de texto contiene saltos de línea se utiliza el símbolo | para indicar que la cadena de texto ocupa varias líneas. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 28. •  El prefijo numérico de cada archivo es opcional, lo que buscamos es controlar el orden en el que se cargan los datos. Y además, por si más adelante creamos archivos que se deben cargar entre medio de dos ya existente. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 29. •  Una vez creados los archivos de datos ejecutamos: #./symfony propel:data-load Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 30. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 31. Arquitectura
MVC
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 32. Antes: Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 33. MVC
(Modelo
–
Vista
–
Controlador) •  Organiza el código en base a su función. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 34. MVC Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 35. El
MVC
se
aloja
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 36. Layout
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 37. •  En toda aplicación web existe código HTML o PHP que se repite. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 38. Solución
Ineficiente Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 39. Opción
Eficiente Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 40. Parte
Importante
de
un
Layout Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 41. Hojas
de
esAlos,
imágenes
y
 archivos
JavaScript
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 42. apps/miaplicacion/config/view.yml Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 43. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 44. Un
subdirectorio
CSS Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 45. Agregando
atributo
media Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 46. Acciones
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 47. Acciones •  Se definen como métodos de una clase. El nombre de la clase que contiene a cada una de las acciones o métodos, comienza con el nombre del módulo seguida por la palabra Actions. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 48. apps/administrador/modules/encuesta/actions/actions.class.php Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 49. Plan>lla
o
templates •  Symfony utiliza una convención para deducir el nombre de una plantilla asociada a cada acción, que consiste en la acción seguida de la palabra Success. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 50. apps/administrador/modules/encuesta/templates/indexSuccess.php Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 51. Revisamos
códigos
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 52. PeAción
y
Respuesta
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 53. Pe>ción
y
Respuesta •  Cuando accedes a una página como encuesta/show/id/1 tú navegador envía una petición y el servidor web devuelve una respuesta. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 54. •  Symfony encapsula la petición en un objeto llamado sfWebRequest y la respuesta en un objeto sfWebResponse. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 55. •  Objeto sfWebRequest Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 56. •  Métodos sfWebRequest Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 57. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 58. •  Objeto sfWebResponse Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 59. •  Métodos sfWebResponse Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 60. Sistema
de
Enrutamiento
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 61. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 62. ‘encuesta/show?id=‘.$encuesta->getId() encuesta/show/id/1 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 63. URI Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 64. Configurando
Enrutamiento
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 65. •  Las conversiones entre URI internas y URL externas se define en el archivo de configuración routing.yml dentro del directorio config de las aplicaciones. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 66. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 67. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 68. Personalizando
el
 enrutamiento
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 69. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 70. •  Cuando se modifica la configuración de enrutamiento, los cambios se aplican instantáneamente en el entorno de desarrollo. Para el entorno de producción es necesario borrar las caché. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 71. URI
abreviada Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 72. Modificaciones
al
sistema.
 Rodrigo Miranda Blog: www.rodrigomiranda.cl
  • 73. Preguntas?
 Rodrigo Miranda Blog: www.rodrigomiranda.cl

×