Création sites internet Bassin d'Arcachon - La Teste de Buch - Gujan Mestras - Biganos - Le Teich - Mios - Marcheprime - Audenge - Lanton - Andernos - Arés - Lège Cap Ferret

Installer et adapter SonatraAdminBundle à son projet Symfony2

L’un des points “faibles” du framework Symfony est qu’il ne dispose pas d’un outil d’administration a proprement parler pour gérer les entités créées et on est souvent amené à créer notre propre système d’administration ce qui est fastidieux et surtout rarement réutilisable. Pour combler cette lacune, vous allez découvrir dans la suite de cet article comment installer et adapter le Bundle Symfony2 SonatraAdminBundle.

En effet, SonatraAdminBundle permet d’ajouter une interface d’administration à votre projet  Symfony même s’il est déjà déployé et de l’adapter à toutes les entités créaient au moyen de quelques paramétrages.

Pour commencer voici les Bundles que nous allons utiliser dans la suite :

La première chose à faire est de télécharger les Bundles en question

Pour SonataDoctrineORMAdminBundle :

Avec Composer :


A la question “Please provide a version constraint for the sonata-project/doctrine-orm-admin-bundle requirement:” veuillez répondre “dev-master” si vous souhaitez utilisez la dernière version.

Pour activer le Bundle, il faut aller sur la page app/AppKernel.php et ajouter la ligne :
new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),

Pour SonataAdminBundle

Avec composer :

A la question “Please provide a version constraint for the sonata-project/jquery-bundle requirement: ” veuillez également répondre “dev-master” si vous souhaitez utilisez la dernière version.

Cela va télécharger SonataAdminBundle et ses dépendances à savoir SonataBlockBundle,SonatajQueryBundle et KnpMenuBundle qu’il faut par la suite activer dans le fichier AppKernel.php

Configuration de SonataAdminBundle

Ajouter dans le fichier app/config/config.yml

Une fois terminé, il faut installer les assets depuis les bundle avec la commande

et vider le cache


A ce stade, votre projet Symfony2 est fonctionnel et ne devrait présenter aucune erreur.

Si néanmoins vous rencontrez des problèmes ne paniquez pas, essayer de lire les erreurs affichées et de voir quel Bundle en est la source. Vérifiez que vous avez bien installer tous les Bundles et leurs dépendances et de les avoir activé dans le fichier AppKernel.php. Si le problème persiste toujours, n’hésitez pas à faire une recherche sur Google ou bien de consulter les forums spécialisés (Sonata Users GroupSymfony2 Users Group ou Symfony Forum).

Configuration des routes

Pour pouvoir accéder aux pages du Bundle SonataAdminBundle, il faut rajouter certaines routes dans le fichier routing.yml

Vous pouvez taper l’adresse : http://monSite.local/admin/dashboard pour accéder à l’administration du site (qui est pour le moment vide, mais ça marche tout de même).

Dans la suite de l’article, je vais utiliser deux entités que j’ai créé dans un précédent projet à savoir “Article” et “Categorie”. Le premier dispose des champs id et intitule et le second id, titre, auteur, categories et contenu.

Créer le service Admin

Dans votre Bundle, ajoutez un nouveau fichier admin.yml, dans le quel on ajoutera les différents éléments de notre projet afin de ne pas surcharger le fichier config.yml

il faut par la suite importer ce fichier dans config.yml
Ensuite dans le fichier Acme/DemoBundle/DependencyInjection/AcmeDemoBundleExtension.php

Remplacer
$loader->load(‘services.yml’);
par
$loader->load(‘admin.yml’);

Créer les class Admin

Dans votre Bundle créer un nouveau dossier que vous nommerez Admin (Acme/DemoBundle/Admin) puis créer dedans deux nouveaux fichiers CategorieAdmin.php etArticleAdmin.php



Voila, à ce stade l’administration de votre site est entièrement fonctionnelle avec le module Catégorie et Article.

SonataAdminBundle Dashboard

 Accueil de l’administration

SonataAdminBundle Dashboard

 Liste des catégories

SonataAdminBundle Dashboard

Ajouter une catégorie

SonataAdminBundle Dashboard

Liste des articles

SonataAdminBundle Dashboard

Ajouter un article

SonataAdminBundle Dashboard

Ajouter une catégorie depuis un article

2 réponses à “Installer et adapter SonatraAdminBundle à son projet Symfony2”

  1. lorant dit :

    A l’étape 2 lorsque je tape :
    php composer.phar require sonata-project/admin-bundle

    J’ai comme erreur :

    [Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
    You have requested a non-existent parameter « sonata.admin.configuration.admin_services ».

  2. Asmaa dit :

    à ce niveau : php app/console assets:install web
    j’ai toujours une erreur : fatal error class sonata\corebundle\sonatacorebundle not found