SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
BACK-END CON

     SONATA ADMIN BUNDLE
                        E SYMFONY2, OF COURSE...

                            Andrea Delfino
                            andrea.delfino@gmail.com




             SYMFONYDAY 2012
sabato 6 ottobre 12
•Sviluppatore da 10+ anni (web e non)
                      •Anche un pò SysAdmin (DevOps ❤)
                      •Lavoro per Skuola.net (giù a piano terra)
                      •Mi piace il Software Libero
                      •Condivido (Web, LUG, ..., PUG)

                                          @ottimo
                             https://github.com/andreadelfino

                            PUG Torino: http://torino.grusp.org



             SYMFONYDAY 2012
sabato 6 ottobre 12
IL PROBLEMA
                                      TEMPO
                      Abbiamo poco tempo per sviluppare il back-end




             SYMFONYDAY 2012
sabato 6 ottobre 12
IL PROBLEMA
                                    ASPETTATIVE
                 Stiamo effettuando una migrazione da un CMS con un
                                    buon back-end




             SYMFONYDAY 2012
sabato 6 ottobre 12
LA SOLUZIONE

                           X
                      phpMyAdmin

             SYMFONYDAY 2012
sabato 6 ottobre 12
ALTERNATIVE

                      • Homebrew
                      • Altri Framework
                      • SF2/Doctrine CRUD Generator
                      • AdmingeneratorGeneratorBundle
                      • WhiteOctoberAdminBundle
                      • FooSimpleAdminBundle (one-dev-bundle)



             SYMFONYDAY 2012
sabato 6 ottobre 12
OPPURE

                      SonataAdminBundle
                          “Admin is not only about Model; but about providing a
                      consistent and rich user experience for managing data.”
                                                                    Thomas Rabaix




             SYMFONYDAY 2012
sabato 6 ottobre 12
SONATA PROJECT
                                      http://sonata-project.org



                      • Mantainer: Thomas Rabaix (https://github.com/rande)
                      • Sponsor: Ekino (http://www.ekino.com)
                      • Obiettivo: e-commerce framework
                      • Stato attuale: 13 bundles e qualche libreria




             SYMFONYDAY 2012
sabato 6 ottobre 12
CARATTERISTICHE
                 Dashboard                                             Templating
                                                                       •Base templates (field, list, filter) can be overwritten
                 List                                                  •Layout templates can be defined into the Service
                 •Automatic sort                                        Container
                 •Link to associated admin (Post => User)
                 •Custom templates                                     Others
                 •Row Action: edit, create, view, ...                  •Nested Admin (ie: /news/post/5/comment/list filter
                 •Batch Action                                          and create comments only for the post with id=5)
                 •Clever row visualisation: boolean values are         •Contextual Breadcrumb
                  represented with 'check picture'                     •Persistent parameters across an Admin
                 •Filter                                               •Side menu option
                 •Pagination                                           •Translated into 17 languages: CA, DE, EN, ES, FR, HR,
                                                                        IT, JA, LB, NL, PL, PT_BR, PT_PT, RU, SK, SL and UK
                 Edit / Create                                         •Built to be extended
                 •Inline edition                                       •Explain command line utility
                 •Association management (create related model with
                  + icon)                                              Bundles (on top of)
                 •Group fields                                          •SonataMediaBundle: a media manager bundle
                 •Sortable option                                      •SonataNewsBundle: a news/blog bundle
                 •Modal window to select model (when the list can be   •SonataPageBundle: a page (CMS like) bundle
                  important)                                           •SonataUserBundle: integration of FOSUserBundle and
                 •Dynamic form on [one|many]-to-many association        SonataAdminBundle
                  (add new element)




             SYMFONYDAY 2012
sabato 6 ottobre 12
ECOSISTEMA
                                     Symfony Framework
                                    Symfony Components
           SonataCacheBundle                                                  SonataPageBundle
            SonataBlockBundle                                                SonataNewsBundle
           SonataJQueryBundle                                                SonataMediaBundle
             KnpMenuBundle                                                    SonataUserBundle
                Exporter           SonataAdminBundle                            Symfony CMF
                                     abstract class Admin


               SonataDoctrineORMAdmin   SonataDoctrineMongoDBAdmin   SonataDoctrinePhpcrAdmin




             SYMFONYDAY 2012
sabato 6 ottobre 12
INSTALLAZIONE


                • vi deps && vendors install (branch/2.0 + sf2.0)
                • composer (master + sf2.1)




             SYMFONYDAY 2012
sabato 6 ottobre 12
CONFIGURAZIONE


                      • autoload.php + AppKernel.php
                      • config.yml + routing.yml




             SYMFONYDAY 2012
sabato 6 ottobre 12
FORSE NON TUTTI SANNO CHE...


                             In Bundle               Standalone
                      src/                     src/
                         Skuola/                  Skuola/
                           UniversitaBundle/        AdminBundle/
                               Admin/                   Admin/
                           VersioniBundle/          UniversitaBundle/
                               Admin/               VersioniBundle/
                           ...                      ...

                          skuola.net/admin         admin.skuola.net



             SYMFONYDAY 2012
sabato 6 ottobre 12
ADMIN CLASS
                          Class as a Service

          Service                          La nostra Admin class




                                      Entità




            Admin pool    Dashboard            Controller
                            group
             SYMFONYDAY 2012
sabato 6 ottobre 12
DASHBOARD
                                                 Twitter
                               Azioni rapide   Bootstrap ;)




                      Entità
                                               }Gruppo




             SYMFONYDAY 2012
