Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

86
JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM Tutorial # 1 Instalación y primeros pasos Javier Eguiluz

description

Instalación y primeros pasos fue la primera ponencia impartida durante las Jornadas Symfony 2011. Se trata de la primera parte de las seis que forman el tutorial de desarrollo de la aplicación github.com/desymfony. Durante la misma se explIca cómo instalar y configurar Symfony2, cómo instalar el proyecto deSymfony, cómo crear los bundles con el generador interactivo y también se introduce el funcionamiento de la arquitectura MVC en Symfony2 mediante la programación de la parte dedicada a mostrar las páginas estáticas de la aplicación.

Transcript of Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Page 2: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

JORNADAS SYMFONY 2011 están patrocinadas porPa

troc

inad

ores

PL

ATIN

O y

ORO

Patr

ocin

ador

es

PLAT

APa

troc

inad

ores

BR

ONCE

Cola

bora

dore

s

Page 3: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Algunas partes de esta presentación no se pueden entender bien sin ver el vídeo de su impartición.

Puedes acceder al vídeo enhttp://bit.ly/sf-tutorial1

importante

Page 4: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

La idea

Page 5: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

« Desarrollar una versión ficticia del sitio

desymfony.com »

Page 6: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

portada

Page 7: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

portada ponencias

Page 8: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

detalle ponencia

Page 9: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

portada ponentes

Page 10: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

formulario registro

Page 11: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

usuario conectado

Page 12: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

administración

Page 13: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

github.com/desymfony

Page 14: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

El desarrollo

Page 15: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1. Instalación

2. Modelo y Doctrine2

3. Vista y Twig

4. Formularios y seguridad

5. Backend

6. Assetic y Tests

Page 16: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

InstalandoSymfony2

Page 17: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1

symfony.com/download

Page 18: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

2CON vendors SIN vendors

.ZIP 5.3 MB 0.1 MB

.TGZ 2.7 MB 0.1 MB

Page 19: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

2CON vendors SIN vendors

.ZIP 5.3 MB 0.1 MB

.TGZ 2.7 MB 0.1 MB

DOWNLOAD

Page 20: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

3

descomprimir

Page 21: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

http://localhost/symfony

Page 22: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1

symfony.com/download

Page 23: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

2CON vendors SIN vendors

.ZIP 5.3 MB 0.1 MB

.TGZ 2.7 MB 0.1 MB

Page 24: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

2CON vendors SIN vendors

.ZIP 5.3 MB 0.1 MB

.TGZ 2.7 MB 0.1 MB

DOWNLOAD

Page 25: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

3

descomprimir

Page 26: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

4

cd <directorio_symfony>

php bin/vendors install

Page 27: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

SI

NO

CON vendors

SIN vendors

¿Usas y te sientes cómodo con

Git?

Page 28: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Configurador web

Page 29: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Configurar el proyecto vía web

EN LA PRÁCTICA

Page 30: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Instalando elproyecto

deSymfony

Page 31: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1

mkdir proyecto

Page 32: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

2

git [email protected]:desymfony/desymfony.git proyecto

Page 33: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

3

proyecto/bin/vendors install

Page 34: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

git checkout !b tutorial1 origin/tutorial1

Page 35: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Bundles

Page 36: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1 Proyecto

2 Aplicaciones

X Módulos

Y Plugins

1 Proyecto

1 Aplicación

X Bundles

Page 37: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

bundle

« Conjunto de archivos que implementan una única funcionalidad »

Page 38: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony

PonenciaBundle

PonenteBundle

UsuarioBundle

ComunBundle

Page 39: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony

DesymfonyBundle

Page 40: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony

DesymfonyBundle

Controller

Entity

Form

Resources

Page 41: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Desymfony / SitiosWeb / DesymfonyBundle

Page 42: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Desymfony / SitiosWeb / DesymfonyBundle

• Tu empresa

• El proyecto

• Tu cliente

VENDOR

Page 43: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Desymfony / SitiosWeb / DesymfonyBundle

• Tu empresa

• El proyecto

• Tu cliente

VENDOR CATEGORÍA(opcional)

Page 44: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Desymfony / SitiosWeb / DesymfonyBundle

• Tu empresa

• El proyecto

• Tu cliente

VENDOR CATEGORÍA(opcional)

NOMBRE

