beecubu/php-foundation-emailer-mongodb

MongoDB persistence plugin for php-foundation-emailer. Provides the email queue repository backed by MongoDB.

Maintainers

Package info

bitbucket.org/beecubu/php-foundation-emailer-mongodb

pkg:composer/beecubu/php-foundation-emailer-mongodb

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

v1.0.0.1 2026-03-16 21:33 UTC

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

  • IEmailQueueRepository implementation (EmailQueueDB) — stores the email queue in a emails_queue MongoDB collection.
  • RepositoryBootstrap to register the repository with EmailQueueProvider.

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_queue collection.
  • The core php-foundation-emailer package is database-agnostic; this plugin provides the MongoDB-specific implementation.
  • MongoDB _id (ObjectId) is used internally; the EmailQueueItem entity exposes it as a plain string id.