SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Présentation de EasyAdmin
Les trucs et astuces du bundle Symfony qui vous permet de créer
des espaces d'administration complet.
Qui suis-je ?
. Ex-CTO Monkees / Publicis
. Depuis janvier 2019, Consultant et Dév Web Freelance (Symfony, React & React Native)
+10 ans d’xp sur Symfony
https://twitter.com/rkueny https://kueny.me
EasyAdmin c’est quoi ?
Il s’agit d’un bundle Symfony permettant de 

rapidement disposer d’une admin (type CRUD) 

pour ses entities.
1ère release : 16 janvier 2015
~ 3 000 commits depuis
Soutenu par Javier membre actif de SensioLabs
Ajouter EasyAdmin à votre projet
Symfony avec Flex
Flex s’occupe de configurer EasyAdmin pour vous.
Gérer ses entities via EasyAdmin
List
Create
Liste des produits
Pour tout ce qui est configuration de base,
je vous invite à consulter la documentation qui est très bien faite.
(et intégrée au site officiel Symfony)
> https://symfony.com/doc/master/bundles/EasyAdminBundle/index.html <
Types de champ
Upload d’image (VichUploadBundle)
Couleurs principales
….
On peut facilement utiliser DQL pour nos entities
Et ensuite, on peut facilement mettre tout cela en forme avec le menu
(Pour les icones, Font-Awesome est utilisé)
On peut aussi améliorer la recherche.
De base la recherche est « Full Text » sur l’entity ciblé.
Par exemple, sur nos Produits si l’on veut faire une recherche par nom de catégorie,
cela ne fonctionne pas de base.
Mais cela s’ajoute en plusieurs courtes étapes.
1/ Créer un controller qui étends « EasyCorpBundleEasyAdminBundleControllerAdminController »
2/ Ajouter une méthode createSearchQueryBuilder
3/ Modifier la requête DQL.
Ce qui nous donne :
À force (et très rapidement)
Votre fichier de configuration va devenir très chargé :/
Pour éviter cela, on split le fichier
config/
packages/
easy_admin/
product.yaml
category.yaml
entityX.yaml
easy_admin.yaml
Pour rester dans l’esprit « rangement »,
vous pouvez ré-utiliser une liste de field dans votre configuration.
Comme pour changer la requête du moteur de recherche,
vous pouvez utiliser le controller pour ajouter des routes.



Par exemple cela vous permets
d’ajouter un Dashboard à votre projet
En « natif » EasyAdmin gère aussi très bien :
- les sous-formulaires
- Les relations many-to-many
Exemple pour du many to many
Il est aussi possible, en fonctionnalités plus avancées
D’ajouter par exemple :
- Export CSV générique
- Accessibilité au menu / entities par Roles
On va s’appuyer ici sur :
-Exporter (lecture du fichier YAML de configuration)
-Compiler (https://symfony.com/doc/current/service_container/compiler_passes.html)
-Services
-Action EasyAdmin
Pour résumé l’esprit de ce talk
EasyAdmin c’est :
-Une admin type CRUD rapide et efficace
-Une admin intégrée officiellement à Symfony
-De bonnes possibilités d’extension et de personnalisation.
Je vous laisse aussi regarder ces 3 bundles
(pour inspiration ou pour utilisation) :
https://github.com/alterphp/EasyAdminExtensionBundle
https://github.com/Kangourouge/EasyAdminExtensionBundle
https://github.com/WandiParis/EasyAdminPlusBundle
Il s’agit de 3 bundles d’extension d’EasyAdmin ajoutant des choses comme :
DropDown menu
Lock Form
Edit view in Show view
Accès par ROLES
Confirmation Modal
Export CSV
…
N’hésitez pas à contribuer au dépôt officiel :)
Il y a quelques issues « help wanted » ouvertes actuellement
https://github.com/EasyCorp/EasyAdminBundle/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
Merci de votre attention !

Contenu connexe

Tendances

Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileLilia Sfaxi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesLilia Sfaxi
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 

Tendances (20)

Présentation Angular 2
Présentation Angular 2 Présentation Angular 2
Présentation Angular 2
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Angular
AngularAngular
Angular
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications Mobiles
 
Cours 2 les composants
Cours 2 les composantsCours 2 les composants
Cours 2 les composants
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Introduction à Angular 2
Introduction à Angular 2Introduction à Angular 2
Introduction à Angular 2
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
 

Similaire à Présentation de EasyAdmin, le bundle d'admin de Symfony

Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- IntroductionMarwa OUNALLI
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleAbdelkader Rhouati
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony Imad ZAIRIG
 
PowerShell - Retours d'expériences
PowerShell - Retours d'expériencesPowerShell - Retours d'expériences
PowerShell - Retours d'expériencesRan Mellul
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Joomla : AcyMailing et ElasticEmail
Joomla : AcyMailing et ElasticEmailJoomla : AcyMailing et ElasticEmail
Joomla : AcyMailing et ElasticEmailMarc DECHEVRE
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyHugo Hamon
 
