Migrare da symfony 1 a Symfony2

23
Migrare da symfony 1 a Symfony2 Massimiliano Arione @garakkio Torino, 5 ottobre 2012

description

 

Transcript of Migrare da symfony 1 a Symfony2

Page 1: Migrare da symfony 1 a Symfony2

Migrare da symfony 1

a Symfony2Massimiliano Arione

@garakkio

Torino, 5 ottobre 2012

Page 2: Migrare da symfony 1 a Symfony2

symfony 1 end of life: nov. 2012

Page 3: Migrare da symfony 1 a Symfony2

cosa non è Symfony 2

Page 4: Migrare da symfony 1 a Symfony2

cosa non è Symfony 2

Page 5: Migrare da symfony 1 a Symfony2

cosa è Symfony2

Page 6: Migrare da symfony 1 a Symfony2

Dependency Injection Container

Page 7: Migrare da symfony 1 a Symfony2

come funziona il DIC<?php$mailer = $this->get('mailer');

Page 8: Migrare da symfony 1 a Symfony2

come funziona il DIC<?php$mailer = $this->get('mailer');

niente più sfContext!

Page 9: Migrare da symfony 1 a Symfony2

come funziona il DIC<?php$mailer = $this->get('newsletter');

<?phpnamespace Acme\MyBundle;

class Newsletter{ protected $mailer;

public function __construct(Swift_Mailer $mailer) { $this->mailer = $mailer; }}

Page 10: Migrare da symfony 1 a Symfony2

come funziona il DIC<?phpnamespace Acme\MyBundle;

use Doctrine\ORM\EntityManager;

class Newsletter{ protected $mailer, $em;

public function __construct(Swift_Mailer $mailer, EntityManager $em) { $this->mailer = $mailer; $this->em = $em; }}

Page 11: Migrare da symfony 1 a Symfony2

test

Page 12: Migrare da symfony 1 a Symfony2

model

Page 13: Migrare da symfony 1 a Symfony2

model

$ app/console doctrine:mapping:import AcmeMyBundle annotation

$ app/console doctrine:generate:entities AcmeMyBundle --no-backup

Page 14: Migrare da symfony 1 a Symfony2

model<?php

namespace Acme\MyBundle\Entity;use Doctrine\ORM\Mapping as ORM;

/** * @ORM\Table(name="category") * @ORM\Entity */class Category{ /** * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id;

/** * @ORM\Column(name="name", type="string", length=255) */ private $name;}

Page 15: Migrare da symfony 1 a Symfony2

alcuni bundle da aggiungere

stof/doctrine-extensions-bundle

friendsofsymfony/user-bundle

sonata-project/doctrine-orm-admin-bundle

Page 16: Migrare da symfony 1 a Symfony2

alcuni bundle da aggiungere

stof/doctrine-extensions-bundle(sf1: behaviours)

friendsofsymfony/user-bundle(sf1: sfGuardPlugin)

sonata-project/doctrine-orm-admin-bundle(sf1: admin generator)

Page 17: Migrare da symfony 1 a Symfony2

controller<?php /** * Lists all Category entities. * * @Route("/", name="category") * @Template() */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $entities = $em->getRepository('AcmeMyBundle:Category')->findAll();

return array( 'entities' => $entities, ); }

Page 18: Migrare da symfony 1 a Symfony2

controller /** * @Route("/{id}/show", name="category_show") * @Template() */ public function showAction($id) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('AcmeMyBundle:Category')->find($id); if (!$entity) { throw $this->createNotFoundException('Unable to find Category entity.'); } $deleteForm = $this->createDeleteForm($id);

return array( 'entity' => $entity, 'delete_form' => $deleteForm->createView(), ); }

Page 19: Migrare da symfony 1 a Symfony2

controller /** * @Route("/create", name="category_create") * @Method("POST") * @Template("AcmeMyBundle:Category:new.html.twig") */ public function createAction(Request $request) { $entity = new Category(); $form = $this->createForm(new CategoryType(), $entity); $form->bind($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush();

return $this->redirect($this->generateUrl('category_show', array('id' => $entity->getId()))); }

return array( 'entity' => $entity, 'form' => $form->createView(), ); }

Page 20: Migrare da symfony 1 a Symfony2

view{% extends 'AcmeMyBundle::layout.html.twig' %}

{% block content %}

<h1>Category list</h1> <table class="table table-striped table-hover table-bordered records_list"> <tbody> {% for entity in paginator %} <tr> <td><a href="{{ path('category_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td> <td>{{ entity.name }}</td> <td class="btn-group"> {# ... #} </td> </tr> {% endfor %} </tbody> </table>

{% endblock %}

Page 21: Migrare da symfony 1 a Symfony2

cache

http

Page 22: Migrare da symfony 1 a Symfony2

domande?

Page 23: Migrare da symfony 1 a Symfony2

grazie!linkshttp://twitter.com/garakkiohttp://www.slideshare.net/garak

creditshttp://text2pic.com/http://symfony.com/trademarkhttp://php.net/download-logos.phphttp://doophp.com/temp/guide/mvcabout.pnghttp://grigio.org/html5-linux-day/stuff/client-server.pnghttps://elearning.industriallogic.com/gh/albums/wrappersAndWalkers/injector/images/big-tomatoes.gifhttp://openclipart.org/image/800px/svg_to_png/94723/db.pnghttp://clivemind.com/wp-content/uploads/2012/07/logo.pnghttp://www.kidsvoting.dreamhosters.com/uploads/images/vote_1.jpghttp://markup.su/highlighter/