Skip to content

nowo-tech/ContactFormBundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contact Form 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.

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

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

Tests and coverage

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

License & author

MIT · Nowo.tech · Héctor Franco Aceituno

About

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

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages