Framework de desarrollo Symfony Rodrigo Miranda rmiranda@poodu.cl  http://www.rodrigomiranda.cl
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Sistema Operativo, para este caso Linux. Linux Windows OS X etc.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Servidor Web  Apache 2.x o superior. fedora, CentOS, RedHat: Ubuntu #  yum install httpd  #  apt-get install apache2
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Motor Base de Datos  MySQL 5.x o superior fedora, CentOS, RedHat: Ubuntu #  yum install mysql mysql-server mysql-libs  #  apt-get install mysql-server mysql-client
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Lenguaje PHP 5.2.4 o superior fedora, CentOS, RedHat: Ubuntu #  yum install php php-cli php-gd php-mysql php-pear  #  apt-get install php5 php5-cli php5-gd php5-mysql php php-pear
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Instalación phpMyAdmin. fedora, CentOS, RedHat  Ubuntu #  Descargar última versión del sitio: http://www.phpmyadmin.net  y descomprimir en directorio web: /var/www/html  (este comando no funciona ;-)  ) #  apt-get install phpmyadmin
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Librerías o Extensiones: PDO (PHP Data Objects): Permite acceder a distintas base de datos utilizando las mismas funciones, facilitando la portabilidad.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Librerías o Extensiones: PHP-XML PHP-XMLRPC.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Adentrándonos en Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Qué es Symfony? Framewok  para el desarrollo de aplicaciones web con PHP.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Qué es un Framework? Framewok  es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Entrega soporte de herramientas y extensiones y los une para el beneficio del desarrollador. Propone una metodología de Desarrollo.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Principal Característica? Facilitan el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos y buscando eficiencia, que preocupados de los detalles de bajo nivel que hoy en día no se justifican en la gran mayoría de los proyectos Web. Encapsula operaciones complejas en instrucciones sencillas.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Característica de Symfony Bastante tutoriales y documentación de talleres y casos prácticos. Documentación traducida a muchos idiomas, por ende, la comunidad sigue creciendo de manera exponencial. Mantenido por la interesante combinación comunidad + empresa (Comunidad desarrolladores + Sensio).
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Tabla de Rendimiento ítems PHP Frameworks Productividad Calidad programación Mantenimiento Rendimiento Aplicación
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Curva Aprendizaje / Eficiencia Symfony tiene una curva de aprendizaje altísima. Pero eso no es malo, dado que su curva de eficiencia y producción es directamente proporcional.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Quiénes utilizan Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Sistemas Operativos: Linux, OS X, Windows, etc.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Quiénes utilizan Symfony Más de 200 millones de personas en todo el mundo utilizan aplicaciones construidas con Symfony. Listado de aplicaciones: http://trac.symfony-project.org/wiki/ApplicationsDevelopedWithSymfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Servidor Web:  Apache o IIS.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Servidor Base de Datos:  MySQL, PostgreSQL, etc.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Lenguaje Programación PHP 5.2.4 o superior.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura Symfony al igual que otros Frameworks de Desarrollo, se basa en el diseño web a tres Capas  MVC .
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Modelo:  Representa la información con la que trabaja la aplicación, resolviendo la lógica de negocio y el acceso a los datos. Vista:  Transforma el modelo en una página web, encargándose de la presentación visual de los datos. Controlador:  Se encarga de procesar las peticiones del usuario, de decidir cual es la acción que se ejecutará a continuación de realizar los cambios en la vista y en el modelo.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC y Flujo de petición
Rodrigo Miranda Blog: www.rodrigomiranda.cl Implementación MVC Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Modelo:  Se subdivide en la capa de acceso a los datos y en la capa de abstracción de la base de datos. De esta forma, las funciones que acceden a los datos no utilizan sentencias ni consultas que dependen de una base de datos, sino que utilizan otras funciones para realizar consultas. Así si se cambia de base de datos solamente es necesario actualizar la capa de abstracción.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Modelo:  En la capa del modelo trabajamos junto a un componente muy importante, el llamado traductor.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony ORM (Object-relational mapping) Las bases de datos siguen una estructura relacional. PHP 5 y Symfony por el contrario son orientados a objetos. Por este motivo, para acceder a la base de datos como si fuera orientada a objetos, es necesario una interfaz que traduzca la lógica de los objetos a la lógica relacional (mapeo de objetos a base de datos).
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Vista:  La capa de presentación de los datos, puede ser objeto de subdivisión grafica ya que siempre en ellas hay zonas que se repiten, ejemplo: Header o Footer (pueden formar parte de layout).
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Controlador:  Del controlador depende mucho trabajo, entre sus labores encontramos: Manejo de las peticiones del usuario. Manejo de la seguridad. Cargar la configuración de la aplicación. Ser el intermediario por donde pasan todas las conversaciones - desde y hacia - todas las otras capas.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Observando a Symfony Flujo de Trabajo Symfony.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Alternativa de Instalación 1.  Entorno de prueba:  Es un proyecto vacío de Symfony que incluye librerías necesarias como: (Symfony, lime, Prototype con Scriptaculous, Doctrine y Propel con Phing).
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Entorno de prueba:  Para instalar el entorno de pruebas, se debe descargar su archivo comprimido desde http://www.symfony-project.org/get/sf_sandbox_1_2.tgz A continuación, se descomprime su contenido en el directorio raíz del servidor web.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Verificar entorno de prueba:  Para comprobar que se ha realizado correctamente la instalación del entorno de pruebas ejecuta el primer comando de symfony El resultado del comando debería ser parecido:  #  symfony  -V #  symfony version x.x.x (/ruta/hasta/el/directorio/lib/dir/utilizado/por/el/entorno/de/pruebas)
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Verificar entorno de prueba:  Lo siguiente es acceder al entorno de pruebas mediante la siguiente URL: http://localhost/sf_sandbox/web/frontend_dev.php
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Si todo ha ido bien, deberías ver:
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación entorno de prueba  Symfony Para qué nos servirá el entorno de prueba…  El entorno de prueba está pensado para que se practique con Symfony en un servidor local, no para desarrollar aplicaciones complejas. Nos servirá para conocer el esqueleto de este Framework antes de comenzar a desarrollar sobre él.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Alternativa de Instalación 2.  Instalación Symfony con PEAR:  El paquete PEAR de Symfony incluye las librerías propias de Symfony y todas sus dependencias.  Además, también contiene un script que permite extender la línea de comandos.
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación Symfony con PEAR Instalación Symfony con PEAR:  Para instalar Symfony de esta manera, en primer lugar se debe añadir el canal Symfony PEAR: Para comprobar librerías disponibles en ese canal: #  pear channel-discover pear.symfony-project.com #  pear remote-list –c  symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Finalmente, una vez añadido el canal, ya es posible instalar la última versión estable: Instalación Symfony con PEAR #  pear install symfony/symfony downloading symfony-x.x.x.tgz ... Starting to download symfony-1.x.x.tgz (2,700,635 bytes) ................................................................. ................................................................. .............done: 2,700,635 bytes install ok: channel://pear.symfony-project.com/symfony-x.x.x
Rodrigo Miranda Blog: www.rodrigomiranda.cl Para verificar que se ha instalado correctamente utilizando la alternativa PEAR: Instalación Symfony con PEAR #  symfony –V symfony version x.x.x (/ruta/hasta/el/directorio/lib/de/symfony/en/pear)
Rodrigo Miranda Blog: www.rodrigomiranda.cl Las librerías de instalación, se encuentran: $php_dir/symfony/  contiene las principales librerías. $data_dir/symfony/  contiene los archivos web que utilizan por defecto los módulos de symfony. $doc_dir/symfony/  contiene la documentación. $test_dir/symfony/  contiene las pruebas unitarias y funcionales de Symfony.  Instalación Symfony con PEAR
Rodrigo Miranda Blog: www.rodrigomiranda.cl Las variables que acaban en _dir se definen en la configuración de PEAR. Para ver sus valores puedes ejecutar el siguiente comando: Instalación Symfony con PEAR # pear config-show
Rodrigo Miranda Blog: www.rodrigomiranda.cl Alternativa de Instalación 2.  Instalación mediante SVN (Subversión)  Esta opción es recomendada para desarrolladores más avanzados. Es el método con el que pueden obtener los últimos parches, pueden añadir sus propias características al framework y pueden colaborar con el proyecto Symfony.
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. Instalación de Symfony mediante Subversión
Rodrigo Miranda Blog: www.rodrigomiranda.cl Instalación de Symfony mediante Subversión Si no tienes instalado Subversion, es hora de hacerlo . fedora, CentOS, RedHat: Ubuntu #  yum install subversion  #  apt-get install subversion
Rodrigo Miranda Blog: www.rodrigomiranda.cl Recomendamos crear un directorio que pueda contener más de una versión de Symfony. Este no debe ser accesible desde un navegador. Instalación de Symfony mediante Subversió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/  .
Rodrigo Miranda Blog: www.rodrigomiranda.cl Comprobando requerimientos de Sistema
Rodrigo Miranda Blog: www.rodrigomiranda.cl Comprobando requerimiento de Sistema Ingresar al directorio bin de la instalación Symfony: Ejecutar script check_configurarion: #  cd /versiones-symfony/symfonyx_x_x/data/bin #  php check_configuration.php
Rodrigo Miranda Blog: www.rodrigomiranda.cl El comando de  symfony  -V, para el caso de la instalación por Subversión, lo podremos ejecutar de la siguiente manera: o resultado: Instalación de Symfony mediante Subversió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)
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo Symfony
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo   Si has utilizado PEAR: Si has utilizado Subversión: o  # symfony generate:project miproyecto  #  php /versiones-symfony/symfonyx_x_x/data/bin/symfony generate:project miproyecto #  /versiones-symfony/symfonyx_x_x/data/bin/./symfony generate:project miproyecto # mkdir /directorio/web/miproyecto # cd /directorio/web/miproyecto
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo Recomendamos:  La tarea generate:project añade un script llamado  symfony  en el directorio raíz del proyecto. Este script es idéntico al comando  symfony  creado por PEAR, por lo que de ahora en adelante se puede seguir utilizando, acortando con eso las líneas de comandos. #  cd /directorio/web/miproyecto #  ./symfony -V
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo Que contiene el script Symfony  Si editamos el archivo  symfony  creado por la tarea generate:project. Encontramos la siguiente línea: #  cd /directorio/web/miproyecto #  vim symfony  ……… require_once(dirname(__FILE__).’/config/ProjectConfiguration.class.php’); ……… ..
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo ProjectConfiguration.class.php:  Si editamos este archivo. Encontramos la siguiente línea que apunta a la instalación de Symfony. Por lo tanto, si alguna vez lo requieres, sólo debes cambiar esta ruta  para que nuestro proyecto ocupe otra versión de symfony. #  cd /directorio/web/miproyecto/config #  vim ProjectConfiguration.class.php  ……… require_once ‘ /versiones-symfony/symfonyx_x_x/ lib/autoload/sfCoreAutolad.class.php; ……… ..
Rodrigo Miranda Blog: www.rodrigomiranda.cl Creando un proyecto de Ejemplo Si realizaste el cambio anterior (path o ruta) para una nueva versión de Symfony, no olvides borrar la caché del proyecto, desde su raíz #  symfony cc #  cd /directorio/web/miproyecto
Rodrigo Miranda Blog: www.rodrigomiranda.cl Preguntas?