sabato 6 ottobre 12
Filtri
                            LIST VIEW
                       Campi personalizzabili           Azioni




                              Esportazione


                                         Azioni batch

             SYMFONYDAY 2012
sabato 6 ottobre 12
LIST VIEW




             SYMFONYDAY 2012
sabato 6 ottobre 12
LIST VIEW
                                    Admin class

                          List Mapper


                                          Template custom



                                            Azioni




             SYMFONYDAY 2012
sabato 6 ottobre 12
LIST VIEW


                                              Rotte azioni


                                     Filtri




             SYMFONYDAY 2012
sabato 6 ottobre 12
EDIT / CREATE FORM
                          Entità relazionata

                                           Proprietà
                                                        Collezione di
                                                            entità
                                                         relazionate



                                                       Help inline

                                        Azioni CRUD
             SYMFONYDAY 2012
sabato 6 ottobre 12
EDIT / CREATE FORM
       Modal windows ;)
                                          List View



                      Opera




    Click per modificare
        l’associazione




             SYMFONYDAY 2012
sabato 6 ottobre 12
EDIT / CREATE FORM
                                                     Create Form



          Etichette




                      Creazione una nuova entità da associare


             SYMFONYDAY 2012
sabato 6 ottobre 12
EDIT / CREATE FORM
                           Form Mapper

                                  Tipo Model per le entità relazionate

                                                  Tipo Collection


                                         Visualizzazione custom


                                          Help inline



             SYMFONYDAY 2012
sabato 6 ottobre 12
FORSE NON TUTTI SANNO CHE...


                                         Form fields template




                                            Custom field block




             SYMFONYDAY 2012
sabato 6 ottobre 12
ALTRE CARATTERISTICHE
                      •Controller per azioni custom e batch
                      •Lifecycle Callbacks
                      •Validazione
                      •Personalizzazione avanzata dei Templates
                      •Paginazione
                      •Sidebar e Menu (via KnpMenuBundle)
                      •Traduzione (10+ lingue, Italiano incluso)
                      •ACL / Security Layer (SonataUserBundle + FOSUserBundle)
                      •CLI Utility (app/console sonata:admin:*)
                          http://sonata-project.org/bundles/admin/2-0/doc/index.html



             SYMFONYDAY 2012
sabato 6 ottobre 12
CONCLUSIONI
       •       Molto potente e flessibile
       •       Comunità attiva (>260 fork, >50 contrib)

       •Manca ancora unacarenterelease (anche se vicina per sf2.0)
                           stable
       • Documentazione

       • Versione “master” per sf2.1 non sempre stabile


                      Being a Good OSS Contributor - Jeremy Mikola (http://joind.in/talk/view/7216)




             SYMFONYDAY 2012
sabato 6 ottobre 12
Domande?


             SYMFONYDAY 2012
sabato 6 ottobre 12
Grazie
                                       So long, and thanks for all the fish! ;)




                                              @ottimo
                                 https://github.com/andreadelfino

                                      andrea.delfino@gmail.com



                      Thanks to Thomas Rabaix (@th0masr) for support and Lineke Kerckhoffs-
                                    Willems (@the_linie) for presentation tips.



             SYMFONYDAY 2012
sabato 6 ottobre 12

Mais conteúdo relacionado

Semelhante a Back-end con SonataAdminBundle (e Symfony2, of course...)

Systemd - Como Lug
Systemd - Como LugSystemd - Como Lug
Systemd - Como LugTruelite
 
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5Fabio Pignatti
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the CloudTwinbit
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceFabio Mora
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss CloudJBug Italy
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUGTruelite
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 Novembre
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 NovembreBreve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 Novembre
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 NovembreStefano Marchetti
 
Data Scraping, Data Organization
Data Scraping, Data OrganizationData Scraping, Data Organization
Data Scraping, Data OrganizationMarco Montanari
 
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupalDay
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneRoberto Polillo
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 

