Skip to content

Latest commit

 

History

116 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cookie Consent Bundle

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

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 assetssrc/Resources/public/nowo-consent-modal.js).

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

Features

  • 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).
  • Themesui_theme: bootstrap (default) or tailwind; 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 targetingrender_routes / skip_render_routes; helpers nowo_cookie_consent_should_render() / nowo_cookie_consent_render().
  • Database configuse_database_config so the admin UI can override YAML at runtime.
  • Cold-start — cooperates with SiteBackupBundle when the schema is not ready yet.

Quick start

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:install

Demo

make -C demo up-symfony8
# Bootstrap demo: http://localhost:8014

make -C demo up-symfony8-tailwind
# Tailwind demo: http://localhost:8015
  • demo/symfony8/ — FrankenPHP Symfony 8 app with Bootstrap 5
  • demo/symfony8-tailwind/ — same demo with Tailwind CSS and ui_theme: tailwind

See Demo with FrankenPHP for development vs. production worker mode.

Documentation

Additional documentation

Tests and coverage

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-check

PHP 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).

License

This bundle is released under the MIT License.

About

Symfony bundle that renders a GDPR cookie consent modal with category toggles, AJAX form submission, optional consent logging, and configurable Doctrine table prefix

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages