PHPackages                             xelax90/zf-user-notification - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. xelax90/zf-user-notification

ActiveLibrary

xelax90/zf-user-notification
============================

Event-Driven User notification system

1.0(9y ago)091GPLv2PHP

Since Dec 26Pushed 9y ago2 watchersCompare

[ Source](https://github.com/xelax90/zf-user-notification)[ Packagist](https://packagist.org/packages/xelax90/zf-user-notification)[ RSS](/packages/xelax90-zf-user-notification/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (1)

User notification module
========================

[](#user-notification-module)

This module provides an event-driven and simple user notification system.

Installation
------------

[](#installation)

Installation of XelaxUserNotification uses composer. For composer documentation, please refer to [getcomposer.org](http://getcomposer.org/).

```
composer require xelax90/zf-user-notification
```

Then add `XelaxUserNotification` to your `config/application.config.php` and run the doctrine schema update to create the database table:

```
php vendor/bin/doctrine-module orm:schema-tool:update --force
```

Now copy the provided configuration files `vendor/xelax90/zf-user-notification/config/xelax-user-notification.global.php` and `vendor/xelax90/zf-user-notification/config/xelax-user-notification.local.php.dist`into your `config/autoload` directory. Also make another copy of the `xelax-user-notification.local.php.dist` file without the `.dist` extension.

Configuration
-------------

[](#configuration)

To send notifications via E-Mail please enter your mailserver configuration in the `config/autoload/xelax-user-module.local.php` file.

You can use the global configuration in `config/autoload/xelax-user-module.global.php`to modify E-Mail templates and other global settings. Every setting is documented inside the configuration file.

Sending notifications
---------------------

[](#sending-notifications)

To send a notification, get an instance of the `XelaxUserNotification\Service\Notification` Service from the Service Manager and call one of the functions `sendSystemNotification` (For system-to-user notifications), `sendUserNotification` (For user-to-user notifications). These functions create an instance of `NotificationInterface` and trigger the corresponding event such that any notification handler can handle the created notification. To send custom events and notifications, use the `sendNotification` Method.

Handling notifications
----------------------

[](#handling-notifications)

To handle a notification, simply create an event listener that listens to events from the `XelaxUserNotification\Service\Notification` class. There are two default events, namely `Notification::EVENT_SYSTEM_NOTIFICATION` and `Notification::EVENT_USER_NOTIFICATION` for the two different notification types. There are some default notification handlers that you should maybe look at before implementing additional logic.

### Render And Mail Handler

[](#render-and-mail-handler)

The `RenderAndMailHandler` uses a templte engine to render a notification and then sends it to the receiver using a mail transport. By default it uses the `Zend\View\Renderer\PhpRenderer` template engine and the `Zend\Mail\Transport\TransportInterface` service as transport. The transport service can be registered using the `xelax90/zf-mail-config` module.

You can configure the templates within your application or module config. There is some documentation provided in the global configuration file. The configured e-mail templates will be passed through the `MvcTranslator` to obtain localized template names which are then passed to the template engine (see `language/en_US.php` and `language/de_DE.php`).

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3424d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1559538?v=4)[xelax90](/maintainers/xelax90)[@xelax90](https://github.com/xelax90)

---

Top Contributors

[![xelax90](https://avatars.githubusercontent.com/u/1559538?v=4)](https://github.com/xelax90 "xelax90 (7 commits)")

### Embed Badge

![Health badge](/badges/xelax90-zf-user-notification/health.svg)

```
[![Health](https://phpackages.com/badges/xelax90-zf-user-notification/health.svg)](https://phpackages.com/packages/xelax90-zf-user-notification)
```

###  Alternatives

[zfr/zfr-cors

Zend Framework module that let you deal with CORS requests

611.2M3](/packages/zfr-zfr-cors)[mtymek/mt-mail

Zend Framework e-mail module. Using this library can easily create e-mail messages from PHTML templates (with optional layouts) and send them using configurable transports. Pluggable, EventManager-driven architecture allows you to customize every aspect of the process.

1839.2k3](/packages/mtymek-mt-mail)[zucchi/zucchi

Zucchi Component Library for Zend Framework 2

121.5k1](/packages/zucchi-zucchi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