Semelhante a Back-end con SonataAdminBundle (e Symfony2, of course...) (20)

Systemd - Como Lug
Systemd - Como LugSystemd - Como Lug
Systemd - Como Lug
 
Drupal7
Drupal7Drupal7
Drupal7
 
Drush make vs composer
 Drush make vs composer Drush make vs composer
Drush make vs composer
 
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5
SuperenaLOTUS: 6 numeri vincenti di Lotus Domino 8.5
 
Dp3 Fabio Pignatti - Superena Lotus
Dp3  Fabio Pignatti - Superena LotusDp3  Fabio Pignatti - Superena Lotus
Dp3 Fabio Pignatti - Superena Lotus
 
Drupal in the Cloud
Drupal in the CloudDrupal in the Cloud
Drupal in the Cloud
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
 
Xpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologiaXpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologia
 
October 2009 - JBoss Cloud
October 2009 - JBoss CloudOctober 2009 - JBoss Cloud
October 2009 - JBoss Cloud
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUG
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
Domino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster RecoveryDomino Backup, Restore E Disaster Recovery
Domino Backup, Restore E Disaster Recovery
 
Il futuro di Plone
Il futuro di PloneIl futuro di Plone
Il futuro di Plone
 
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 Novembre
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 NovembreBreve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 Novembre
Breve resoconto dalla World Plone Conference 2009 26 Ottobre - 1 Novembre
 
Data Scraping, Data Organization
Data Scraping, Data OrganizationData Scraping, Data Organization
Data Scraping, Data Organization
 
Lezione1
Lezione1Lezione1
Lezione1
 
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 