{OBLIGATORIO

Page 45: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Desymfony / DesymfonyBundle

Page 46: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Crear el bundle con el generador interactivo

EN LA PRÁCTICA

Page 47: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Creando la primera página

Page 48: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

desymfony / contacto

Page 49: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Page 50: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

enrutamiento

Page 51: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Controlador

enrutamiento

Page 52: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Controlador BD

Modelo

enrutamiento

Page 53: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Controlador

Vista

BD

Modelo

enrutamiento

Page 54: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Crear la página de contacto

EN LA PRÁCTICA

Page 55: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Crear todas las páginas estáticas del sitio

EN LA PRÁCTICA

Page 56: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Introducir el profiler y la barra de depuración web

EN LA PRÁCTICA

Page 57: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Namespaces

Page 58: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Antes de

symfony 1<?php

include './comun/db.php';

require './comun/utilidades.php';

$articulo = Doctrine::getTable('Articulo')->...

Page 59: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Aplicaciones

symfony 1<?php

$articulo = Doctrine::getTable('Articulo')->...

Page 60: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Aplicaciones

Symfony2<?php

use Desymfony\DesymfonyBundle\Entity\Articulo;

$articulo = new Articulo();

Page 61: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony/DesymfonyBundle

Entity

Ponencia

Ponente

Usuario

Page 62: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony/DesymfonyBundle/Entity/

Ponencia.php<?php

namespace Desymfony\DesymfonyBundle\Entity;

...

Page 63: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php<?php

public function portadaAction() {

$ponencia = new Ponencia();

...}

Page 64: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?phpuse Desymfony\DesymfonyBundle\Entity;

public function portadaAction() {

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 65: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?phpuse Desymfony\DesymfonyBundle\Entity;

public function portadaAction() {

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

$ponencia = new Entity\Ponencia();

Page 66: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?phpuse Desymfony\DesymfonyBundle\Entity as Entidad;

public function portadaAction() {

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 67: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?phpuse Desymfony\DesymfonyBundle\Entity as Entidad;

public function portadaAction() {

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

$ponencia = new Entidad\Ponencia();

Page 68: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$ponencia = new Ponencia();

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 69: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$ponencia = new Ponencia();

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

use Desymfony\DesymfonyBundle\Entity\Ponencia;

Page 70: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Inyección de Dependencoas

Page 71: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$db = $this->get('doctrine')->...

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 72: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$log = $this->get('logger')->...

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 73: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$mailer = $this->get('mailer')->...

...}

src/Desymfony/DesymfonyBundle/Controller/

PortadaController.php

Page 74: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

$this->get('mailer')->...

$this->container->get('mailer')->...

Contenedor de

Inyección de Dependencias

Page 75: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$this->get('mailer')->send($mensaje);

...}

Page 76: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$this->get('mailer')->send($mensaje);

...}

¿Qué mailer utilizar?Clase, métodos

Page 77: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<?php

public function portadaAction() {

$this->get('mailer')->send($mensaje);

...}

¿Qué mailer utilizar?Clase, métodos

¿Configuración?Servidor, puerto

Page 78: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

swiftmailer: transport: smtp host: localhost username: ~ password: ~

app/config/

config.yml

Page 79: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<xsd:complexType name="config">

<xsd:attribute name="username" type="xsd:string" />

<xsd:attribute name="password" type="xsd:string" />

<xsd:attribute name="host" type="xsd:string" />

<xsd:attribute name="port" type="xsd:string" />

<xsd:attribute name="type" type="xsd:string" />

...

</xsd:complexType>

[...]/SwiftMailerBundle/[...]/schema/

swiftmailer-1.0.xsd

Page 80: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<container xmlns="..." xmlns:xsi="..." xsi:schemaLocation="..."> <parameters> <parameter key="swiftmailer.class"> Swift_Mailer </parameter>

...

[...]/SwiftMailerBundle/[...]/config/

swiftmailer.xml

Page 81: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

<container xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">

<parameter key="swiftmailer.transport.smtp.class"> Swift_Transport_EsmtpTransport </parameter>

<call method="setHost"> <argument>%swiftmailer.transport.smtp.host%</argument> </call> <call method="setPort"> <argument>%swiftmailer.transport.smtp.port%</argument> </call>

[...]/SwiftMailerBundle/[...]/config/

swiftmailer.xml

Page 82: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

¡Dame un mailer! Contenedor de

Inyección de Dependencias

Page 83: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

¡Dame un mailer!

instrucciones para

crear mailersinstrucciones para

crear Doctrineinstrucciones para

crear loggers

Contenedor de Inyección de

Dependencias

Page 84: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

¡Dame un mailer!

instrucciones para

crear mailersinstrucciones para

crear Doctrineinstrucciones para

crear loggers

Contenedor de Inyección de

Dependencias

Page 85: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

1. Instalado Symfony2

2. Configurado Symfony2

3. Instalado deSymfony

4. Creado el bundle

5. Todas las páginas estáticas

Page 86: Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

[email protected]

twitter.com/javiereguiluz

linkedin.com/in/javiereguiluz

contacto