nowo-tech/contact-form-bundle

Symfony bundle for configurable multilingual contact forms with GDPR compliance, customizable fields, client association, and admin CRUD.

Maintainers

Package info

github.com/nowo-tech/ContactFormBundle

Type:symfony-bundle

pkg:composer/nowo-tech/contact-form-bundle

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 3

v1.0.2 2026-07-13 06:57 UTC

This package is auto-updated.

Last update: 2026-07-13 07:00:32 UTC


README

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.

Contact Form Bundle — configurable multilingual contact forms with GDPR consent, customizable fields (email, phone, text, textarea, select), optional client association, anonymous submissions, and admin CRUD. For Symfony 7.4+ and 8 · PHP 8.2+.

Features

  • Admin CRUD for form definitions, customizable fields, and submissions
  • Multilingual copy via translation entities (title, labels, GDPR text, success message)
  • Customizable fields: text, email, phone, textarea, select (options per field)
  • GDPR: required consent checkbox, privacy policy link, IP anonymization, retention days
  • Client association: optional link to an existing host client entity or anonymous submissions
  • Public form at /contact/{slug} with PRG flow and flash success message
  • Override Twig templates and translations from your application
  • Pluggable notifications (custom notifier, Symfony Mailer, or ContactSubmissionCreatedEvent)
  • GDPR retention cleanup via nowo:contact-form:cleanup-submissions

Installation

composer require nowo-tech/contact-form-bundle

Register in config/bundles.php if Flex recipe is not applied:

Nowo\ContactFormBundle\NowoContactFormBundle::class => ['all' => true],

Import routes in config/routes.yaml:

nowo_contact_form:
    resource: '@NowoContactFormBundle/Resources/config/routes.yaml'

Run Doctrine migrations after mapping entities (bundle registers ORM mappings automatically).

Documentation

Additional documentation

Requirements

  • PHP 8.2+
  • Symfony 7.4+ or 8.0+
  • Doctrine ORM 2.17+ or 3.x

Demo

make -C demo/symfony8 up

Default URL: http://localhost:8021 (see demo .env.example for PORT).

FrankenPHP worker mode: demos ship with worker-enabled Caddyfile for production-style runs; development uses Caddyfile.dev without workers. See docs/DEMO-FRANKENPHP.md.

Development

make up
make test
make qa
make release-check

Tests and coverage

Language Coverage
PHP 99.78% line coverage (run make test-coverage to refresh)
TS/JS N/A
Python N/A

License & author

MIT · Nowo.tech · Héctor Franco Aceituno