Adentrándonos al Framework Symfony

  • 1.
    Framework de desarrolloSymfony Rodrigo Miranda rmiranda@poodu.cl http://www.rodrigomiranda.cl
  • 2.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP
  • 3.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Sistema Operativo, para este caso Linux. Linux Windows OS X etc.
  • 4.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Servidor Web Apache 2.x o superior. fedora, CentOS, RedHat: Ubuntu # yum install httpd # apt-get install apache2
  • 5.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Motor Base de Datos MySQL 5.x o superior fedora, CentOS, RedHat: Ubuntu # yum install mysql mysql-server mysql-libs # apt-get install mysql-server mysql-client
  • 6.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Lenguaje PHP 5.2.4 o superior fedora, CentOS, RedHat: Ubuntu # yum install php php-cli php-gd php-mysql php-pear # apt-get install php5 php5-cli php5-gd php5-mysql php php-pear
  • 7.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Herramientas a Instalar: Instalación phpMyAdmin. fedora, CentOS, RedHat Ubuntu # Descargar última versión del sitio: http://www.phpmyadmin.net y descomprimir en directorio web: /var/www/html (este comando no funciona ;-) ) # apt-get install phpmyadmin
  • 8.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Librerías o Extensiones: PDO (PHP Data Objects): Permite acceder a distintas base de datos utilizando las mismas funciones, facilitando la portabilidad.
  • 9.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Levantamiento Plataforma LAMP (Linux, Apache, MySQL y PHP) Librerías o Extensiones: PHP-XML PHP-XMLRPC.
  • 10.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Adentrándonos en Symfony
  • 11.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Qué es Symfony? Framewok para el desarrollo de aplicaciones web con PHP.
  • 12.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Qué es un Framework? Framewok es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Entrega soporte de herramientas y extensiones y los une para el beneficio del desarrollador. Propone una metodología de Desarrollo.
  • 13.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Principal Característica? Facilitan el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos y buscando eficiencia, que preocupados de los detalles de bajo nivel que hoy en día no se justifican en la gran mayoría de los proyectos Web. Encapsula operaciones complejas en instrucciones sencillas.
  • 14.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Característica de Symfony Bastante tutoriales y documentación de talleres y casos prácticos. Documentación traducida a muchos idiomas, por ende, la comunidad sigue creciendo de manera exponencial. Mantenido por la interesante combinación comunidad + empresa (Comunidad desarrolladores + Sensio).
  • 15.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Tabla de Rendimiento ítems PHP Frameworks Productividad Calidad programación Mantenimiento Rendimiento Aplicación
  • 16.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Curva Aprendizaje / Eficiencia Symfony tiene una curva de aprendizaje altísima. Pero eso no es malo, dado que su curva de eficiencia y producción es directamente proporcional.
  • 17.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Quiénes utilizan Symfony
  • 18.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Sistemas Operativos: Linux, OS X, Windows, etc.
  • 19.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Quiénes utilizan Symfony Más de 200 millones de personas en todo el mundo utilizan aplicaciones construidas con Symfony. Listado de aplicaciones: http://trac.symfony-project.org/wiki/ApplicationsDevelopedWithSymfony
  • 20.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Servidor Web: Apache o IIS.
  • 21.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Servidor Base de Datos: MySQL, PostgreSQL, etc.
  • 22.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Inducción Framework Symfony Requerimientos Lenguaje Programación PHP 5.2.4 o superior.
  • 23.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony
  • 24.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura Symfony al igual que otros Frameworks de Desarrollo, se basa en el diseño web a tres Capas MVC .
  • 25.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Modelo: Representa la información con la que trabaja la aplicación, resolviendo la lógica de negocio y el acceso a los datos. Vista: Transforma el modelo en una página web, encargándose de la presentación visual de los datos. Controlador: Se encarga de procesar las peticiones del usuario, de decidir cual es la acción que se ejecutará a continuación de realizar los cambios en la vista y en el modelo.
  • 26.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC y Flujo de petición
  • 27.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Implementación MVC Symfony
  • 28.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Modelo: Se subdivide en la capa de acceso a los datos y en la capa de abstracción de la base de datos. De esta forma, las funciones que acceden a los datos no utilizan sentencias ni consultas que dependen de una base de datos, sino que utilizan otras funciones para realizar consultas. Así si se cambia de base de datos solamente es necesario actualizar la capa de abstracción.
  • 29.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Modelo: En la capa del modelo trabajamos junto a un componente muy importante, el llamado traductor.
  • 30.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony ORM (Object-relational mapping) Las bases de datos siguen una estructura relacional. PHP 5 y Symfony por el contrario son orientados a objetos. Por este motivo, para acceder a la base de datos como si fuera orientada a objetos, es necesario una interfaz que traduzca la lógica de los objetos a la lógica relacional (mapeo de objetos a base de datos).
  • 31.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Vista: La capa de presentación de los datos, puede ser objeto de subdivisión grafica ya que siempre en ellas hay zonas que se repiten, ejemplo: Header o Footer (pueden formar parte de layout).
  • 32.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Arquitectura MVC Symfony Controlador: Del controlador depende mucho trabajo, entre sus labores encontramos: Manejo de las peticiones del usuario. Manejo de la seguridad. Cargar la configuración de la aplicación. Ser el intermediario por donde pasan todas las conversaciones - desde y hacia - todas las otras capas.
  • 33.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Observando a Symfony Flujo de Trabajo Symfony.
  • 34.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony
  • 35.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Alternativa de Instalación 1. Entorno de prueba: Es un proyecto vacío de Symfony que incluye librerías necesarias como: (Symfony, lime, Prototype con Scriptaculous, Doctrine y Propel con Phing).
  • 36.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Entorno de prueba: Para instalar el entorno de pruebas, se debe descargar su archivo comprimido desde http://www.symfony-project.org/get/sf_sandbox_1_2.tgz A continuación, se descomprime su contenido en el directorio raíz del servidor web.
  • 37.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Verificar entorno de prueba: Para comprobar que se ha realizado correctamente la instalación del entorno de pruebas ejecuta el primer comando de symfony El resultado del comando debería ser parecido: # symfony -V # symfony version x.x.x (/ruta/hasta/el/directorio/lib/dir/utilizado/por/el/entorno/de/pruebas)
  • 38.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Verificar entorno de prueba: Lo siguiente es acceder al entorno de pruebas mediante la siguiente URL: http://localhost/sf_sandbox/web/frontend_dev.php
  • 39.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Si todo ha ido bien, deberías ver:
  • 40.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación entorno de prueba Symfony Para qué nos servirá el entorno de prueba… El entorno de prueba está pensado para que se practique con Symfony en un servidor local, no para desarrollar aplicaciones complejas. Nos servirá para conocer el esqueleto de este Framework antes de comenzar a desarrollar sobre él.
  • 41.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Alternativa de Instalación 2. Instalación Symfony con PEAR: El paquete PEAR de Symfony incluye las librerías propias de Symfony y todas sus dependencias. Además, también contiene un script que permite extender la línea de comandos.
  • 42.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación Symfony con PEAR Instalación Symfony con PEAR: Para instalar Symfony de esta manera, en primer lugar se debe añadir el canal Symfony PEAR: Para comprobar librerías disponibles en ese canal: # pear channel-discover pear.symfony-project.com # pear remote-list –c symfony
  • 43.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Finalmente, una vez añadido el canal, ya es posible instalar la última versión estable: Instalación Symfony con PEAR # pear install symfony/symfony downloading symfony-x.x.x.tgz ... Starting to download symfony-1.x.x.tgz (2,700,635 bytes) ................................................................. ................................................................. .............done: 2,700,635 bytes install ok: channel://pear.symfony-project.com/symfony-x.x.x
  • 44.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Para verificar que se ha instalado correctamente utilizando la alternativa PEAR: Instalación Symfony con PEAR # symfony –V symfony version x.x.x (/ruta/hasta/el/directorio/lib/de/symfony/en/pear)
  • 45.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Las librerías de instalación, se encuentran: $php_dir/symfony/ contiene las principales librerías. $data_dir/symfony/ contiene los archivos web que utilizan por defecto los módulos de symfony. $doc_dir/symfony/ contiene la documentación. $test_dir/symfony/ contiene las pruebas unitarias y funcionales de Symfony. Instalación Symfony con PEAR
  • 46.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Las variables que acaban en _dir se definen en la configuración de PEAR. Para ver sus valores puedes ejecutar el siguiente comando: Instalación Symfony con PEAR # pear config-show
  • 47.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Alternativa de Instalación 2. Instalación mediante SVN (Subversión) Esta opción es recomendada para desarrolladores más avanzados. Es el método con el que pueden obtener los últimos parches, pueden añadir sus propias características al framework y pueden colaborar con el proyecto Symfony.
  • 48.
    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. Instalación de Symfony mediante Subversión
  • 49.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Instalación de Symfony mediante Subversión Si no tienes instalado Subversion, es hora de hacerlo . fedora, CentOS, RedHat: Ubuntu # yum install subversion # apt-get install subversion
  • 50.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Recomendamos crear un directorio que pueda contener más de una versión de Symfony. Este no debe ser accesible desde un navegador. Instalación de Symfony mediante Subversió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/ .
  • 51.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Comprobando requerimientos de Sistema
  • 52.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Comprobando requerimiento de Sistema Ingresar al directorio bin de la instalación Symfony: Ejecutar script check_configurarion: # cd /versiones-symfony/symfonyx_x_x/data/bin # php check_configuration.php
  • 53.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl El comando de symfony -V, para el caso de la instalación por Subversión, lo podremos ejecutar de la siguiente manera: o resultado: Instalación de Symfony mediante Subversió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)
  • 54.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo Symfony
  • 55.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo Si has utilizado PEAR: Si has utilizado Subversión: o # symfony generate:project miproyecto # php /versiones-symfony/symfonyx_x_x/data/bin/symfony generate:project miproyecto # /versiones-symfony/symfonyx_x_x/data/bin/./symfony generate:project miproyecto # mkdir /directorio/web/miproyecto # cd /directorio/web/miproyecto
  • 56.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo Recomendamos: La tarea generate:project añade un script llamado symfony en el directorio raíz del proyecto. Este script es idéntico al comando symfony creado por PEAR, por lo que de ahora en adelante se puede seguir utilizando, acortando con eso las líneas de comandos. # cd /directorio/web/miproyecto # ./symfony -V
  • 57.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo Que contiene el script Symfony Si editamos el archivo symfony creado por la tarea generate:project. Encontramos la siguiente línea: # cd /directorio/web/miproyecto # vim symfony ……… require_once(dirname(__FILE__).’/config/ProjectConfiguration.class.php’); ……… ..
  • 58.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo ProjectConfiguration.class.php: Si editamos este archivo. Encontramos la siguiente línea que apunta a la instalación de Symfony. Por lo tanto, si alguna vez lo requieres, sólo debes cambiar esta ruta para que nuestro proyecto ocupe otra versión de symfony. # cd /directorio/web/miproyecto/config # vim ProjectConfiguration.class.php ……… require_once ‘ /versiones-symfony/symfonyx_x_x/ lib/autoload/sfCoreAutolad.class.php; ……… ..
  • 59.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Creando un proyecto de Ejemplo Si realizaste el cambio anterior (path o ruta) para una nueva versión de Symfony, no olvides borrar la caché del proyecto, desde su raíz # symfony cc # cd /directorio/web/miproyecto
  • 60.
    Rodrigo Miranda Blog:www.rodrigomiranda.cl Preguntas?