Symfony et l’AdminBundle – ça fonctionne!

« Ça ne marche pas, ça fonctionne » – JF

Excellente nouvelle, l’AdminBundle a été modifié pour fonctionner avec la version beta1 de Symfony.

Grâce à la documentation mise en ligne par Thomas Rabaix , j’ai assez facilement réussi à obtenir ça:

(oui, les datas ne sont pas très réaliste, car loadées rapidement avec DoctrineFixturesBundle)

Mon seul « soucis » a été de comprendre la configuration à insérer dans config.yml, ne sachant pas trop les préfixes « sonata » qu’il fallait garder. Donc voici ce que j’ai mis dans mon fichier:

services:
  sonata.blog.admin.post:
    class: SaadTazi\BlogBundle\Admin\PostAdmin
    tags:
      - { name: sonata.admin, manager_type: orm, group: saadtazi_blog, label: post }
    arguments: [null, SaadTazi\BlogBundle\Entity\Post, BlogBundle:PostAdmin]
  sonata.blog.admin.author:
    class: SaadTazi\BlogBundle\Admin\AuthorAdmin
    tags:
      - { name: sonata.admin, manager_type: orm, group: saadtazi_blog, label: author }
    arguments: [null, SaadTazi\BlogBundle\Entity\Author, BlogBundle:AuthorAdmin]

(oui, je sais, j’ai fait un mini système de blog, pas très original, et il existe déjà un NewsBundle… mais c’est assez simple comme objectif…)

À noter

  • La documentation: j’ai déjà donné le lien de la documentation, mais la revoici, juste au cas où vous n’avez pas compris que c’est ce qui m’a permis d’y arriver… http://rabaix.net/AdminBundle/html/index.html
  • La possibilité d’ajouter un enregistrement relié par une foreign key directement depuis (depuis une modal jQuery). Un exemple:

  • Par rapport à l’admin generator de symfony 1 (une ligne de commande et on avait un module), là il y a un plus de chose à faire pour le développeur: une classe Controller (super simple), une classe Admin, de la configuration dans config.yml (ou xml ou …)
  • Reste à trouver comment customiser les menus (xliff i18n?)…
  • Il m’a fallu appliquer ce patch afin de supprimer un problème de « invalid CSRF token » à chaque fois que je voulais sauvegarder quelque chose (pas encore accepté…). Donc ce n’est probablement pas super stable encore… Mais je pense que c’est une fonctionnalité essentielle pour l’adoption de Symfony par la communauté…

Merci, Merci, Merci, Merci!!!

Ça ressemble étrangement à django, vous ne trouvez pas 😉 ? Bravo en tout cas en gens autours de sonata-project.