0
Migrare da symfony 1a Symfony2Massimiliano Arione     @garakkio  Torino, 5 ottobre 2012
symfony 1 end of life: nov. 2012
cosa non è Symfony 2
cosa non è Symfony 2
cosa è Symfony2
Dependency Injection Container
come funziona il DIC<?php$mailer = $this->get(mailer);
come funziona il DIC<?php$mailer = $this->get(mailer);    niente più sfContext!
come funziona il DIC<?php$mailer = $this->get(newsletter);<?phpnamespace AcmeMyBundle;class Newsletter{   protected $maile...
come funziona il DIC<?phpnamespace AcmeMyBundle;use DoctrineORMEntityManager;class Newsletter{   protected $mailer, $em;  ...
test
model
model$ app/console doctrine:mapping:import AcmeMyBundle annotation$ app/console doctrine:generate:entities AcmeMyBundle --...
model<?phpnamespace AcmeMyBundleEntity;use DoctrineORMMapping as ORM;/** * @ORMTable(name="category") * @ORMEntity */class...
alcuni bundle da aggiungerestof/doctrine-extensions-bundlefriendsofsymfony/user-bundlesonata-project/doctrine-orm-admin-bu...
alcuni bundle da aggiungerestof/doctrine-extensions-bundle                              (sf1: behaviours)friendsofsymfony/...
controller<?php  /**   * Lists all Category entities.   *   * @Route("/", name="category")   * @Template()   */  public fu...
controller/** * @Route("/{id}/show", name="category_show") * @Template() */public function showAction($id){    $em = $this...
/**   * @Route("/create", name="category_create")   * @Method("POST")                          controller   * @Template("A...
view{% extends AcmeMyBundle::layout.html.twig %}{% block content %}   <h1>Category list</h1>   <table class="table table-s...
cachehttp
domande?
grazie!linkshttp://twitter.com/garakkiohttp://www.slideshare.net/garakcreditshttp://text2pic.com/http://symfony.com/tradem...
Upcoming SlideShare
Loading in...5
×

Migrare da symfony 1 a Symfony2

713

Published on

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
713
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of " Migrare da symfony 1 a Symfony2 "

  1. 1. Migrare da symfony 1a Symfony2Massimiliano Arione @garakkio Torino, 5 ottobre 2012
  2. 2. symfony 1 end of life: nov. 2012
  3. 3. cosa non è Symfony 2
  4. 4. cosa non è Symfony 2
  5. 5. cosa è Symfony2
  6. 6. Dependency Injection Container
  7. 7. come funziona il DIC<?php$mailer = $this->get(mailer);
  8. 8. come funziona il DIC<?php$mailer = $this->get(mailer); niente più sfContext!
  9. 9. come funziona il DIC<?php$mailer = $this->get(newsletter);<?phpnamespace AcmeMyBundle;class Newsletter{ protected $mailer; public function __construct(Swift_Mailer $mailer) { $this->mailer = $mailer; }}
  10. 10. come funziona il DIC<?phpnamespace AcmeMyBundle;use DoctrineORMEntityManager;class Newsletter{ protected $mailer, $em; public function __construct(Swift_Mailer $mailer, EntityManager $em) { $this->mailer = $mailer; $this->em = $em; }}
  11. 11. test
  12. 12. model
  13. 13. model$ app/console doctrine:mapping:import AcmeMyBundle annotation$ app/console doctrine:generate:entities AcmeMyBundle --no-backup
  14. 14. model<?phpnamespace AcmeMyBundleEntity;use DoctrineORMMapping as ORM;/** * @ORMTable(name="category") * @ORMEntity */class Category{ /** * @ORMColumn(name="id", type="integer") * @ORMId * @ORMGeneratedValue(strategy="AUTO") */ private $id; /** * @ORMColumn(name="name", type="string", length=255) */ private $name;}
  15. 15. alcuni bundle da aggiungerestof/doctrine-extensions-bundlefriendsofsymfony/user-bundlesonata-project/doctrine-orm-admin-bundle
  16. 16. alcuni bundle da aggiungerestof/doctrine-extensions-bundle (sf1: behaviours)friendsofsymfony/user-bundle (sf1: sfGuardPlugin)sonata-project/doctrine-orm-admin-bundle (sf1: admin generator)
  17. 17. 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, ); }
  18. 18. 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(), );}
  19. 19. /** * @Route("/create", name="category_create") * @Method("POST") controller * @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(), ); }
  20. 20. 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 %}
  21. 21. cachehttp
  22. 22. domande?
  23. 23. grazie!linkshttp://twitter.com/garakkiohttp://www.slideshare.net/garakcreditshttp://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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×