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.
Symfony-Community: Introducción a Symfony Framework
1. Introducción a Symfony
Framework
Ejemplo práctico, project setup,
MVC, routing y doctrine.
Disertante:
2. presentación
comunidad
¿Quiénes somos?
Colaboradores: Objetivo del seminario:
• Excedesoft S.A.
• Lic. Fabian Castillo Demostrar los conceptos involucrados en
• Ing. Emiliano Viada la creación de una aplicación symfony
inicial.
Destinatarios:
• Estudiantes
• Profesionales
• Empresas - Instituciones
Disertante:
3. • Introducción a Symfony Contenido
• Definición oficial de Framework.
• Alguna razones para la elección de symfony. (temario)
• 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
Disertante:
4. ¿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”
Disertante:
5. 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.
Disertante:
6. Algunas razones para elegir
Symfony
1. “Escalable” excelente esfuerzo.
Yahoo lo usa con aplicaciones de 200 7. “Nivel de madures”
millones de usuarios. En 5 lenguajes, multiples libros gratis,
2. “LTS” excelente esfuerzo.
(Long term support) 3 años. 8. “Compromiso”.
3. “Seguro”. SensioLab lo usa, prueba y extiende en
base a casos reales.
(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,
Disertante:
7. Features de un framework web
Arquitecturalmente: • Web-services
• Application controller, Filter • Ajax Integration
• Enrutamiento • Unit-testing
• MVC
• Doctrine ORM Cualidades:
• Configurable
Componentes: • Performante
•
• App.Setting Caching
• Gestión de session
• Forms
• Seguro
• Swift mailer
• Productivo
• Tasks • Comandos generadores
• I18n y l10n • Gestión de entornos
Disertante:
• Generate-admin
8. Aplicación
Alcance
Definición del alcance del ejemplo
Disertante:
9. Alcance del ejemplo
Casos de uso:
• Landing page
Actor
• Consulta datos de contacto
• Consulta quienes somos
• Consulta los post recientes
VISITANTE
• Comenta un post
• Publica su post
Dominio
1
*
Post Comentario
Disertante:
10. Sf Setup
Paso a Paso
Explicación de los componentes,
funcionamiento y configuración
Disertante:
12. Configuración
1. Bajar el Sandbox 1.4.x del sitio
oficial
2. Descomprimir Sandbox
3. Renombro sandbox a myblog Local host
4. Configurar el local & virtual hosts /etc/hosts
5. Reiniciar el servidor apache 127.0.0.1 local.myblog.com
6. Crear base de datos y usuario
7. Configurar db creds en symfony
Virtual Host
/apache/extra/conf/httpd-vhosts.conf
Base de Datos
http://localhost/phpmyadmin <VirtualHost *:80>
ServerName local.myblog.com
DocumentRoot "/var/www/myBlog/project/web"
- Base de datos myblog_dev <Directory "/var/www/myBlog/project/web">
Options Indexes FollowSymLinks Includes ExecCGI
- Usuario myblog_dev AllowOverride All
Order allow,deny
- Edicion de credenciales en: Allow from all
</Directory>
- project/config/database.yml </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 Disertante:
</Directory>
14. Bienvenidos
a Symfony
Explicación de las convenciones y
organización de la aplicación
Disertante:
15. 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
Disertante:
16. Capas y organización física
Arquitectura
CCS, JS,
Frontend Front Controller Mob. FC BE F.C
Images,
Layout Layout
Templ Templ Templ Tempo API
Action Action Action Action
Web Services
Modulo Modulo
Frontend Application Mobile Backend
Form
Model Vendors Widgets Task
s
Lib
-
core
OS +Apache + MySql Disertante:
17. Coding
inicial
Demostración paso a paso.
Disertante:
18. 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
Disertante:
19. Arquitectura MVC
en symfony
frontend_dev.php/content/home Apache
request Server
Browser
Front Controller
result
Usuario Action Layout
Model Template
• Controller = Front Controller + Action
• Model = Clases de Dominio (Lib/Model)
• View = Template + Layout
Disertante:
20. Routing
• Concepto
• Mapear un requerimiento (url)
a una acción. (Caso de Uso)
Front Controller
• Definición routing
• /config/route.yml
Action Layout
• Utilización desde la vista
• url_for() helper
Model Template
• Rutas por defecto
• Homepage
(Creamos las páginas de Contáctenos y Quienes
Somos para demostrar en IDE – browser )
Disertante:
21. Layout
• Concepto y demostración
• Partes del layout
• Two step view (Pattern) – vista en dos pasos
Disertante:
22. 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 ) Disertante:
23. Web – Recursos estáticos
• Explicación de la carpeta web
• CSS
• Imágenes
• Javascripts
• Maquetación
• Personalizar estilo de blog.
Disertante: