Download - Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

Transcript
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