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.
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
….
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