Parlons de votre projet
Partitech Sonata Extra Bundle

Sonata Extra Bundle : installation

Installation composer require partitech/sonata-extra Enregistrer le bundle dans bundles.php Partitech\SonataExtra\PartitechSonataExtraBundle::class => ['all' => true], Charger les ressources sur le front Sonata Page {% block sonata_page_stylesheets...

Contrôles de compatibilité Symfony et Sonata

Installation

composer require partitech/sonata-extra

Enregistrer le bundle dans bundles.php

Partitech\SonataExtra\PartitechSonataExtraBundle::class => ['all' => true],

Charger les ressources sur le front Sonata Page

{% block sonata_page_stylesheets %}
    <link rel="stylesheet" href="{{ asset('bundles/sonatapage/frontend.css') }}" media="all">
    <link rel="stylesheet" href="{{ asset('bundles/partitechsonataextra/assets/styles/admin.css') }}" media="all">
{% endblock %}

{% block sonata_page_javascripts %}
    <script src="{{ asset('bundles/partitechsonataextra/assets/admin.js') }}"></script>
{% endblock %}

Déclarer les ressources de l’administration

sonata_admin:
    assets:
        extra_javascripts:
            - js/runroom_sortable_init.js
            - js/jquery-ui.min.js
            - js/menu-admin.js
            - bundles/fosckeditor/ckeditor.js
            - bundles/partitechsonataextra/assets/admin.js

        extra_stylesheets:
            - bundles/sonatatranslation/css/sonata-translation.css
            - bundles/partitechsonataextra/assets/styles/admin.css
            - css/admin.css
            - build/admin.css

Installer les ressources publiques

php bin/console sonata:extra:install-gutenberg
php bin/console ckeditor:install --tag=4.19.0
php bin/console assets:install

Initialiser Sonata Page et ses routes multilingues

php bin/console sonata:page:create-site
php bin/console sonata:page:update-core-routes
php bin/console sonata:extra:page-fix-route
php bin/console sonata:page:create-snapshots

Les traductions peuvent être remplacées dans votre projet en utilisant la hiérarchie de traduction Symfony de cette manière :

mkdir translations
touch translations/SonataExtraBundle.fr.yaml
cat vendor/partitech/sonata-extra/translations/messages.fr.yaml > translations/SonataExtraBundle.fr.yaml

Vous pouvez rediriger l’utilisateur vers le site et le chemin relatif attendus avec AuthenticationSuccessHandler dans security.yaml :

    firewalls:
        admin:
            form_login:
                success_handler: Partitech\SonataExtra\Handler\AuthenticationSuccessHandler

Adapter l’exemple à la version installée

Les exemples Symfony et Sonata restent attachés aux versions indiquées dans l’article. Symfony 4.x et Symfony 6.2 ne sont plus maintenus : pour un projet actuel, utilisez une branche maintenue et la documentation correspondant exactement à vos dépendances.

php bin/console about
composer show symfony/framework-bundle sonata-project/admin-bundle

Avant de reprendre le code, contrôlez les signatures, les services, les routes et les templates concernés. Ajoutez ensuite un test fonctionnel couvrant les autorisations, le code HTTP et le résultat visible.

Référence : versions Symfony maintenues.

Partager cet article