Introdução ao Symfony 2 - SfCon 2012

Post on 20-Jun-2015

1.698 views 3 download

description

Introdução ao Symfony 2, apresentação do conceito de Bundles e comparação com o uso das principais ferramentas de CMS do mercado.

Transcript of Introdução ao Symfony 2 - SfCon 2012

BONS SISTEMAS DEPENDEM DE BONS PROGRAMADORES E BOAS FERRAMENTAS, E NÃO

DE LINGUAGENS ESPECÍFICAS.

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

6 bons motivos para usar Symfony

<html> <head> <title>Comentários da página {{ titulo }}</title> </head> <body> <h1>{{ titulo }} </h1> <ul> {% for comentario in comentarios %} <li>{{ comentario.autor }}: {{ comentario.texto }}</li> {% endfor %} </ul> </body> </html>

<html> <head> <title>Comentários da página {{ titulo }}</title> </head> <body> <h1>{{ titulo }} </h1> <ul> {% for comentario in comentarios %} <li>{{ comentario.autor }}: {{ comentario.texto }}</li> {% endfor %} </ul> </body> </html>

<html> <head> <title>Comentários da página <?php echo $titulo; ?></title> </head> <body> <h1><?php echo $titulo; ?></h1> <ul> <?php foreach ($comentarios as $comentario) { ?> <li><?php echo $comentario.texto; ?></li> <?php } ?> </ul> </body> </html>

app/config

app/config

doctrine:mapping:import

doctrine:mapping:import

doctrine:generate:entities

$product = new Product();

$product->setName('Bicicleta');

$product->setPrice('1900.00');

$product->setDescription('Bicicleta aro 18');

$em = $this->getDoctrine()->getEntityManager();

$em->persist($product);

$em->flush();

$repository = $this->getDoctrine()->

getRepository('TesteBundle:Product');

$products = $repository->findOneBy(

array('name' => 'Bicicleta',

'price' => 1900.00)

);

# app/config/routing.yml

product_show:

pattern: /produto/{name}

defaults: { _controller: TestBundle:Product:show }

# src/Test/TestBundle/Controller/ProductController.php

class ProductController extends Controller {

public function showAction($name) {

$repository = $this->getDoctrine()

->getRepository(‘TestBundle:Product');

$product = $repository->findOneByName($name);

// envia o produto para ser exibido na tela

}

}

/web

php app/console generate:bundle

--namespace=Test/UserBundle --format=yml

Criação do bundle em linha de comando.

Informa qual a url, o Bundle e a action que será executada.

# src/Test/UserBundle/Resources/config/routing.yml

hello:

pattern: /usuario/{name}

defaults: { _controller: TestUserBundle:User:index }

Recupera o nome pela variável vinda da url e cria o Response.

// src/Test/UserBundle/Controller/UserController.php

class UserController {

public function indexAction($name) {

return new Response('<html><body>Olá '

.$name.'!</body></html>');

}

}