beecubu / php-foundation-emailer-mongodb
MongoDB persistence plugin for php-foundation-emailer. Provides the email queue repository backed by MongoDB.
Package info
bitbucket.org/beecubu/php-foundation-emailer-mongodb
pkg:composer/beecubu/php-foundation-emailer-mongodb
Requires
- php: >=7.1.0
- ext-mongodb: >=1.4.0
- beecubu/php-foundation-emailer: ^2.0
- beecubu/php-foundation-mongodb: ^1.6
This package is not auto-updated.
Last update: 2026-03-16 21:34:15 UTC
README
MongoDB persistence plugin for php-foundation-emailer. Provides the email queue repository implementation backed by MongoDB.
What it provides
IEmailQueueRepositoryimplementation (EmailQueueDB) — stores the email queue in aemails_queueMongoDB collection.RepositoryBootstrapto register the repository withEmailQueueProvider.
Installation
composer require beecubu/php-foundation-emailer
composer require beecubu/php-foundation-emailer-mongodb
Usage
1) Initialize the repository
Call RepositoryBootstrap::register() once at application bootstrap, before any email queuing or queue processing:
use Beecubu\Foundation\Emailer\MongoDB\RepositoryBootstrap;
RepositoryBootstrap::register();
2) Configure the MongoDB connection
The plugin uses the MONGO_SERVER and MONGO_DATABASE constants, following the same convention as the rest of the framework:
define('MONGO_SERVER', 'localhost:27017');
define('MONGO_DATABASE', 'my_app');
If these constants are not defined, MONGO_SERVER defaults to localhost:27017 and MONGO_DATABASE defaults to emailer.
3) Custom repository (optional)
If you want to inject a custom IEmailQueueRepository implementation:
use Beecubu\Foundation\Emailer\MongoDB\RepositoryBootstrap;
RepositoryBootstrap::register(new MyCustomEmailQueueDB());
Notes
- The email queue is stored in the
emails_queuecollection. - The core
php-foundation-emailerpackage is database-agnostic; this plugin provides the MongoDB-specific implementation. - MongoDB
_id(ObjectId) is used internally; theEmailQueueItementity exposes it as a plain stringid.