Joomla : AcyMailing et ElasticEmail (version 2019)
Joomla : AcyMailing et ElasticEmail (version 2019)Joomla : AcyMailing et ElasticEmail (version 2019)
Joomla : AcyMailing et ElasticEmail (version 2019)Marc DECHEVRE
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigAbdelkader Rhouati
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingEfficy CRM
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 

Similaire à Présentation de EasyAdmin, le bundle d'admin de Symfony (20)

Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
PowerShell - Retours d'expériences
PowerShell - Retours d'expériencesPowerShell - Retours d'expériences
PowerShell - Retours d'expériences
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Crud+tutorial+fr
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+fr
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Joomla : AcyMailing et ElasticEmail
Joomla : AcyMailing et ElasticEmailJoomla : AcyMailing et ElasticEmail
Joomla : AcyMailing et ElasticEmail
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Joomla : AcyMailing et ElasticEmail (version 2019)
Joomla : AcyMailing et ElasticEmail (version 2019)Joomla : AcyMailing et ElasticEmail (version 2019)
Joomla : AcyMailing et ElasticEmail (version 2019)
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
 
Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
Formation Efficy CRM - Technical training
Formation Efficy CRM - Technical trainingFormation Efficy CRM - Technical training
Formation Efficy CRM - Technical training
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 

Présentation de EasyAdmin, le bundle d'admin de Symfony

  • 1. Présentation de EasyAdmin Les trucs et astuces du bundle Symfony qui vous permet de créer des espaces d'administration complet.
  • 2. Qui suis-je ? . Ex-CTO Monkees / Publicis . Depuis janvier 2019, Consultant et Dév Web Freelance (Symfony, React & React Native) +10 ans d’xp sur Symfony https://twitter.com/rkueny https://kueny.me
  • 3. EasyAdmin c’est quoi ? Il s’agit d’un bundle Symfony permettant de rapidement disposer d’une admin (type CRUD) pour ses entities.
  • 4. 1ère release : 16 janvier 2015 ~ 3 000 commits depuis Soutenu par Javier membre actif de SensioLabs
  • 5. Ajouter EasyAdmin à votre projet Symfony avec Flex Flex s’occupe de configurer EasyAdmin pour vous.
  • 6. Gérer ses entities via EasyAdmin
  • 8. Liste des produits Pour tout ce qui est configuration de base, je vous invite à consulter la documentation qui est très bien faite. (et intégrée au site officiel Symfony) > https://symfony.com/doc/master/bundles/EasyAdminBundle/index.html < Types de champ Upload d’image (VichUploadBundle) Couleurs principales ….
  • 9. On peut facilement utiliser DQL pour nos entities
  • 10. Et ensuite, on peut facilement mettre tout cela en forme avec le menu (Pour les icones, Font-Awesome est utilisé)
  • 11.
  • 12. On peut aussi améliorer la recherche. De base la recherche est « Full Text » sur l’entity ciblé. Par exemple, sur nos Produits si l’on veut faire une recherche par nom de catégorie, cela ne fonctionne pas de base. Mais cela s’ajoute en plusieurs courtes étapes.
  • 13. 1/ Créer un controller qui étends « EasyCorpBundleEasyAdminBundleControllerAdminController » 2/ Ajouter une méthode createSearchQueryBuilder 3/ Modifier la requête DQL. Ce qui nous donne :
  • 14.
  • 15. À force (et très rapidement) Votre fichier de configuration va devenir très chargé :/
  • 16. Pour éviter cela, on split le fichier config/ packages/ easy_admin/ product.yaml category.yaml entityX.yaml easy_admin.yaml
  • 17. Pour rester dans l’esprit « rangement », vous pouvez ré-utiliser une liste de field dans votre configuration.
  • 18. Comme pour changer la requête du moteur de recherche, vous pouvez utiliser le controller pour ajouter des routes.
 
 Par exemple cela vous permets d’ajouter un Dashboard à votre projet
  • 19. En « natif » EasyAdmin gère aussi très bien : - les sous-formulaires - Les relations many-to-many Exemple pour du many to many
  • 20. Il est aussi possible, en fonctionnalités plus avancées D’ajouter par exemple : - Export CSV générique - Accessibilité au menu / entities par Roles On va s’appuyer ici sur : -Exporter (lecture du fichier YAML de configuration) -Compiler (https://symfony.com/doc/current/service_container/compiler_passes.html) -Services -Action EasyAdmin
  • 21. Pour résumé l’esprit de ce talk EasyAdmin c’est : -Une admin type CRUD rapide et efficace -Une admin intégrée officiellement à Symfony -De bonnes possibilités d’extension et de personnalisation.
  • 22. Je vous laisse aussi regarder ces 3 bundles (pour inspiration ou pour utilisation) : https://github.com/alterphp/EasyAdminExtensionBundle https://github.com/Kangourouge/EasyAdminExtensionBundle https://github.com/WandiParis/EasyAdminPlusBundle Il s’agit de 3 bundles d’extension d’EasyAdmin ajoutant des choses comme : DropDown menu Lock Form Edit view in Show view Accès par ROLES Confirmation Modal Export CSV …
  • 23. N’hésitez pas à contribuer au dépôt officiel :) Il y a quelques issues « help wanted » ouvertes actuellement https://github.com/EasyCorp/EasyAdminBundle/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
  • 24. Merci de votre attention !