introducción a symfony

41
1 1 Saturday, August 31, 13

Upload: ismael-ambrosi

Post on 07-Jul-2015

394 views

Category:

Technology


0 download

DESCRIPTION

Breve presentación sobre Symfony en el grupo Symfony Uruguay

TRANSCRIPT

Page 1: Introducción a Symfony

1

1Saturday, August 31, 13

Page 2: Introducción a Symfony

¿Que es Symfony?

2

2Saturday, August 31, 13

Page 3: Introducción a Symfony

¿Que es Symfony?

•Conjunto de componentes

3

3Saturday, August 31, 13

Page 4: Introducción a Symfony

¿Que es Symfony?

•Conjunto de componentes

•Full-stack Framework

4

4Saturday, August 31, 13

Page 5: Introducción a Symfony

¿Que es Symfony?

•Conjunto de componentes

•Full-stack Framework

•Micro-framework

5

5Saturday, August 31, 13

Page 6: Introducción a Symfony

¿Que es Symfony?

•Conjunto de componentes

•Full-stack Framework

•Micro-framework

•Una gran comunidad

6

6Saturday, August 31, 13

Page 7: Introducción a Symfony

¿Objetivo?

7

7Saturday, August 31, 13

Page 8: Introducción a Symfony

Objetivo

• No reinventar la rueda

8Saturday, August 31, 13

Page 9: Introducción a Symfony

Objetivo

• No reinventar la rueda

• Separación - MVC

9Saturday, August 31, 13

Page 10: Introducción a Symfony

Objetivo

• No reinventar la rueda

• Separación - MVC

• Calidad - TDD

10Saturday, August 31, 13

Page 11: Introducción a Symfony

Objetivo

• No reinventar la rueda

• Separación - MVC

• Calidad - TDD

• Exportabilidad

11Saturday, August 31, 13

Page 12: Introducción a Symfony

Objetivo

• No reinventar la rueda

• Separación - MVC

• Calidad - TDD

• Exportabilidad

• Velocidad

12Saturday, August 31, 13

Page 13: Introducción a Symfony

Requerimientos

13

13Saturday, August 31, 13

Page 14: Introducción a Symfony

Requerimientos

PHP >= 5.3.2

14

14Saturday, August 31, 13

Page 15: Introducción a Symfony

PHP 5.3Namespaces

Namespace\Class

15

15Saturday, August 31, 13

Page 16: Introducción a Symfony

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

Page 17: Introducción a Symfony

PHP 5.3Funciones lambda & Closures

$items = array_filter(array(1, 2, 3, 4, 5), function ($item) { return 4 > $item;});

17

17Saturday, August 31, 13

Page 18: Introducción a Symfony

Componentes

18

18Saturday, August 31, 13

Page 19: Introducción a Symfony

Componentes

•Librerías standalone

• Implementan cierta funcionalidad

•Son la base del framework

19Saturday, August 31, 13

Page 20: Introducción a Symfony

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

Page 21: Introducción a Symfony

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

Page 22: Introducción a Symfony

Full-stack Framework

22

22Saturday, August 31, 13

Page 23: Introducción a Symfony

├── 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

Page 24: Introducción a Symfony

├── 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

Page 25: Introducción a Symfony

├── 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

Page 26: Introducción a Symfony

├── 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

Page 27: Introducción a Symfony

├── 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

Page 28: Introducción a Symfony

• 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

Page 29: Introducción a Symfony

├── 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

Page 30: Introducción a Symfony

├── 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

Page 31: Introducción a Symfony

├── 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

Page 32: Introducción a Symfony

├── 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

Page 33: Introducción a Symfony

├── 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

Page 34: Introducción a Symfony

├── 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

Page 35: Introducción a Symfony

Bundles

src/VendorName/MyBundle

35

35Saturday, August 31, 13

Page 36: Introducción a Symfony

Micro Framework

36

36Saturday, August 31, 13

Page 37: Introducción a Symfony

Micro Framework

37

Silex Cilex

37Saturday, August 31, 13

Page 38: Introducción a Symfony

Micro Framework

38

Silex

38Saturday, August 31, 13

Page 39: Introducción a Symfony

¿Quién lo usa?

39

39Saturday, August 31, 13

Page 40: Introducción a Symfony

¿Preguntas?

40

40Saturday, August 31, 13

Page 41: Introducción a Symfony

¡Gracias!

41

41Saturday, August 31, 13