symfony-community: introducción a symfony framework

26
Disertante: Introducción a Symfony Framework Ejemplo práctico, project setup, MVC, routing y doctrine.

Upload: excedesoft

Post on 13-Jun-2015

1.007 views

Category:

Technology


9 download

DESCRIPTION

El seminario está dirigido a aquellos estudiantes, profesionales, universidades y empresas dedicados a la industria de software que deseen aprender sobre la iniciación de una aplicación Symfony. Se demostrá como descargar e instalar el framework, configuración inicial y conceptos necesarios para el desarrollo de una aplicación web simple.

TRANSCRIPT

Page 1: Symfony-Community: Introducción a Symfony Framework

Disertante:

Introducción a Symfony Framework

Ejemplo práctico, project setup,

MVC, routing y doctrine.

Page 2: Symfony-Community: Introducción a Symfony Framework

Disertante:

symfony-community.com

Colaboradores:• Excedesoft S.A.• Lic. Fabian Castillo• Ing. Emiliano Viada

presentacióncomunidad

Destinatarios:• Estudiantes• Profesionales• Empresas - Instituciones

¿Quiénes somos?

Objetivo del seminario:

Demostrar los conceptos involucrados en la creación de una aplicación symfony

inicial.

Page 3: Symfony-Community: Introducción a Symfony Framework

Disertante:

Contenido(temario)

• Introducción a Symfony• Definición oficial de Framework.• Alguna razones para la elección de symfony.• Features importantes

• Alcance del ejemplo• Entorno de trabajo, componentes y funcionamiento

• Instalación y configuración de una applicación• Entorno de trabajo, componentes y funcionamiento• Configuración • Arranque de la aplicación

• Conceptos y estructura del framework• Capas y organización de física• Concepto Aplicación, Modulo, Template, Layout, ..

• Arquitectura MVC• Routing• Layout..

• ORM – Doctrine• Personalización - Estilos

Page 4: Symfony-Community: Introducción a Symfony Framework

Disertante:

¿Qué es symfony framework?

Definición del sitio oficial:

“Symfony is a web application framework for PHP projects.It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure”

Page 5: Symfony-Community: Introducción a Symfony Framework

Disertante:

Beneficios del framework• Librerías, componentes y herramientas

reutilizables. • Proveer una arquitectura madura, experiencias y

conocimiento.• Provee dirección y límites al programador.• Paradigma de convención

Objetivo:• Construcción de aplicaciones complejas,

rápidamente• Prepararnos para el futuro, escalabilidad y

mantenabilidad.

Page 6: Symfony-Community: Introducción a Symfony Framework

Disertante:

Algunas razones para elegir Symfony1. “Escalable”

Yahoo lo usa con aplicaciones de 200 millones de usuarios.

2. “LTS” (Long term support) 3 años.

3. “Seguro”. (xss, csrf, sql injection, etc)

4. “Licencia MIT”permite desarrollar aplicaciones comerciales, gratuitas y/o libre.

5. “Calidad”. 9000 unidades de testeo.

6. “Documentación”

En 5 lenguajes, multiples libros gratis, excelente esfuerzo.

7. “Nivel de madures”En 5 lenguajes, multiples libros gratis, excelente esfuerzo.

8. “Compromiso”. SensioLab lo usa, prueba y extiende en base a casos reales.

Page 7: Symfony-Community: Introducción a Symfony Framework

Disertante:

Features de un framework web

Arquitecturalmente:• Application controller, Filter• Enrutamiento• MVC• Doctrine ORM

Componentes:• App.Setting• Forms• Swift mailer• Tasks • I18n y l10n

• Generate-admin

• Web-services• Ajax Integration• Unit-testing

Cualidades:• Configurable• Performante

• Caching• Gestión de session

• Seguro• Productivo

• Comandos generadores

• Gestión de entornos

Page 8: Symfony-Community: Introducción a Symfony Framework

Disertante:

MyBlog - Aplicación de Ejemplo

AplicaciónAlcance

Definición del alcance del ejemplo

Page 9: Symfony-Community: Introducción a Symfony Framework

Disertante:

Alcance del ejemplo

• Landing page• Consulta datos de contacto• Consulta quienes somos• Consulta los post recientes• Comenta un post• Publica su post

VISITANTE

Casos de uso:

Actor

Post1 Comentario*

Dominio

Page 10: Symfony-Community: Introducción a Symfony Framework

Disertante:

Instalación del entorno de desarrollo

Sf SetupPaso a Paso

Explicación de los componentes, funcionamiento y configuración

Page 11: Symfony-Community: Introducción a Symfony Framework

Disertante:

Entorno de desarrollo

Apache

Elementos:

• Host (ip)• URL

• Virtual host• Aplicación

Instaladores

Componentes Funcionamiento

local.myblog.com

ApacheServer

127.0.0.1

/var/www/myBlog/project/webIndex.php

requestBrowser

