- Can I install ezsystems/privacy-cookie-bundle in a Laravel application?
- No. This is a Symfony bundle, not a Laravel package: it registers through app/AppKernel.php, ships Twig templates and relies on Symfony's DI container and bundle asset publishing, none of which exist in Laravel's service-provider, Blade and Vite model. There is no service provider, config file, facade or middleware, so Composer will pull code that is inert in a Laravel app. Treat it as a design reference for the banner UX rather than a dependency you can install.
- Is ezsystems/privacy-cookie-bundle still maintained?
- No. The repository is archived and has had no release since 13 May 2019, with no maintainer, no security patching and no compatibility work. Symfony 2.6 through 3.x are long past end of life, so even the runtime contract it targets is unsupported. Do not expect fixes for PHP 8 deprecations or any future framework changes.
- What Symfony and PHP versions does the Privacy Cookie Bundle support?
- The README states Symfony 2.6 or later, including Symfony 3.x, and the package assumes PHP 5.3.9+. Symfony 3.4 reached end of life in November 2021, so every supported combination is unsupported today. Nothing in the package has been validated against PHP 8.x or current Symfony releases.
- What license does ezsystems/privacy-cookie-bundle use, and can I reuse its CSS and JS?
- GitHub reports the license as NOASSERTION, meaning it cannot detect a recognised license file, so the actual grant is unresolved. That is a hard gate: legal should clear it before any code, even the banner CSS or JavaScript, is copied into your repository. The safest path is to write your own markup and copy from the pattern rather than the source.
- Does this bundle block analytics or marketing scripts until the user consents?
- No. It renders a presentation-layer banner with CSS, JavaScript and a dismissal cookie; the README says nothing about script blocking, category gating or consent scoping. It is a notice bar, not a consent management platform. If you need prior consent enforcement, you need a real CMP or your own tag-loading logic.
- Is the Privacy Cookie Banner GDPR compliant, and does it record consent?
- It is an informational banner with a dismissal cookie, so it does not provide granular categories, withdrawal, proof of consent or GPC signal handling. Deploying it can create a documented false sense of compliance, which is worse than no banner at all. Accessibility (WCAG 2.1 AA) is also unverified, and the package predates the European Accessibility Act obligations.
- How do I install and configure ezsystems/privacy-cookie-bundle in Symfony?
- Run composer require ezsystems/privacy-cookie-bundle, register EzSystemsPrivacyCookieBundle in app/AppKernel.php, and copy or symlink the bundle assets into your web directory with assets:install. If you use Assetic, enable AsseticBundle and configure it in config.yml, then dump assets for production. Finally, call the show_privacy_cookie_banner helper with your policy URL in your footer Twig template.
- How much work is it to port this cookie banner to Laravel Blade and Vite?
- Roughly one to three days for a mid-level engineer. The realistic approach is to extract the banner markup, CSS and JavaScript, rebuild them as a Blade component with Vite-managed assets, and add a small controller or middleware to persist the dismissal choice. The value you are porting is the UX pattern and copy, not the code itself.
- Does this bundle work with Vite, Webpack Encore or other modern asset pipelines?
- No. It expects Symfony's bundle asset publishing under bundles/ezsystemsprivacycookie/ and, optionally, Assetic, which is effectively dead. It has no concept of Vite manifests, entry points or hashed builds, so the asset paths would break in a modern Laravel setup. You would have to rewire the CSS and JS into your own build regardless.
- What are the alternatives to this package for cookie consent in Laravel?
- If you need real consent records, adopt a supported CMP such as OneTrust, Cookiebot, Osano, Klaro or CookieYes and integrate it through a Blade partial plus tag-loading logic. If you only need a lightweight notice and are willing to own the maintenance, build a small Blade component yourself. This package contributes nothing to either path except a cautionary UX example.