introducción a symfony
DESCRIPTION
Breve presentación sobre Symfony en el grupo Symfony UruguayTRANSCRIPT
1
1Saturday, August 31, 13
¿Que es Symfony?
2
2Saturday, August 31, 13
¿Que es Symfony?
•Conjunto de componentes
3
3Saturday, August 31, 13
¿Que es Symfony?
•Conjunto de componentes
•Full-stack Framework
4
4Saturday, August 31, 13
¿Que es Symfony?
•Conjunto de componentes
•Full-stack Framework
•Micro-framework
5
5Saturday, August 31, 13
¿Que es Symfony?
•Conjunto de componentes
•Full-stack Framework
•Micro-framework
•Una gran comunidad
6
6Saturday, August 31, 13
¿Objetivo?
7
7Saturday, August 31, 13
Objetivo
• No reinventar la rueda
8Saturday, August 31, 13
Objetivo
• No reinventar la rueda
• Separación - MVC
9Saturday, August 31, 13
Objetivo
• No reinventar la rueda
• Separación - MVC
• Calidad - TDD
10Saturday, August 31, 13
Objetivo
• No reinventar la rueda
• Separación - MVC
• Calidad - TDD
• Exportabilidad
11Saturday, August 31, 13
Objetivo
• No reinventar la rueda
• Separación - MVC
• Calidad - TDD
• Exportabilidad
• Velocidad
12Saturday, August 31, 13
Requerimientos
13
13Saturday, August 31, 13
Requerimientos
PHP >= 5.3.2
14
14Saturday, August 31, 13
PHP 5.3Namespaces
Namespace\Class
15
15Saturday, August 31, 13
PHP 5.3Funciones lambda & Closures
$items = array_filter(array(1, 2, 3, 4, 5),create_function('$item', 'return 4 > $item;')
);
16
16Saturday, August 31, 13
PHP 5.3Funciones lambda & Closures
$items = array_filter(array(1, 2, 3, 4, 5), function ($item) { return 4 > $item;});
17
17Saturday, August 31, 13
Componentes
18
18Saturday, August 31, 13
Componentes
•Librerías standalone
• Implementan cierta funcionalidad
•Son la base del framework
19Saturday, August 31, 13
ComponentesBrowserKit Class loader Config Console CSS
Selector
Debug Dependency InjectionDependency Injection Dom Crawler
Event Dispatcher
Filesystem Finder Form HTTP FoundationHTTP Foundation
HTTP KernelHTTP Kernel Intl Locale Options Resolver
Process Property Access
Routing Security Serializer
Stopwatch Templating Yaml
20Saturday, August 31, 13
ComponentesBrowserKit Class loader Config Console CSS
Selector
Debug Dependency InjectionDependency Injection Dom Crawler
Event Dispatcher
Filesystem Finder Form HTTP FoundationHTTP Foundation
HTTP KernelHTTP Kernel Intl Locale Options Resolver
Process Property Access
Routing Security Serializer
Stopwatch Templating Yaml
21Saturday, August 31, 13
Full-stack Framework
22
22Saturday, August 31, 13
├── app│ ├── Resources│ ├── cache│ ├── config│ ├── logs│ └── AppKernel.php├── src│ └── Acme├── vendor└── web ├── bundles ├── css ├── images └── js
Estructura de archivos por defecto.
El proyecto
23
23Saturday, August 31, 13
├── app│ ├── Resources│ ├── cache│ ├── config│ ├── logs│ └── AppKernel.php├── src│ └── Acme├── vendor└── web ├── bundles ├── css ├── images └── js
Contiene los archivos inician la ejecución de la aplicación, configuraciones, archivos de cache y recursos.
La aplicación
24
24Saturday, August 31, 13
├── app│ ├── Resources│ ├── cache│ ├── config│ ├── logs│ └── AppKernel.php├── src│ └── Acme├── vendor└── web ├── bundles ├── css ├── images └── js
Aquí se ubican los paquetes(bundles) y librerías comunes a todas las aplicaciones del proyecto
Librerías del proyecto
25
25Saturday, August 31, 13
├── app│ ├── Resources│ ├── cache│ ├── config│ ├── logs│ └── AppKernel.php├── src│ └── Acme├── vendor└── web ├── bundles ├── css ├── images └── js
•Librerías standalone.•No específicas del proyecto•Symfony!
Librerías de terceros
26
26Saturday, August 31, 13
├── app│ ├── Resources│ ├── cache│ ├── config│ ├── logs│ └── AppKernel.php├── src│ └── Acme├── vendor└── web ├── bundles ├── css ├── images └── js
•Único directorio público del proyecto•Front controllers•Assets•Uploads
Document root
27
27Saturday, August 31, 13
• Implementación de una funcionalidad específica
• Paquete exclusivo para uso en proyectos symfony.
• Permite empaquetar funcionalidades
• Integra librerías externas
Bundles
28
28Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
Estructura de archivos por defecto.
Bundles
29
29Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
Cotroladores. Es donde se encuentra la lógica de nuestro paquete.
Bundles
30
30Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
Es donde se procesa la configuración de nuestro paquete.
Bundles
31
31Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
• El modelo• Interacción con la base
de datos.
Bundles
32
32Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
Recursos del paquete tales como la configuración de servicios, archivos públicos y templates.
Bundles
33
33Saturday, August 31, 13
├── AcmeDemoBundle.php├── Controller│ ├── DemoController.php├── DependencyInjection│ └── AcmeDemoExtension.php├── Entity├── Resources│ ├── config│ ├── public│ └── views│ └── Demo│ └── index.html.twig└── Tests
Test cases para las distintas funcionalidades de nuestro paquete.
Bundles
34
34Saturday, August 31, 13
Bundles
src/VendorName/MyBundle
35
35Saturday, August 31, 13
Micro Framework
36
36Saturday, August 31, 13
Micro Framework
37
Silex Cilex
37Saturday, August 31, 13
Micro Framework
38
Silex
38Saturday, August 31, 13
¿Quién lo usa?
39
39Saturday, August 31, 13
¿Preguntas?
40
40Saturday, August 31, 13
¡Gracias!
41
41Saturday, August 31, 13