Symfony2                   per utenti Symfony 1.x                         Architettura, modelli ed esempi http://phpday.it...
Chi sono            • Web developer @ideato            • 3 anni da professionista con php            • Se avete domande......
Symfony2 VS Symfony 1.x                                Le basi: dove va cosa?                          src                ...
Symfony2 VS Symfony 1.x                         Le basi: e chi gli dice che è lì?                             app/autoload...
Symfony2 VS Symfony 1.x          Le basi: Come funziona l’autoload? (namespace)  app/autoload.php  src/Ideato/XKanbanBundl...
Symfony2 VS Symfony 1.x                         Le basi: Come funziona l’autoload? (PEAR)  app/autoload.php    No namespac...
Symfony2 VS Symfony 1.x                         Le basi: Quali bundle sto usando?     app/AppKernel.php http://phpday.it  ...
Symfony2 VS Symfony 1.x                          Le basi: ok... e il routing?  app/config/routing.yml   src/Ideato/XKanbanB...
Symfony2 VS Symfony 1.x                          Internals                         HttpFoundation http://phpday.it        ...
Symfony2 VS Symfony 1.x                          Internals                           HttpKernel                         Ht...
Symfony2 VS Symfony 1.x                          Internals                           HttpKernel    Request                ...
Symfony2 VS Symfony 1.x                          Internals       HttpKernel::handle()    Request                HttpKernel...
Symfony2 VS Symfony 1.x                               Internals         Request                                           ...
Symfony2 VS Symfony 1.x                                              Internals         Request                            ...
Symfony2 VS Symfony 1.x                                  Internals                                                        ...
Symfony2 VS Symfony 1.x                                          Internals         Request                                ...
Symfony2 VS Symfony 1.x                                           Perchè Symfony2?                         •   Symfony2 è ...
Symfony2 VS Symfony 1.x                                Doctrine 2                                                         ...
Symfony2 VS Symfony 1.x                                               Doctrine 2                                    Le fixt...
Symfony2 VS Symfony 1.x                                               Doctrine 2                                    Le fixt...
Symfony2 VS Symfony 1.x                         Doctrine 2: let’s go faster!                                 Database     ...
Symfony2 VS Symfony 1.x                              Validation             Class Activity http://phpday.it               ...
Symfony2 VS Symfony 1.x                                       Validation             Class Activity                       ...
Symfony2 VS Symfony 1.x                                       Validation             Class Activity                       ...
Symfony2 VS Symfony 1.x                                      Events                                                       ...
Symfony2 VS Symfony 1.x                                     Events                                                        ...
Symfony2 VS Symfony 1.x                 Dependency Injection / Service container                         DDD (Domain Drive...
Symfony2 VS Symfony 1.x                 Dependency Injection / Service container                EntityManager   Mailer   L...
Symfony2 VS Symfony 1.x                 Dependency Injection / Service container                         •   Separazione d...
Symfony2 VS Symfony 1.x                                                   TWIG                         •   Ad oggetti     ...
Symfony2 VS Symfony 1.x                                 FORM                  Object                           Form Factor...
Symfony2 VS Symfony 1.x                                   Le ultime considerazioni...                         •   Semplici...
Symfony2 VS Symfony 1.x                                   Filippo De Santis                               Twitter: @filippo...
Upcoming SlideShare
Loading in …5
×

Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi

2,817 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,817
On SlideShare
0
From Embeds
0
Number of Embeds
1,036
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi

  1. 1. Symfony2 per utenti Symfony 1.x Architettura, modelli ed esempi http://phpday.it #phpdayvenerdì 13 maggio 2011
  2. 2. Chi sono • Web developer @ideato • 3 anni da professionista con php • Se avete domande... fatele! Sono comprese nel prezzo del biglietto http://phpday.it #phpdayvenerdì 13 maggio 2011
  3. 3. Symfony2 VS Symfony 1.x Le basi: dove va cosa? src i nostri bundles app configurazione vendor librerie esterne web php app/console assets:install --symlink web/ http://phpday.it #phpdayvenerdì 13 maggio 2011
  4. 4. Symfony2 VS Symfony 1.x Le basi: e chi gli dice che è lì? app/autoload.php L’ordine è importante! http://phpday.it #phpdayvenerdì 13 maggio 2011
  5. 5. Symfony2 VS Symfony 1.x Le basi: Come funziona l’autoload? (namespace) app/autoload.php src/Ideato/XKanbanBundle/Entity/Activity.php new IdeatoXKanbanBundleEntityActivity() autoload.php (namespace ‘Ideato’ in ‘src’) + <namespace><nome classe> = PATH http://phpday.it #phpdayvenerdì 13 maggio 2011
  6. 6. Symfony2 VS Symfony 1.x Le basi: Come funziona l’autoload? (PEAR) app/autoload.php No namespace! PATH = __DIR__.’/../vendor/twig-extensions/lib/Twig/Extensions/MyClass.php’ http://phpday.it #phpdayvenerdì 13 maggio 2011
  7. 7. Symfony2 VS Symfony 1.x Le basi: Quali bundle sto usando? app/AppKernel.php http://phpday.it #phpdayvenerdì 13 maggio 2011
  8. 8. Symfony2 VS Symfony 1.x Le basi: ok... e il routing? app/config/routing.yml src/Ideato/XKanbanBundle/Resources/config/routing.yml http://phpday.it #phpdayvenerdì 13 maggio 2011
  9. 9. Symfony2 VS Symfony 1.x Internals HttpFoundation http://phpday.it #phpdayvenerdì 13 maggio 2011
  10. 10. Symfony2 VS Symfony 1.x Internals HttpKernel HttpFoundation http://phpday.it #phpdayvenerdì 13 maggio 2011
  11. 11. Symfony2 VS Symfony 1.x Internals HttpKernel Request HttpFoundation http://phpday.it #phpdayvenerdì 13 maggio 2011
  12. 12. Symfony2 VS Symfony 1.x Internals HttpKernel::handle() Request HttpKernel Response HttpFoundation http://phpday.it #phpdayvenerdì 13 maggio 2011
  13. 13. Symfony2 VS Symfony 1.x Internals Request Response HttpKernel::handle() Response GetResponseEvent::hasResponse() [Some listeners set a response...] onCoreRequest Event http://phpday.it #phpdayvenerdì 13 maggio 2011
  14. 14. Symfony2 VS Symfony 1.x Internals Request HttpKernel::handle() Controller Controller Arguments onCoreRequest Event [Sets _controller Request attribute] Resolver Resolver [Listeners can manipulate the callable] onCoreController Event http://phpday.it #phpdayvenerdì 13 maggio 2011
  15. 15. Symfony2 VS Symfony 1.x Internals Response HttpKernel::handle() Value Response Controller GetResponseEvent::hasResponse() [Some listeners set a response...] onCoreRequest Event http://phpday.it #phpdayvenerdì 13 maggio 2011
  16. 16. Symfony2 VS Symfony 1.x Internals Request Response HttpKernel::handle() Response GetResponseEvent::hasResponse() Controller Response [Some listeners can manipulate the response...] onCoreResponse Event http://phpday.it #phpdayvenerdì 13 maggio 2011
  17. 17. Symfony2 VS Symfony 1.x Perchè Symfony2? • Symfony2 è un evoluzione • Sfrutta quelle che sono le potenzialità di php 5.3 • Ad oggetti • Punta all’indipendenza dei propri componenti • CoC: Symfony2 offre la possibilità di utilizzare diversi strumenti per raggiungere un risultato, ma non usa le configurazioni per modificare il comportamento degli strumenti che utilizza. http://phpday.it #phpdayvenerdì 13 maggio 2011
  18. 18. Symfony2 VS Symfony 1.x Doctrine 2 $manager->persist($object); $object->save(); Paradigm shift (DDD) $manager->flush(); ORM (Configurazione mapping) DBAL (configurazione accesso db) DB http://phpday.it #phpdayvenerdì 13 maggio 2011
  19. 19. Symfony2 VS Symfony 1.x Doctrine 2 Le fixtures sono oggetti https://github.com/doctrine/data-fixtures http://symfony.com/doc/current/cookbook/doctrine/doctrine_fixtures.html http://phpday.it #phpdayvenerdì 13 maggio 2011
  20. 20. Symfony2 VS Symfony 1.x Doctrine 2 Le fixtures sono oggetti https://github.com/doctrine/data-fixtures http://symfony.com/doc/current/cookbook/doctrine/doctrine_fixtures.html http://phpday.it #phpdayvenerdì 13 maggio 2011
  21. 21. Symfony2 VS Symfony 1.x Doctrine 2: let’s go faster! Database serialized ORM object object http://phpday.it #phpdayvenerdì 13 maggio 2011
  22. 22. Symfony2 VS Symfony 1.x Validation Class Activity http://phpday.it #phpdayvenerdì 13 maggio 2011
  23. 23. Symfony2 VS Symfony 1.x Validation Class Activity Validator Errori [annotation, yml, xml, php] http://phpday.it #phpdayvenerdì 13 maggio 2011
  24. 24. Symfony2 VS Symfony 1.x Validation Class Activity Validator Errori [annotation, yml, xml, php] http://phpday.it #phpdayvenerdì 13 maggio 2011
  25. 25. Symfony2 VS Symfony 1.x Events Listeners my_listener EventDispatcher::dispatch($event) your_listener their_listener Invece di definire classi nel filter.yml, definisci listeners! http://phpday.it #phpdayvenerdì 13 maggio 2011
  26. 26. Symfony2 VS Symfony 1.x Events Listeners my_listener MyEventDispatcher::dispatch($event) your_listener their_listener Si può definire più di un EventDispatcher http://phpday.it #phpdayvenerdì 13 maggio 2011
  27. 27. Symfony2 VS Symfony 1.x Dependency Injection / Service container DDD (Domain Driven Design) + Service Oriented Architecture http://phpday.it #phpdayvenerdì 13 maggio 2011
  28. 28. Symfony2 VS Symfony 1.x Dependency Injection / Service container EntityManager Mailer Logger Validator ... Service Container Oggetti che utilizzano i servizi definiti nel sistema http://phpday.it #phpdayvenerdì 13 maggio 2011
  29. 29. Symfony2 VS Symfony 1.x Dependency Injection / Service container • Separazione delle responsabilità • Test più specifici (se non unitari) per ogni classe • Dipendenze esplicite • Un solo oggetto che è responsabile di instaziare i servizi della nostra applicazione http://phpday.it #phpdayvenerdì 13 maggio 2011
  30. 30. Symfony2 VS Symfony 1.x TWIG • Ad oggetti • Refattorizzabile • Implementa l’ereditarietà • E’ possibile accedere ai blocchi dei template da cui si eredita! http://phpday.it #phpdayvenerdì 13 maggio 2011
  31. 31. Symfony2 VS Symfony 1.x FORM Object Form Factory/Builder isValid() Validator http://phpday.it #phpdayvenerdì 13 maggio 2011
  32. 32. Symfony2 VS Symfony 1.x Le ultime considerazioni... • Semplicità • Symfony2 contiene Symfony 1.x • La barriera di apprendimento iniziale è alta • Ha un sistema di caching che fa paura! (vedi @fabpot) • Doctrine 2: nuovo approccio (rif. “Paradigm shift”) • Traduzioni? Form? Comandi shell? Stanno arrivando! http://phpday.it #phpdayvenerdì 13 maggio 2011
  33. 33. Symfony2 VS Symfony 1.x Filippo De Santis Twitter: @filippodesantis fd@ideato.it Joind.in: http://joind.in/talk/view/3004 Examples: https://github.com/p16/ikb http://phpday.it #phpdayvenerdì 13 maggio 2011

×