zestic / communication-component
Communication component for Laminas using Symfony Messenger and Notifier
v1.6.3
2024-11-07 02:30 UTC
Requires
- php: ^8.0
- iampersistent/config-value-component: ^1.2
- laminas/laminas-servicemanager: ^4.0.0-rc1
- mezzio/mezzio-twigrenderer: ^2.6
- netglue/laminas-messenger: ^2.0
- psr/container: ^1.0 || ^2.0
- symfony/dependency-injection: ^5.3 || ^6.0 || ^7.0
- symfony/event-dispatcher: ^5.3 || ^6.0 || ^7.0
- symfony/mailer: ^5.3 || ^6.0 || ^7.0
- symfony/messenger: ^5.3 || ^6.0 || ^7.0
- symfony/notifier: ^5.3 || ^6.0 || ^7.0
- symfony/property-access: ^5.3 || ^6.0 || ^7.0
- symfony/serializer: ^5.3 || ^6.0 || ^7.0
- symfony/twig-bridge: ^5.3 || ^6.0 || ^7.0
- twig/inky-extra: ^3.1
- twig/twig: ^3.0
Requires (Dev)
- symfony/amazon-mailer: ^5.3
README
A flexible communication component that sends communications of any variety (email, SMS, chat) based on user preferences. Built on Symfony Notifier and Symfony Messenger.
Features
- Multi-channel Support: Email, SMS, and chat communications
- Asynchronous Processing: Symfony Messenger integration for background processing
- Template Management: Database-stored templates with Twig support
- Failure Handling: Built-in retry mechanisms for failed messages
- Database Migrations: Phinx integration for schema management
Quick Start
# Install dependencies composer install # Set up configuration cp config/communication.global.php.dist config/communication.global.php # Configure environment variables cp .env.example .env # Run migrations bin/migrate # Test email delivery vendor/bin/laminas communication:send-test-email your-email@example.com
Documentation
- Getting Started - Setup and basic configuration
- Communication Definitions - Structure different communication types
- Messenger Integration - Asynchronous processing
- Database Migrations - Schema management with Phinx
- Twig Database Loader - Dynamic template management
- Handling Failures - Manage failed messages
- Continuous Integration - CI/CD setup
Requirements
- PHP 8.1+
- Composer
- Database (PostgreSQL recommended)
License
MIT License