EditorPHP

CARPETA

Developer

Page 12: Symfony-Community: Introducción a Symfony Framework

Disertante:

Configuración1. Bajar el Sandbox 1.4.x del sitio oficial2. Descomprimir Sandbox3. Renombro sandbox a myblog4. Configurar el local & virtual hosts5. Reiniciar el servidor apache6. Crear base de datos y usuario7. Configurar db creds en symfony

<VirtualHost *:80> ServerName local.myblog.com DocumentRoot "/var/www/myBlog/project/web" <Directory "/var/www/myBlog/project/web"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory></VirtualHost> Alias /sf /var/www/myblog/lib/vendor/symfony/data/web/sf <Directory "/var/www/myblog/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory>

Virtual Host /apache/extra/conf/httpd-vhosts.conf

Local host/etc/hosts

127.0.0.1 local.myblog.com

Base de Datoshttp://localhost/phpmyadmin

- Base de datos myblog_dev- Usuario myblog_dev- Edicion de credenciales en:- project/config/database.yml

Page 13: Symfony-Community: Introducción a Symfony Framework

Disertante:

Page 14: Symfony-Community: Introducción a Symfony Framework

Disertante:

Conceptos y estructura del Framework

Bienvenidosa Symfony

Explicación de las convenciones y organización de la aplicación

Page 15: Symfony-Community: Introducción a Symfony Framework

Disertante:

Estructura del framework• Estructura del proyecto symfony

• Convenciones• Organización de capas y archivos.

• Arquitectura MVC• Application, Module, Actions, Templates• Layouts

• Scarfolding y comandos symfony

Page 16: Symfony-Community: Introducción a Symfony Framework

Disertante:

Capas y organización física

-

core

Modulo

Lib

Frontend Application

Modulo

ModelForm

s

Action Action Action Action

Vendors

BackendMobile

TaskWidgets

Frontend Front Controller Mob. FC BE F.CCCS, JS, Images,

Templ Templ Templ

Layout

Tempo

Layout

Arq

uit

ectu

ra

OS +Apache + MySql

Web Services

API

Page 17: Symfony-Community: Introducción a Symfony Framework

Disertante:

Codificación del ejemplo

Codinginicial

Demostración paso a paso.

Page 18: Symfony-Community: Introducción a Symfony Framework

Disertante:

Ejemplo• Crear modulo “content”

./symfony generate:module frontend content

• Crear action “home”• Setear una variable

$this->fecha = date('d/m/Y');

• Imprimir mensaje de bienvenida en vista

<h1>Symfony-Community Blog</h1><hr/><h2>Bienvenido al blog de la comunidad</h2>Ultima Actualización: <?php echo $fecha; ?>

(Demostración en IDE – browser)

http://local.myblog.com/frontend_dev.php/content/home

Page 19: Symfony-Community: Introducción a Symfony Framework

Disertante:

Arquitectura MVCen symfony

Usuario

frontend_dev.php/content/home ApacheServer

result

Browser Front Controller

Action

Model Template

Layout

• Controller = Front Controller + Action• Model = Clases de Dominio (Lib/Model)• View = Template + Layout

request

Page 20: Symfony-Community: Introducción a Symfony Framework

Disertante:

Routing• Concepto

• Mapear un requerimiento (url) a una acción. (Caso de Uso)

• Definición • /config/route.yml

• Utilización desde la vista• url_for() helper

• Rutas por defecto• Homepage

(Creamos las páginas de Contáctenos y Quienes Somos para demostrar en IDE – browser )

Front Controller

Action

Model Template

Layout

routing

Page 21: Symfony-Community: Introducción a Symfony Framework

Disertante:

Layout• Concepto y demostración• Partes del layout

• Two step view (Pattern) – vista en dos pasos

Page 22: Symfony-Community: Introducción a Symfony Framework

Disertante:

Schema – Dominio - Doctrine• Concepto

• Entidad, Relación.

• Definición • /config/doctrine/schema.yml

• Scaffolding• Clases autogeneradas

• Utilización del dominio desde la acción.• Doctrine::getTable(“xx”)->findAll(); ->findBy*(); etc.

• Behaviours populares• Timestampable, Slugable, vertinable

(Creamos el módulo Post para demostrar en IDE – browser )

Page 23: Symfony-Community: Introducción a Symfony Framework

Disertante:

Web – Recursos estáticos

• Explicación de la carpeta web• CSS• Imágenes• Javascripts

• Maquetación • Personalizar estilo de blog.

Page 24: Symfony-Community: Introducción a Symfony Framework

Disertante:

Antes de finalizar.

Gracias

Page 25: Symfony-Community: Introducción a Symfony Framework

Disertante:

Descargas

- www.symfony-community.com- https://github.com/Symfony-Community/myblog.git

Page 26: Symfony-Community: Introducción a Symfony Framework

Disertante:

Colaboración Muchas Gracias

www.symfony-community.com