Back-end con SonataAdminBundle (e Symfony2, of course...)

  • 1. BACK-END CON SONATA ADMIN BUNDLE E SYMFONY2, OF COURSE... Andrea Delfino andrea.delfino@gmail.com SYMFONYDAY 2012 sabato 6 ottobre 12
  • 2. •Sviluppatore da 10+ anni (web e non) •Anche un pò SysAdmin (DevOps ❤) •Lavoro per Skuola.net (giù a piano terra) •Mi piace il Software Libero •Condivido (Web, LUG, ..., PUG) @ottimo https://github.com/andreadelfino PUG Torino: http://torino.grusp.org SYMFONYDAY 2012 sabato 6 ottobre 12
  • 3. IL PROBLEMA TEMPO Abbiamo poco tempo per sviluppare il back-end SYMFONYDAY 2012 sabato 6 ottobre 12
  • 4. IL PROBLEMA ASPETTATIVE Stiamo effettuando una migrazione da un CMS con un buon back-end SYMFONYDAY 2012 sabato 6 ottobre 12
  • 5. LA SOLUZIONE X phpMyAdmin SYMFONYDAY 2012 sabato 6 ottobre 12
  • 6. ALTERNATIVE • Homebrew • Altri Framework • SF2/Doctrine CRUD Generator • AdmingeneratorGeneratorBundle • WhiteOctoberAdminBundle • FooSimpleAdminBundle (one-dev-bundle) SYMFONYDAY 2012 sabato 6 ottobre 12
  • 7. OPPURE SonataAdminBundle “Admin is not only about Model; but about providing a consistent and rich user experience for managing data.” Thomas Rabaix SYMFONYDAY 2012 sabato 6 ottobre 12
  • 8. SONATA PROJECT http://sonata-project.org • Mantainer: Thomas Rabaix (https://github.com/rande) • Sponsor: Ekino (http://www.ekino.com) • Obiettivo: e-commerce framework • Stato attuale: 13 bundles e qualche libreria SYMFONYDAY 2012 sabato 6 ottobre 12
  • 9. CARATTERISTICHE Dashboard Templating •Base templates (field, list, filter) can be overwritten List •Layout templates can be defined into the Service •Automatic sort Container •Link to associated admin (Post => User) •Custom templates Others •Row Action: edit, create, view, ... •Nested Admin (ie: /news/post/5/comment/list filter •Batch Action and create comments only for the post with id=5) •Clever row visualisation: boolean values are •Contextual Breadcrumb represented with 'check picture' •Persistent parameters across an Admin •Filter •Side menu option •Pagination •Translated into 17 languages: CA, DE, EN, ES, FR, HR, IT, JA, LB, NL, PL, PT_BR, PT_PT, RU, SK, SL and UK Edit / Create •Built to be extended •Inline edition •Explain command line utility •Association management (create related model with + icon) Bundles (on top of) •Group fields •SonataMediaBundle: a media manager bundle •Sortable option •SonataNewsBundle: a news/blog bundle •Modal window to select model (when the list can be •SonataPageBundle: a page (CMS like) bundle important) •SonataUserBundle: integration of FOSUserBundle and •Dynamic form on [one|many]-to-many association SonataAdminBundle (add new element) SYMFONYDAY 2012 sabato 6 ottobre 12
  • 10. ECOSISTEMA Symfony Framework Symfony Components SonataCacheBundle SonataPageBundle SonataBlockBundle SonataNewsBundle SonataJQueryBundle SonataMediaBundle KnpMenuBundle SonataUserBundle Exporter SonataAdminBundle Symfony CMF abstract class Admin SonataDoctrineORMAdmin SonataDoctrineMongoDBAdmin SonataDoctrinePhpcrAdmin SYMFONYDAY 2012 sabato 6 ottobre 12
  • 11. INSTALLAZIONE • vi deps && vendors install (branch/2.0 + sf2.0) • composer (master + sf2.1) SYMFONYDAY 2012 sabato 6 ottobre 12
  • 12. CONFIGURAZIONE • autoload.php + AppKernel.php • config.yml + routing.yml SYMFONYDAY 2012 sabato 6 ottobre 12
  • 13. FORSE NON TUTTI SANNO CHE... In Bundle Standalone src/ src/ Skuola/ Skuola/ UniversitaBundle/ AdminBundle/ Admin/ Admin/ VersioniBundle/ UniversitaBundle/ Admin/ VersioniBundle/ ... ... skuola.net/admin admin.skuola.net SYMFONYDAY 2012 sabato 6 ottobre 12
  • 14. ADMIN CLASS Class as a Service Service La nostra Admin class Entità Admin pool Dashboard Controller group SYMFONYDAY 2012 sabato 6 ottobre 12
  • 15. DASHBOARD Twitter Azioni rapide Bootstrap ;) Entità }Gruppo SYMFONYDAY 2012 sabato 6 ottobre 12
  • 16. Filtri LIST VIEW Campi personalizzabili Azioni Esportazione Azioni batch SYMFONYDAY 2012 sabato 6 ottobre 12
  • 17. LIST VIEW SYMFONYDAY 2012 sabato 6 ottobre 12
  • 18. LIST VIEW Admin class List Mapper Template custom Azioni SYMFONYDAY 2012 sabato 6 ottobre 12
  • 19. LIST VIEW Rotte azioni Filtri SYMFONYDAY 2012 sabato 6 ottobre 12
  • 20. EDIT / CREATE FORM Entità relazionata Proprietà Collezione di entità relazionate Help inline Azioni CRUD SYMFONYDAY 2012 sabato 6 ottobre 12
  • 21. EDIT / CREATE FORM Modal windows ;) List View Opera Click per modificare l’associazione SYMFONYDAY 2012 sabato 6 ottobre 12
  • 22. EDIT / CREATE FORM Create Form Etichette Creazione una nuova entità da associare SYMFONYDAY 2012 sabato 6 ottobre 12
  • 23. EDIT / CREATE FORM Form Mapper Tipo Model per le entità relazionate Tipo Collection Visualizzazione custom Help inline SYMFONYDAY 2012 sabato 6 ottobre 12
  • 24. FORSE NON TUTTI SANNO CHE... Form fields template Custom field block SYMFONYDAY 2012 sabato 6 ottobre 12
  • 25. ALTRE CARATTERISTICHE •Controller per azioni custom e batch •Lifecycle Callbacks •Validazione •Personalizzazione avanzata dei Templates •Paginazione •Sidebar e Menu (via KnpMenuBundle) •Traduzione (10+ lingue, Italiano incluso) •ACL / Security Layer (SonataUserBundle + FOSUserBundle) •CLI Utility (app/console sonata:admin:*) http://sonata-project.org/bundles/admin/2-0/doc/index.html SYMFONYDAY 2012 sabato 6 ottobre 12
  • 26. CONCLUSIONI • Molto potente e flessibile • Comunità attiva (>260 fork, >50 contrib) •Manca ancora unacarenterelease (anche se vicina per sf2.0) stable • Documentazione • Versione “master” per sf2.1 non sempre stabile Being a Good OSS Contributor - Jeremy Mikola (http://joind.in/talk/view/7216) SYMFONYDAY 2012 sabato 6 ottobre 12
  • 27. Domande? SYMFONYDAY 2012 sabato 6 ottobre 12
  • 28. Grazie So long, and thanks for all the fish! ;) @ottimo https://github.com/andreadelfino andrea.delfino@gmail.com Thanks to Thomas Rabaix (@th0masr) for support and Lineke Kerckhoffs- Willems (@the_linie) for presentation tips. SYMFONYDAY 2012 sabato 6 ottobre 12