agence-adeliom / easy-seo-bundle
Symfony SEO bundle for EasyAdmin
Package info
github.com/agence-adeliom/easy-seo-bundle
Type:symfony-bundle
pkg:composer/agence-adeliom/easy-seo-bundle
3.0.2
2026-01-29 07:57 UTC
Requires
- php: >=8.2
- agence-adeliom/easy-common-bundle: ^3.0.2
- agence-adeliom/easy-media-bundle: ^3.0.2
- easycorp/easyadmin-bundle: ^3.4 || ^v4.0
- presta/sitemap-bundle: ^4.0
- symfony/config: ^6.4 || ^7.0
- symfony/css-selector: 7.4.x-dev
- symfony/dependency-injection: ^6.4 || ^7.0
- symfony/deprecation-contracts: ^2.2 || ^v3.0
- symfony/dom-crawler: 7.4.x-dev
- symfony/event-dispatcher: ^6.4 || ^7.0
- symfony/framework-bundle: ^6.4 || ^7.0
- symfony/http-kernel: ^6.4 || ^7.0
- symfony/options-resolver: ^6.4 || ^7.0
- symfony/property-access: ^6.4 || ^7.0
Requires (Dev)
- phpunit/phpunit: 11.5.x-dev
This package is auto-updated.
Last update: 2026-06-17 23:10:41 UTC
README
Easy SEO Bundle
Versions
| Repository Branch | Version | Symfony Compatibility | PHP Compatibility | Status |
|---|---|---|---|---|
3.x |
3.x |
6.4, and 7.x |
8.2 or higher |
New features and bug fixes |
2.x |
2.x |
5.4, and 6.x |
8.0.2 or higher |
Bug fixes |
1.x |
1.x |
4.4, and 5.x |
7.2.5 or higher |
No longer maintained |
Installation with Symfony Flex
Add our recipes endpoint
{
"extra": {
"symfony": {
"endpoint": [
"https://api.github.com/repos/agence-adeliom/symfony-recipes/contents/index.json?ref=flex/main",
...
"flex://defaults"
],
"allow-contrib": true
}
}
}
Install with composer
composer require agence-adeliom/easy-seo-bundle
Documentation
Customisation
# config/packages/easy_seo.yaml easy_seo: title: suffix: ACME # Change the title suffix separator: '|' # Change the title separator breadcrumbs: class: 'breadcrumb' item_class: 'breadcrumb-item' link_class: '' current_class: 'active' separator: '>' separator_class: 'breadcrumb-separator' enable_profiler: '%kernel.debug%' ignore_profiler: - '^/admin*'
Add SEO to your entity
Entity
use Adeliom\EasySeoBundle\Traits\EntitySeoTrait; class Article { use EntitySeoTrait; }
CRUD Controller
class ArticleCrudController extends AbstractCrudController { public function configureFields(string $pageName): iterable { yield SEOField::new("seo"); } }
Twig template
# Render the title {{- seo_title(object.seo) -}} # Render the metadatas {{- seo_metas(object.seo) -}} # Render the breadcrumb {{- seo_breadcrumb() -}}
Events
easyseo.title
use Symfony\Contracts\EventDispatcher\Event; $dispatcher->addListener('easyseo.title', function (Event $event) { // will be executed when the easyseo.title event is dispatched // Get the title $title = $event->getArgument("title"); // Set the title $event->setArgument("title", "custom title"); });
easyseo.render_meta
use Symfony\Contracts\EventDispatcher\Event; $dispatcher->addListener('easyseo.render_meta', function (Event $event) { // will be executed when the easyseo.render_meta event is dispatched // Get SEO data $seoData = $event->getArgument("datas"); // Set SEO data $event->setArgument("datas", $seoData); });
easyseo.breadcrumb
use Symfony\Contracts\EventDispatcher\Event; $dispatcher->addListener('easyseo.breadcrumb', function (Event $event) { // will be executed when the easyseo.breadcrumb event is dispatched // Get breadcrumb's items $items = $event->getArgument("items"); // Set breadcrumb's items $event->setArgument("items", $items); });