Symfony Parte 2

3.685 visualizaciones

Publicado el

La primera aplicación Symfony y comenzando a jugar.

Publicado en: Tecnología
0 comentarios
6 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
3.685
En SlideShare
0
De insertados
0
Número de insertados
973
Acciones
Compartido
0
Descargas
4
Comentarios
0
Recomendaciones
6
Insertados 0
No insertados

No hay notas en la diapositiva.

Symfony Parte 2

  1. 1. Symfony Parte 2 Rodrigo Miranda [email_address] [email_address] http://www.rodrigomiranda.cl
  2. 2. Rodrigo Miranda Blog: www.rodrigomiranda.cl Desarrollando una Aplicacion
  3. 3. Rodrigo Miranda Blog: www.rodrigomiranda.cl Desarrollando una Aplicación <ul><li>Requisitos: </li></ul><ul><li>Plataforma LAMP o WAMP (Linux - Windows, Apache, MySQL y PHP 5.2.4 o superior, excepto la versión 5.2.9). </li></ul><ul><li>Instalación de Symfony (recomendado mediante Subversion) </li></ul><ul><li>Ambos desarrollados en la presentación anterior. </li></ul>
  4. 4. Rodrigo Miranda Blog: www.rodrigomiranda.cl El listado de las versiones lo puedes encontrar en la siguiente URL: http://svn.symfony-project.com/tags/ El release a descargar para producción, debe considerar siempre la última versión ESTABLE. Desarrollando una Aplicación
  5. 5. Rodrigo Miranda Blog: www.rodrigomiranda.cl Desarrollando una Aplicación <ul><li>Si no tienes instalado Subversion, es hora de hacerlo . </li></ul><ul><ul><ul><li>fedora, CentOS, RedHat: </li></ul></ul></ul><ul><ul><ul><li>Ubuntu </li></ul></ul></ul># yum install subversion # apt-get install subversion
  6. 6. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Recomendamos crear un directorio que pueda contener más de una versión de Symfony. Este no debe ser accesible desde Internet. </li></ul><ul><li>Una alternativa de descarga para el curso es la siguiente dirección: </li></ul><ul><li>http://www.poodu.cl/symfony1_2_9.zip </li></ul>Desarrollando una Aplicación # mkdir –p /versiones-symfony/symfonyx_x_x/ # cd /versiones-symfony/symfonyx_x_x # svn co http://svn.symfony-project.com/tags/RELEASE_x_x_x/ .
  7. 7. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Ingresar al directorio bin de la instalación Symfony: </li></ul><ul><ul><li>Ejecutar script check_configuration. El nos detallará si nuestro sistema cumple con los requerimientos para la instalación de Symfony. </li></ul></ul>Desarrollando una Aplicación # cd /versiones-symfony/symfonyx_x_x/data/bin # php check_configuration.php
  8. 8. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>El comando symfony -V , para el caso de la instalación por Subversión, lo podremos ejecutar de la siguiente manera: </li></ul><ul><li>o </li></ul><ul><li>resultado: </li></ul>Desarrollando una Aplicación # php /versiones-symfony/symfonyx_x_x/data/bin/symfony –V # /versiones-symfony/symfonyx_x_x/data/bin/./symfony –V # symfony version x.x.x (/versiones-symfony/symfonyx_x_x/lib)
  9. 9. Rodrigo Miranda Blog: www.rodrigomiranda.cl Desarrollando una Aplicación <ul><li>Obtener Comandos de Symfony: </li></ul><ul><li>O: </li></ul># php /versiones-symfony/symfonyx_x_x/data/bin/symfony # /versiones-symfony/symfonyx_x_x/data/bin/./symfony
  10. 10. Rodrigo Miranda Blog: www.rodrigomiranda.cl Desarrollando una Aplicación <ul><li>Comandos de Symfony: </li></ul>
  11. 11. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos
  12. 12. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos <ul><li>Proyectos Web en Symfony: </li></ul><ul><li>Para comenzar a desarrollar en Symfony se debe crear un proyecto Web. </li></ul><ul><li>Cada proyecto Web se divide en una o más aplicaciones, y cada aplicación contiene uno o más módulos. </li></ul><ul><li>Comúnmente un proyecto Symfony lo componen dos aplicaciones: parte pública y administrador. </li></ul><ul><li>Cada Módulo contenido en una aplicación suele corresponderse a una tabla de la base de datos, aunque no es obligatorio que así sea. </li></ul>
  13. 13. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos <ul><li>Desarrollaremos un microblog: </li></ul><ul><li>Ocuparemos un ejemplo del tutorial de Symfony, actualizándolo a la última versión estable y con algunas recomendaciones importantes. </li></ul>
  14. 14. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos <ul><li>Etapas del proyecto: </li></ul><ul><li>1. Definición de Aplicaciones. </li></ul><ul><li>2. Definición del Modelo de Datos. </li></ul><ul><li>3. Crear Proyecto y Aplicaciones. </li></ul><ul><li>4. Construir el Modelo. </li></ul><ul><li>5. Crear Módulos del Sistema. </li></ul>
  15. 15. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos 1. Proyecto Microblog: Definición de Aplicaciones
  16. 16. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos 2. Definición de Modelo de Datos:
  17. 17. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos 3.1. Crear el proyecto Blog: Dependiendo del sistema operativo y de la instalación realizada, puede ser necesario utilizar el prefijo php antes de cada comando Symfony. O: # php /versiones-symfony/symfonyx_x_x/data/bin/symfony generate:project blog # /versiones-symfony/symfonyx_x_x/data/bin/./symfony generate:project blog # mkdir /directorio/web/blog # cd /directorio/web/blog
  18. 18. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos 3.2. Crear las aplicaciones publico y administrador del proyecto Blog: # cd /directorio/web/blog # ./symfony generate:app publico # ./symfony generate:app administrador
  19. 19. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyectos, Aplicación y Módulos <ul><li>Estructura del Proyecto y Aplicaciones Creadas: </li></ul>
  20. 20. Rodrigo Miranda Blog: www.rodrigomiranda.cl Configuración del Servidor Web
  21. 21. Rodrigo Miranda Blog: www.rodrigomiranda.cl Configuración del Servidor Web <VirtualHost *:80> ServerName blog.localhost DocumentRoot /directorio/web/blog/web DirectoryIndex index.php Alias /sf /versiones-symfony/symfonyx_x_x/data/web/sf Errorlog /var/log/httpd/blogError.log CustomLog /var/log/httpd/accessBlog.log common <Directory /versiones-symfony/symfonyx_x_x/data/web/sf> AllowOverride All Allow from All </Directory> <Directory /directorio/web/blog/web> Allowoverride All Allow from All </Directory> </VirtualHost>
  22. 22. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Configuración archivo hosts: </li></ul><ul><li>/etc/hosts </li></ul><ul><li>c:windowssystem32driversetchosts </li></ul><ul><li>127.0.0.1 blog.localhost </li></ul>Configuración del Servidor Web
  23. 23. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Un error Común: </li></ul>Configuración del Servidor Web
  24. 24. Rodrigo Miranda Blog: www.rodrigomiranda.cl Configuración del Servidor Web <ul><li>El anterior en esencia NO es un error, sino que Apache no puede encontrar las imágenes, hojas de estilos y archivos Javascript utilizados para la barra de depuración. Por lo tanto, se debe comprobar que existe la siguiente línea en la configuración del VirtualHost: </li></ul><ul><li>Alias /sf /versiones-symfony/symfonyx_x_x/data/web/sf </li></ul>
  25. 25. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>Una alternativa para generar el alias podría ser crear un enlace simbólico o copiar directamente los contenidos del directorio: </li></ul><ul><li>/versiones-symfony/symfonyx_x_x/data/web/sf/ </li></ul><ul><li>al directorio: </li></ul><ul><li>/directorio/web/blog/web/sf/ </li></ul>
  26. 26. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos 4. Construir el Modelo: 4.1 – Protegiendo la Base de Datos: # mysql –u root -p mysql> use mysql; mysql> update user set password=PASSWORD(‘cl1v3ade4’) where user=‘root’; mysql> flush privileges; mysql> q
  27. 27. Rodrigo Miranda Blog: www.rodrigomiranda.cl 4.2 Crear Base de Datos y Usuario: Proyecto, Aplicaciones y Módulos # mysql –u root -p mysql> create database blog default character set utf8 collate utf8_general_ci; mysql> grant all on blog.* to conicyt@localhost IDENTIFIED BY ‘c00ny’; mysql> flush privileges;
  28. 28. Rodrigo Miranda Blog: www.rodrigomiranda.cl 4. Construir el Modelo: 4.1 – Tabla articulo: CREATE TABLE IF NOT EXISTS `blog_articulo` ( `id` int(11) unsigned NOT NULL auto_increment, `titulo` varchar(255) NOT NULL, `contenido` text NOT NULL, `modificacion` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Mantenedor de Posts' AUTO_INCREMENT=1 ; Proyecto, Aplicaciones y Módulos
  29. 29. Rodrigo Miranda Blog: www.rodrigomiranda.cl 4.2 – Tabla comentario: CREATE TABLE IF NOT EXISTS `blog_comentario` ( `id` int(11) unsigned NOT NULL auto_increment, `autor` varchar(255) NOT NULL, `contenido` text NOT NULL, `modificacion` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `id_blog_articulo` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `id_blog_articulo` (`id_blog_articulo`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Mantenedor de Comentarios' AUTO_INCREMENT=1 ; Proyecto, Aplicaciones y Módulos
  30. 30. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Modificamos archivo propel.ini de nuestro proyecto: </li></ul><ul><li>propel.database.url = mysql:dbname=blog;host=localhost </li></ul><ul><li>propel.database.creole.url = ${propel.database.url} </li></ul><ul><li>propel.database.user = conicyt </li></ul><ul><li>propel.database.password = c00ny </li></ul><ul><li>propel.database.encoding = utf8 </li></ul><ul><li>; mysql options </li></ul><ul><li>propel.mysql.tableType = InnoDB </li></ul>Proyecto, Aplicaciones y Módulos # vim /directorio/web/blog/config/propel.ini
  31. 31. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>Modificamos archivo databases.yml de nuestro proyecto: </li></ul><ul><li>all: </li></ul><ul><li>propel: </li></ul><ul><li>class: sfPropelDatabase </li></ul><ul><li>param: </li></ul><ul><li>classname: PropelPDO </li></ul><ul><li>dsn: mysql:dbname=blog;host=localhost </li></ul><ul><li>username: conicyt </li></ul><ul><li>password: c00ny </li></ul><ul><li>encoding: utf8 </li></ul><ul><li>persistent: true </li></ul><ul><li>pooling: true </li></ul># vim /directorio/web/blog/config/databases.yml
  32. 32. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>Construir Modelo a partir de una Base de Datos. </li></ul><ul><li>Symfony puede utilizar la capa de acceso a base de datos proporcionada por Propel para generar un archivo schema.yml a partir de una base de datos existente. </li></ul><ul><li>Se trata de una opción muy útil cuando se priefere trabajar primero en la base de datos antes de trabajar con el modelo de Objetos. </li></ul><ul><li>Para construir el Modelo a partir de la Base de Datos, el archivo databases.yml del proyecto debe apuntar a la base de datos correcta y debe tener todas las opciones de conexión. </li></ul>
  33. 33. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>A continuación vamos a generar un archivo schema.yml a partir de la estructura de la base de datos. Una vez creado lo encontraremos en el directorio config/ del proyecto. </li></ul><ul><li>Ahora se puede construir el modelo a partir del esquema generado. </li></ul><ul><li>Este comando es bastantes potente, pero el formato YAML no soporta algunas características por lo que es conveniente generar un archivo XML. </li></ul># cd /directorio/web/blog #./symfony propel:build-schema
  34. 34. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>A continuación añadimos el argumento xml a la tarea build-schema: para generar un esquema en formato XML. </li></ul>#./symfony propel:build-schema --xml
  35. 35. Rodrigo Miranda Blog: www.rodrigomiranda.cl Proyecto, Aplicaciones y Módulos <ul><li>Construcción del Modelo de Objetos: Para generar las clases del modelo de objetos tomando como referencia el archivo schema construido en el paso anterior, utilizamos la siguiente sentencia dentro del directorio del proyecto. </li></ul>#./symfony propel:build-model
  36. 36. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Después de construir el modelo, es necesario borrar la caché interna de Symfony mediante el comando symfony cc para que Symfony sea capaz de encontrar los nuevos modelos. </li></ul>Proyecto, Aplicaciones y Módulos #./symfony cc
  37. 37. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Podemos ver que dentro del directorio lib/ (en la raíz del proyecto) se ha creado un nuevo directorio llamado model/ , el cual contiene las clases que representan las tablas de nuestro modelo de datos. </li></ul>Proyecto, Aplicaciones y Módulos #cd lib/model # ls –l -rw-r--r-- 1 conicyt conicyt 63 oct 27 09:46 BlogArticuloPeer.php -rw-r--r-- 1 conicyt conicyt 55 oct 27 09:46 BlogArticulo.php -rw-r--r-- 1 conicyt conicyt 67 oct 27 09:46 BlogComentarioPeer.php -rw-r--r-- 1 conicyt conicyt 59 oct 27 09:46 BlogComentario.php drwxr-xr-x 2 conicyt conicyt 4096 oct 27 09:46 map drwxr-xr-x 2 conicyt conicyt 4096 oct 27 09:46 om
  38. 38. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Dentro del directorio lib/model/om/ del proyecto se han creado las clases Base del Modelo. Estas clases son extendidas por las clases mostradas anteriormente. </li></ul>Proyecto, Aplicaciones y Módulos #cd lib/model/om # ls –l -rw-r--r-- 1 conicyt conicyt 28212 oct 27 09:46 BaseBlogArticuloPeer.php -rw-r--r-- 1 conicyt conicyt 29357 oct 27 09:46 BaseBlogArticulo.php -rw-r--r-- 1 conicyt conicyt 36094 oct 27 09:46 BaseBlogComentarioPeer.php -rw-r--r-- 1 conicyt conicyt 27190 oct 27 09:46 BaseBlogComentario.php
  39. 39. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases base y clases personalizadas
  40. 40. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Clases base: </li></ul><ul><li>Son clases creadas en el directorio lib/model/om/ del proyecto a las cuales le precede la palabra Base. En ellas NO debemos añadir métodos personalizados ya que cada vez que se genera el modelo, con el comando symfony propel:build-model, se borran y se vuelven a crear. </li></ul>
  41. 41. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Clases personalizadas: </li></ul><ul><li>Son clases creadas en el directorio lib/model del proyecto. Estas extienden a clases bases, por lo tanto, son hijas o herederas. Si deseamos añadir métodos particulares o atributos en nuestra aplicaciones, podemos trabajar en ellas sin preocupaciones, ya que ellas NO se regeneran cada vez que se construye el modelo de objetos. </li></ul>
  42. 42. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Clases objeto: </li></ul><ul><li>Las clases BlogArticulo y BlogComentario representan a un registro de la base de datos. Permiten acceder a las columnas de UN registro y a los registros relacionados. </li></ul>
  43. 43. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Clases peer: </li></ul><ul><li>Las clases BlogArticuloPeer y BlogComentarioPeer son clases de tipo peer, es decir, clases que tienen métodos estáticos para trabajar con las tablas de la base de datos. Sus métodos devuelven normalmente un objeto o una colección de objetos de la clase objeto relacionada. </li></ul>
  44. 44. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Diferencia entre Clase Objeto y peer: </li></ul><ul><li>Mientras la primera REPRESENTA a un objeto y permite obtener objetos RELACIONADOS. </li></ul><ul><li>La segunda permite OBTENER un objeto o una COLECCIÓN de objetos de acuerdo a clase/tabla que representa. </li></ul>
  45. 45. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>A esta altura sabemos que Symfony trabaja con el concepto de Proyecto, el cual se subdivide en una o más aplicaciones, y donde cada aplicación puede tener uno o más módulos. </li></ul>Proyecto, Aplicaciones y Módulos
  46. 46. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Construir Formularios </li></ul><ul><li>Symfony a partir de la versión 1.1 incorporó un subframework para Formularios. Esto permite controlar uno de los procesos más tediosos en la construcción de aplicaciones. Una vez creado el Modelo, vamos a construir los formularios con el siguiente comando ejecutado en la raíz del proyecto. </li></ul>Proyectos, Aplicación y Módulos #./symfony propel:build-forms
  47. 47. Rodrigo Miranda Blog: www.rodrigomiranda.cl Clases bases y clases personalizadas <ul><li>Construir Filtros </li></ul><ul><li>El mecanismo de seguridad puede ser entendido como un filtro. Por él pasan las peticiones antes de ejecutar una acción. Según las comprobaciones realizadas en el filtro, se puede modificar el procesamiento de la petición. Más adelante profundizaremos al respecto. </li></ul>#./symfony propel:build-filters
  48. 48. Rodrigo Miranda Blog: www.rodrigomiranda.cl Administrador de la Aplicación
  49. 49. Rodrigo Miranda Blog: www.rodrigomiranda.cl Administrador de la Aplicación <ul><li>Crear Módulo Artículo de administración: </li></ul><ul><li>Symfony crea la parte de administración de una aplicación en base a su modelo de datos. Los módulos se generan en base a objetos Propel mediante la tarea propel:generate-admin. </li></ul>#./symfony propel:generate-admin administrador BlogArticulo
  50. 50. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Acceder a la parte de Gestión de Artículos </li></ul><ul><li>Después de ejecutar los comandos anteriores, ya se puede acceder a la parte de gestión de los artículos en la siguiente dirección: </li></ul><ul><li>http://blog.localhost/administrador_dev.php/blog_articulo </li></ul>Administrador de la Aplicación
  51. 51. Rodrigo Miranda Blog: www.rodrigomiranda.cl Administrador de la Aplicación
  52. 52. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Crear Módulo Comentario de administración: </li></ul><ul><li>Para crear el administrador de Comentarios nuevamente utilizamos el comando propel:generate-admin. </li></ul>Administrador de la Aplicación #./symfony propel:generate-admin administrador BlogComentario
  53. 53. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Acceder a la parte de Gestión de Comentarios </li></ul><ul><li>Después de ejecutar el comando anterior, vamos a acceder a la parte de gestión de los comentarios en la siguiente dirección: </li></ul><ul><li>http://blog.localhost/administrador_dev.php/blog_comentario </li></ul>Administrador de la Aplicación
  54. 54. Rodrigo Miranda Blog: www.rodrigomiranda.cl A continuación el controlador frontal administrador_dev.php nos muestra una página de error Administrador de la Aplicación
  55. 55. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Si bien la gestión de comentarios es idéntica a la de los artículos, existe una característica que debemos indicar en una clase de nuestro modelo. </li></ul><ul><li>El formulario de creación intenta mostrar la relación de la clave externa que hace referencia al artículo. </li></ul>Administrador de la Aplicación
  56. 56. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Para solventar este problema debemos definir el método mágico __toString en la clase BlogArticulo, que se encuentra en el directorio lib/model/ de nuestro proyecto. </li></ul><ul><li><?php </li></ul><ul><li>class BlogArticulo extends BaseBlogArticulo </li></ul><ul><li>{ </li></ul><ul><li>public function __toString() </li></ul><ul><li>{ </li></ul><ul><li>return $this-> getTitulo(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>Administrador de la Aplicación
  57. 57. Rodrigo Miranda Blog: www.rodrigomiranda.cl Vistazo al Código Generado
  58. 58. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Los módulos creados con el comando propel:generate-admin contienen algunos archivos, pero carecen de códigos PHP. Podríamos decir que están vacíos. </li></ul><ul><li>La razón del punto anterior es que Symfony se encarga de generar automáticamente el codigo PHP, para verificar aquello debes acceder a la aplicación, navegando en ella y cotejándolo con los códigos que podemos encontrar en el directorio: </li></ul><ul><li>cache/administrador/dev/modules </li></ul><ul><li>. </li></ul>Administrador de la Aplicación
  59. 59. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Editando el archivo generator.yml, encontramos lo siguiente: </li></ul>Administrador de la Aplicación
  60. 60. Rodrigo Miranda Blog: www.rodrigomiranda.cl
  61. 61. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Si bien la configuración básica es suficiente, Symfony permite extender esta configuración especificando directivas bajo la clave config. </li></ul>Administrador de la Aplicación
  62. 62. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>La configuración anterior se divide en seis secciones. Cuatro de estas secciones representan las vistas (list, filter, new y edit) y las otras dos secciones son virtuales (fields, y form) ya que sólo se utilizan para tareas de configuración. </li></ul>Administrador de la Aplicación
  63. 63. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Symfony analiza el archivo generator.yml, ubicado en el directorio config de los módulos creados con el comando propel:generate-admin , ejemplo: </li></ul><ul><li>apps/administrador/modules/blog_articulo/config/generator.yml </li></ul>Administrador de la Aplicación
  64. 64. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Modificar algunas directivas del archivo generator </li></ul>Administrador de la Aplicación
  65. 65. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Modificando Titulos de las páginas: </li></ul><ul><li>list: </li></ul><ul><li>title: Listado de Artículos </li></ul><ul><li>edit: </li></ul><ul><li>title: Editando Artículo </li></ul><ul><li>new: </li></ul><ul><li>title: Nuevo Artículo </li></ul>Administrador de la Aplicación
  66. 66. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Modificando Nombre de Acciones de plantilla: </li></ul><ul><li>list: </li></ul><ul><li>title: Listado de Artículos </li></ul><ul><li>actions: </li></ul><ul><li>_delete: {label: Borrar} </li></ul><ul><li>_edit: {label: Editar} </li></ul><ul><li>object_actions: </li></ul><ul><li>_edit: {label: Editar} </li></ul><ul><li>_delete: {label: Borrar} </li></ul>Administrador de la Aplicación
  67. 67. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Modificando Nombre de columnas a nivel general (inmediatamente bajo la clave config). También podríamos modificar a nivel de plantilla, por ejemplo modificar sólo para el caso list, new o edit. </li></ul><ul><li>config: </li></ul><ul><li>fields: </li></ul><ul><li>titulo: {label: Nombre} </li></ul><ul><li>created_at: {label: Fecha Actualizada} </li></ul>Administrador de la Aplicación
  68. 68. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Incluir ayuda o descripción a un campo. </li></ul><ul><li>edit: </li></ul><ul><li>title: Editando Artículo %%titulo%% </li></ul><ul><li>fields: </li></ul><ul><li>titulo: {help: Ingrese Nombre a este artículo} </li></ul><ul><li>contenido: {help: Ingrese una descripción} </li></ul>Administrador de la Aplicación
  69. 69. Rodrigo Miranda Blog: www.rodrigomiranda.cl Parte Pública de la Aplicación
  70. 70. Rodrigo Miranda Blog: www.rodrigomiranda.cl Parte pública de la Aplicación <ul><li>Crear Módulo Artículo parte Pública: </li></ul><ul><li>Dado que la parte pública del sistema necesita siempre algunas cualidades adicionales que la automatización –como es lógico- no siempre cubre, utilizaremos el siguiente comando para crear un módulo que nos permitirá trabajar sobre una base de código sólida. </li></ul>#./symfony propel:generate-module publico articulo BlogArticulo
  71. 71. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Crear Módulo Comentario parte Pública: </li></ul><ul><li>A continuación creamos el módulo comentario para la parte pública de la aplicación. </li></ul>Parte pública de la Aplicación #./symfony propel:generate-module publico comentario BlogComentario
  72. 72. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Acceder a la parte pública de Artículos </li></ul><ul><li>Después de ejecutar los comandos anteriores, ya se puede acceder a la parte PÚBLICA de los artículos en la siguiente dirección: </li></ul><ul><li>http://blog.localhost/publico_dev.php/articulo </li></ul>Parte pública de la Aplicación
  73. 73. Rodrigo Miranda Blog: www.rodrigomiranda.cl <ul><li>Acceder a la parte pública de Comentarios </li></ul><ul><li>Después de ejecutar los comandos anteriores, ya se puede acceder a la parte PÚBLICA de los comentarios en la siguiente dirección: </li></ul><ul><li>http://blog.localhost/publico_dev.php/comentario </li></ul>Parte pública de la Aplicación
  74. 74. Rodrigo Miranda Blog: www.rodrigomiranda.cl Preguntas?

×