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

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 3

v1.0.13 2026-07-30 11:34 UTC

This package is auto-updated.

Last update: 2026-08-03 07:26:56 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+.

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

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

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: default is FRANKENPHP_MODE=worker (see .env.example). Set classic for per-request PHP / easier hot-reload, then recreate the container (docker compose up -d). Details: docs/DEMO-FRANKENPHP.md.

Development

make up
make test
make qa
make release-check

Documentation

Additional documentation

Tests and coverage

Language Coverage
PHP 99.45% line coverage on the includable src/ set (run make test-coverage to refresh). See docs/COVERAGE.md.
TS/JS N/A
Python N/A

License & author

MIT · Nowo.tech · Héctor Franco Aceituno