Sonata Admin Bundle to system do zarządzania treścią na stronie internetowej (ang. Content Management System). Alternatywnym rozwiązaniem jest EasyAdmin, o którym pisałem w kilku poprzednich postach.
Każde z rozwiązań ma swoje plusy i minusy. Najlepiej poznać oba systemy i wtedy zdecydować, który będzie dla nas wygodniejszy w obsłudze i kodowaniu. EasyAdmin napewno nadaje się do mniejszych projektów typu Blog, ale posiada za to większe wsparcie w Internecie. Sonata oparta jest o framework Symfony z dużym naciskiem na zaplecze administracyjne.
Oprócz Admin Bundle, Sonata dostarcza sporo innych pakietów, m.in: Page Bundle, Block Bundle, News Bundle, Media Bundle, SEO Bundle, a nawet E-Commerce.
Więcej przykładów znajdziesz na stronie projektu.
Instalacja i konfiguracja SonataAdminBundle w Symfony 4
1. Instalujemy pakiet z konsoli wiersza poleceń:
1 |
$ composer require sonata-project/admin-bundle |
2. Doinstaluj Sonata Doctrine ORM Admin Bundle:
1 |
$ composer require sonata-project/doctrine-orm-admin-bundle |
3. Zaktualizuj plik z pakietami – bundles.php (/config/bundles.php):
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // config/bundles.php return [ //... Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true], Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true], Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], Sonata\AdminBundle\SonataAdminBundle::class => ['all' => true], ]; |
4. Dodaj plik konfiguracyjny sonata_admin.yaml (config/packages/sonata_admin.yaml):
1 2 3 4 5 6 7 8 9 10 |
sonata_admin: title: 'Sonata Admin' dashboard: blocks: - { type: sonata.admin.block.admin_list, position: left } sonata_block: blocks: sonata.admin.block.admin_list: contexts: [admin] |
W pliku tym będziemy mogli edytować wygląd panelu (i nie tylko). Ale o tym innym razem 🙂
5. Utwórz plik z routingiem – sonata_admin.yaml (config/routes/sonata_admin.yaml):
1 2 3 4 5 6 7 8 |
admin_area: resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml" prefix: /admin _sonata_admin: resource: . type: sonata_admin prefix: /admin |
6. Wyczyść pamięć podręczną i zainstaluj zasoby Assetic:
1 2 |
$ php bin/console cache:clear $ php bin/console assets:install |
Jeśli nie pojawiły się wyjątki, możemy już uruchomić stronę z panelem admina: https://127.0.0.1/public/index.php/admin/
… jak na razie bardzo ubogą 🙂
Czytaj dalej: PRZYKŁAD PANELU CMS W SONATA ADMIN BUNDLE I SYMFONY 4 →