taller introduccion symfony2

Download Taller introduccion symfony2

If you can't read please download the document

Upload: mario-j-inga-cahuana

Post on 20-Jun-2015

769 views

Category:

Technology


1 download

DESCRIPTION

Taller breve de introducción a symfony2

TRANSCRIPT

  • 1. Introduccin a Symfony2 Por: Mario J. Inga Cahuana@mario21ic

2. Agenda Qu s? Caractersticas Arquitectura MVC Flujo de apps Componentes Bundle Taller Links Preguntas 3. Qu es Symfony2? Creado por la comunidad y liderada porFabien Potencier Desarrollado en PHP 5.3 Arquitectura MVC Predecesor de Symfony 1 Agrupacin en bundle Configuracin en: YAML, XML, PHP 4. Caractersticas Alto rendimiento Usabilidad avanzada Extensible Flexible Contruido para desarrolladores Construido en base a otros grandesframeworks Listo para usar OpenSource 5. Arquitectura Symfony2 MVC: Modelo, Vista y Controlador Controlador: Symfony2 Modelo: Doctrine, ORM basado enHibernate Vista: Twig, basado en plantillas de Django 6. Flujo de apps Symfony2 7. ComponentesHttpFoundation:Contiene las clases Peticin y Respuesta, ascomo otras clases para manejar sesiones y cargar archivosEnrutado: Potente y rpido sistema de enrutamiento que tepermite asociar una URI especfica (por ejemplo /contacto) a ciertainformacin acerca de cmo se debe manejar esa peticin (porejemplo, ejecutando el mtodo contactoAction()) Form: Una completa y flexible plataforma para crear formularios yprocesar los datos presentados en ellos Validator: Un sistema para crear reglas sobre datos y entonces,cuando el usuario presenta los datos comprobar si son vlidos o nosiguiendo esas reglas 8. ComponentesClassloader:Una biblioteca de carga automtica que permiteutilizar clases PHP sin necesidad de require los archivos quecontienen esas clases manualmente;Plantillas:Un juego de herramientas para reproducir plantillas,manejar la herencia de plantillas (es decir, una plantilla es decoradacon un diseo) y realizar otras tareas comunes de las plantillas Security: Una poderosa biblioteca para manejar todo tipo deseguridad dentro de una aplicacin Translation: Una plataforma para traducir cadenas en tuaplicacin 9. Bundle Los bundles son la base de la nueva filosofa de trabajode Symfony2. El cdigo de tus aplicaciones y el propiocdigo fuente de Symfony2 se estructura mediantebundles. Tcnicamente, un bundle es un directorio que contienetodo tipo de archivos dentro una estructura jerarquizadade directorios, que suelen contener clases PHP yarchivos web (JavaScript, CSS e imgenes). 10. Taller Objetivo:Realizar un pequeo CRUD con 2modelos relacionados. Requisitos:Linux, PHP 5.4, MySQL o PostgreSQL, Git 11. Taller - Instalacin Instalando con composer:$ curl -s https://getcomposer.org/installer | php$ composer.phar create-project symfony/framework-standard-edition symfony2_taller 2.1.7 Descargando:$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.1.7.tgz$ tar -xvf Symfony_Standard_2.0.16.tgz 12. Taller - Instalacin Verificar requerimientos:$ php app/check.php Correr el server:$ php ./app/console server:run* En caso de estar en un virtual:$ php ./app/console server:run 0.0.0.0:8000 Verificar en navegador:http://localhost:8000/ 13. Taller - Instalacin Probar mdulo demo:http://localhost:8000/app_dev.php/demo/ Configurar parmetros database:http://localhost:8000/app_dev.php/_configurator/ 14. Taller - Creacin de bundle Creando nuestro bundle:$ php app/console generate:bundleBundle namespace: Blog/BlogBundleBundle name: BlogBundleTarget directory: ENTERConfiguration format: ymlDo you want to generate the whole directorystructure: no 15. Taller Creacin de bundleDo you confirm generation? yesConfirm automatic update of your Kernel? yesConfirm automatic update of the Routing? Yes Verificamos que todo sali bien:http://localhost:8000/hello/yaroslab 16. Taller Qu pas? Se cre la estructura bsica de un bundle ensrc/Blog/BlogBundle Se registr el bundle en el app/AppKernel.php Se agreg el routing.yml del bundleBlogBundle en app/config/routing.yml 17. Taller Estructura archivossrc/Blog/ BlogBundle BlogBundle.php Controller DefaultController.php DependencyInjection BlogExtension.php Configuration.php Resources config routing.yml services.yml views Default index.html.twig 18. Taller - Enrutamiento Editamossrc/Blog/BlogBundle/Resources/config/routing.yml agregando:blog_lista: pattern: /blog defaults: { _controller: BlogBundle:Default:blog } 19. Taller - Controller Editamossrc/Blog/BlogBundle/Controller/DefaultController.php, agregando el mtodo:public function blogAction(){ return $this->render(BlogBundle:Default:lista.html.twig,array());} 20. Taller - Plantilla Creamos el archivosrc/Blog/BlogBundle/Resources/views/Default/lista.html.twig, con contenido:{% extends ::base.html.twig %}{% block title %}Blog{% endblock %}{% block body %}Blog listado{% endblock %} Probar http://localhost:8000/blog 21. Taller Modelo - BlogCrear archivo src/Blog/BlogBundle/Entity/Blog.php