PHPackages                             dev1/notify-core - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. dev1/notify-core

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

dev1/notify-core
================

Driver-agnostic notifications core.

v1.2.1(2mo ago)01071MITPHPPHP &gt;=7.4 &lt;8.6CI passing

Since Sep 19Pushed 2mo agoCompare

[ Source](https://github.com/DEV1-Softworks/notify-core)[ Packagist](https://packagist.org/packages/dev1/notify-core)[ Docs](https://github.com/DEV1-Softworks/notify-core)[ RSS](/packages/dev1-notify-core/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (13)Versions (10)Used By (1)

DEV1 Notify Core
================

[](#dev1-notify-core)

Driver-agnostic notifications core for PHP (starting with Firebase Cloud Messaging HTTP v1).
Built in Mexico by **DEV1 Softworks Labs**

[![CI/CD](https://github.com/DEV1-Softworks/notify-core/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/DEV1-Softworks/notify-core/actions/workflows/ci.yml)[![Packagist Version](https://camo.githubusercontent.com/64c260b117877eb6a3798c468f36c9806f8f3b58e547199b0c6244d159ed5c98/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646576312f6e6f746966792d636f72652e737667)](https://packagist.org/packages/dev1/notify-core)[![Coverage](https://camo.githubusercontent.com/a4351613c2c431a3df830f98c63d311b53a3110d63ac07f1c76deadcafb1d023/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f75726c3d68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f444556312d536f6674776f726b732f6e6f746966792d636f72652f6261646765732f636f7665726167652e6a736f6e)](https://github.com/DEV1-Softworks/notify-core/actions/workflows/ci.yml)[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)

---

Features
--------

[](#features)

- PSR-18 / PSR-17 compatible (agnostic HTTP client)
- Token provider via Google Service Account (JWT → OAuth2)
- Send push notifications with **Firebase Cloud Messaging (HTTP v1)**
- Extensible: future drivers (Twilio, OneSignal, APNs, etc.)
- Registry to manage multiple clients by name

---

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

[](#installation)

Require the library (PHP 7.4+):

```
composer require dev1/notify-core
```

For development and examples, you’ll need a PSR-18 client and PSR-17 factories.
We recommend:

```
composer require nyholm/psr7 symfony/http-client --dev
```

---

Usage Example
-------------

[](#usage-example)

```
use Dev1\NotifyCore\Auth\GoogleServiceAccountTokenProvider;
use Dev1\NotifyCore\DTO\{PushMessage, PushTarget};
use Dev1\NotifyCore\Factory\FcmClientFactory;
use Dev1\NotifyCore\Registry\ClientRegistry;
use Nyholm\Psr7\Factory\Psr17Factory;
use Symfony\Component\HttpClient\Psr18Client;

// Load Google Service Account JSON
$sa = json_decode(file_get_contents('service-account.json'), true);

// PSR factories
$psr17 = new Psr17Factory();
$http  = new Psr18Client();

// Token provider
$tokenProvider = new GoogleServiceAccountTokenProvider(
    $http,
    $psr17,
    $psr17,
    null,
    [
        'client_email' => $sa['client_email'],
        'private_key'  => $sa['private_key'],
    ]
);

// Create FCM client
$fcmClient = FcmClientFactory::create(
    $http,
    $psr17,
    $psr17,
    $tokenProvider,
    null,
    ['project_id' => 'your-project-id']
);

// Registry
$registry = new ClientRegistry();
$registry->register('fcm', $fcmClient, true);

// Message
$message = new PushMessage(
    'Hello from DEV1 Notify',
    'This is a test notification',
    ['foo' => 'bar']
);
$target = new PushTarget('DEVICE_TOKEN');

// Send
$result = $registry->client()->send($message, $target);

var_dump($result);
```

---

Requirements
------------

[](#requirements)

- PHP ^7.4
- ext-openssl
- A Firebase Project with a Service Account JSON (Legacy FCM is not compatible)

---

Roadmap
-------

[](#roadmap)

- Add more drivers (Twilio Notify, OneSignal, APNs)
- Laravel adapter (`dev1/laravel-notify`)
- Symfony bundle (`dev1/symfony-notify-bundle`)
- Unit tests
- CI pipeline
- Advanced platform overrides (Android/APNs)
- Optional PSR-16 token cache + automatic retries on transient failures

---

License
-------

[](#license)

MIT License © DEV1 Softworks Labs

---

Contributing
------------

[](#contributing)

We welcome contributions from the community! To get started:

1. Fork the repository and create a new branch for your changes.
2. Follow the existing code style and add tests where appropriate.
3. Open a pull request describing your changes and the motivation behind them.
4. Check the issues tab for open tasks or suggest new features.

If you have questions or need guidance, please open an issue or start a discussion. Thank you for considering contributing to DEV1 Notify Core!

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance86

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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

Every ~43 days

Recently: every ~53 days

Total

6

Last Release

70d ago

PHP version history (2 changes)1.0PHP &gt;=7.4 &lt;8.5

v1.2.1PHP &gt;=7.4 &lt;8.6

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3065243?v=4)[Marco Ramírez](/maintainers/rzerostern)[@RZEROSTERN](https://github.com/RZEROSTERN)

---

Top Contributors

[![RZEROSTERN](https://avatars.githubusercontent.com/u/3065243?v=4)](https://github.com/RZEROSTERN "RZEROSTERN (21 commits)")

---

Tags

phppushnotificationscoreFCMdev1

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/dev1-notify-core/health.svg)

```
[![Health](https://phpackages.com/badges/dev1-notify-core/health.svg)](https://phpackages.com/packages/dev1-notify-core)
```

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[cakephp/cakephp

The CakePHP framework

8.9k19.5M1.8k](/packages/cakephp-cakephp)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6942.5M421](/packages/drupal-core-recommended)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[aporat/store-receipt-validator

PHP receipt validator for Apple App Store and Amazon Appstore

6544.0M13](/packages/aporat-store-receipt-validator)

PHPackages © 2026

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