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.