⭐ Found this useful? Install from Packagist · Give it a star on GitHub so more developers can find it.
Symfony bundle that renders a GDPR cookie consent modal with category toggles, optional per-cookie selection, cookie inventory, AJAX form submission, optional consent logging, and configurable Doctrine table prefix.
Frontend behavior is implemented in TypeScript and built with Vite (make assets → src/Resources/public/nowo-consent-modal.js).
This bundle is FrankenPHP worker mode friendly.
- GDPR modal — category toggles, optional per-cookie selection, AJAX submit, TypeScript + Vite (
nowo-consent-modal.js) and standalone CSS (nowo-cookie-consent.css, CSP-friendly). - Themes —
ui_theme: bootstrap(default) ortailwind; dual FrankenPHP demos. - Cookie inventory — definitions in YAML and/or Doctrine; optional consent logging with configurable table prefix.
- Admin UI —
/cookie-consent-config(profile, behavior, appearance, modals, route targeting) plus CRUD for cookie definitions. - Preferences bubble — reopen consent after the first choice.
- Route targeting —
render_routes/skip_render_routes; helpersnowo_cookie_consent_should_render()/nowo_cookie_consent_render(). - Database config —
use_database_configso the admin UI can override YAML at runtime. - Cold-start — cooperates with SiteBackupBundle when the schema is not ready yet.
composer require nowo-tech/cookie-consent-bundle# config/packages/nowo_cookie_consent.yaml
nowo_cookie_consent:
doctrine:
table_prefix: 'app_' # optional; yields app_dashboard_cookie_log
use_logger: true{# templates/base.html.twig — preferred: no kernel sub-request #}
{% if nowo_cookie_consent_should_render() %}
{{ nowo_cookie_consent_render() }}
{% endif %}Install public assets:
php bin/console assets:installmake -C demo up-symfony8
# Bootstrap demo: http://localhost:8014
make -C demo up-symfony8-tailwind
# Tailwind demo: http://localhost:8015demo/symfony8/— FrankenPHP Symfony 8 app with Bootstrap 5demo/symfony8-tailwind/— same demo with Tailwind CSS andui_theme: tailwind
See Demo with FrankenPHP for development vs. production worker mode.
- Installation
- Configuration
- PSR evaluation (REQ-CS-007)
- Usage
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
| Language | Lines (approx.) | Command |
|---|---|---|
| PHP | 100% line coverage on src/ (run make coverage-check to refresh). See docs/COVERAGE.md. |
make coverage-check |
| TypeScript | ~94% | make test-ts |
make test
make coverage-check
make test-ts
make assets
make release-checkPHP coverage target is ≥99% lines (prefer 100%; see Release and docs/COVERAGE.md). TypeScript coverage enforces a minimum of 90% (Vitest thresholds + .scripts/ts-coverage-percent.sh).
This bundle is released under the MIT License.
