Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Seo Bundle Laravel Package

leogout/seo-bundle

A Symfony bundle for managing SEO metadata such as page titles, meta descriptions, canonical URLs and Open Graph tags, with flexible configuration for adding SEO data to your routes and templates.

View on GitHub
Deep Wiki
Context7

Getting Started

v1.3.0 is primarily a compatibility and maintenance release: it adds Symfony 6 support, refactors for PHP 8.1, updates tests for PHPUnit 9.5, adds a Twig extension test case, and replaces Travis CI with GitHub Actions. No new end-user Twig features are called out.

Start by verifying platform compatibility before upgrading:

  1. Confirm your app can run PHP 8.1.
  2. Check your Symfony version and Twig constraints; v1.3.0 adds Symfony 6 support, but confirm whether Symfony 5 remains supported by reading the package’s composer.json.
  3. Update the package with Composer and run your existing test suite plus a template smoke test.
  4. Find the extension registration point first: Symfony service/bundle config, manual Twig\Environment::addExtension(), or a Laravel/Twig bridge provider if you are using Twig inside Laravel.

A good first use case is to render a minimal template that exercises the extension’s filter/function/test, then run the new Twig extension test case pattern if you maintain custom extensions.

Implementation Patterns

Register the extension the same way your app already wires Twig extensions. In Symfony, this is typically service configuration tagged for Twig. In Laravel with a Twig bridge, use the bridge’s documented registration mechanism rather than assuming this package ships Laravel-specific providers.

Use the extension in templates through its Twig filters, functions, or tests, but keep extension classes thin. Delegate business logic to application services so the Twig layer stays easy to test and replace.

For custom extensions, use the newly added Twig extension test case as a template. A practical pattern:

  • Instantiate the extension with mocked or real dependencies.
  • Register it on a Twig environment in the test.
  • Render a small template string.
  • Assert the rendered output and, where useful, the underlying service interaction.

For upgrades, run composer why-not against the package if Composer blocks the update. Then run PHPUnit 9.5-compatible tests and render one or two real templates that use the extension. If you maintain a fork, mirror the GitHub Actions setup instead of relying on the removed Travis CI configuration.

Gotchas and Tips

The PHP 8.1 refactor may mean older PHP versions are no longer supported. Check composer.json platform requirements before upgrading production environments.

Symfony 6 support does not automatically mean every Symfony/Twig bridge or Laravel Twig integration supports Symfony 6. Verify the full dependency graph, especially if using Laravel with a Twig bridge.

The PHPUnit 9.5 test refactor can affect custom test classes that extended package test utilities. If your tests break after upgrading, update assertions and setup/teardown signatures for PHPUnit 9.5.

The new Twig extension test case is useful for extension authors, but treat it as a development aid rather than a runtime feature. Confirm it is available in your installed package version and compatible with your Twig version.

Travis CI removal is only relevant if you forked the package or copied its CI config. Migrate any remaining Travis workflow to GitHub Actions or your own CI.

When debugging, first confirm the extension is actually registered on the Twig environment, then clear template caches. Twig extension issues often look like template syntax errors when the real problem is missing service registration or a version mismatch.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels