PHPackages                             sashagm/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. [Testing &amp; Quality](/categories/testing)
4. /
5. sashagm/notification

ActiveLibrary[Testing &amp; Quality](/categories/testing)

sashagm/notification
====================

NotificationService - это компонент фреймворка Laravel, который позволяет уведомлять пользователей о различных событиях в приложении. Он предоставляет возможность отправки уведомлений на электронную почту или в Telegram-чаты.

1.14.2(1y ago)027MITPHPPHP ^8.0

Since May 24Pushed 1y ago1 watchersCompare

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

READMEChangelog (10)Dependencies (4)Versions (22)Used By (0)

[![Laravel Logo](https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg)](https://laravel.com)

[![Total Downloads](https://camo.githubusercontent.com/f0ad4d0ffa94471e7789b13397a13eb07afd57d218d95e539fb5170fc4e91fd3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7361736861676d2f6e6f74696669636174696f6e)](https://packagist.org/packages/sashagm/notification)[![Latest Stable Version](https://camo.githubusercontent.com/eba4f3602a25103d3a973f23c3f98839902c0cf7751caeb22668122590de5dda/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7361736861676d2f6e6f74696669636174696f6e)](https://packagist.org/packages/sashagm/notification)[![License](https://camo.githubusercontent.com/b5cda436fad9ede7bf1e381d306bce6261029eff646ad378422807d87a9bcaee/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7361736861676d2f6e6f74696669636174696f6e)](https://packagist.org/packages/sashagm/notification)[![Code size](https://camo.githubusercontent.com/75fa1f0aa468368d339a4225cc2a6d1d2eace579e097fbad17e2fdfaed39bdef/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f7361736861676d2f6e6f74696669636174696f6e)](https://packagist.org/packages/sashagm/notification)[![Code size](https://camo.githubusercontent.com/ba39777688f7d1c2b963b98cc182f16d06ec8ac357093183ef0783e6c5a4d498/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f7361736861676d2f6e6f74696669636174696f6e)](https://packagist.org/packages/sashagm/notification)

[![PHP Version](https://camo.githubusercontent.com/2d8db17638478a10e3f421691ab607acf7433b1838e8d27b729078b6d7ba95cd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253242382d626c7565)](https://www.php.net/)[![Laravel Version](https://camo.githubusercontent.com/ac7bcd56dc398c4b976fabb8678d298e432a18e54308f82fc0cbdc09b42a3a4c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d25324231302d726564)](https://laravel.com/)

Уведомления для Laravel
-----------------------

[](#уведомления-для-laravel)

NotificationService - это компонент фреймворка Laravel, который позволяет уведомлять пользователей о различных событиях в приложении. Он предоставляет возможность отправки уведомлений на электронную почту или в Telegram-чаты.

Для использования NotificationService необходимо настроить переменные окружения для SMTP-сервера и токена бота Telegram. После этого можно создать уведомления, которые будут отправляться при наступлении определенных событий в приложении.

Уведомления могут быть созданы как классы, которые реализуют интерфейс Illuminate\\Contracts\\Notifications\\ShouldQueue, так и анонимные функции. В уведомлениях можно задавать текст сообщения, тему, получателей и другие параметры.

NotificationService также предоставляет возможность использовать различные каналы для отправки уведомлений, например, SMS или Push-уведомления. Для этого необходимо настроить соответствующие каналы и добавить их в конфигурацию NotificationService.

В целом, NotificationService предоставляет удобный и гибкий способ уведомления пользователей о событиях в приложении, что может значительно повысить его удобство и функциональность.

NotificationService – это открытое программное обеспечение, распространяемое под лицензией MIT. Это означает, что вы можете использовать и модифицировать его свободно, без ограничений.

Мы верим, что свобода и открытость являются ключевыми принципами разработки программного обеспечения, и поэтому мы выбрали лицензию MIT для NotificationService. Это дает пользователям и разработчикам полную свободу использовать, изменять и распространять наш продукт.

Мы надеемся, что NotificationService будет полезным для вас и вашей команды, и мы приглашаем вас внести свой вклад в его развитие. Если у вас есть какие-либо вопросы или предложения, пожалуйста, свяжитесь с нами – мы всегда рады помочь.

### Оглавление:

[](#оглавление)

- [Требования](#%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Использование](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
    - [Права доступа](#%D0%BF%D1%80%D0%B0%D0%B2%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0)
    - [Кастомный гард](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9-%D0%B3%D0%B0%D1%80%D0%B4)
    - [Кастомный логер](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BB%D0%BE%D0%B3%D0%B5%D1%80)
- [Дополнительные возможности](#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
- [Тестирование](#%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
- [Лицензия](#%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)

#### Требования

[](#требования)

Основные требования для установки и корректной работы:

- `PHP` &gt;= 8.0
- `Laravel` &gt;= 10.x
- `Composer` &gt;= 2.4.x

#### Установка

[](#установка)

Для установки пакета необходимо выполнить команды:

- composer require sashagm/notification
- php artisan notification:install

#### Использование

[](#использование)

1. Для начала давайте определим нашу вспомогательную конфигурацию в `.env`:

```
NF_EMAIL=
TELEGRAM_API_KEY =
TELEGRAM_CHAT_ID =
NF_URL=/custom/notifications
NF_ROUTE_NAME=custom-nf
```

2. Теперь давайте определим нашу вспомогательную конфигурацию в `/config/nf.php`:

```
    'telegramApiKey'    => env('TELEGRAM_API_KEY'),
    'chatId'            => env('TELEGRAM_CHAT_ID'),
    'email'             => env('NF_EMAIL'),
    'vkToken'           => env('VK_TOKEN'),
    'vkUserId'          => env('VK_USER_ID'),
    'logger'            => true, // Разрешить логирование

    'check'             => [

        'active'        => true, // True Разрешить проверку или false Пропускать проверку
        'guard'         => 'web', // Укажите через какой гард будет работать

        'save_colum'    => 'id', // Поле для группы/роли или прав
        'save_value'    => [
            1, 2, 3
        ], // добавляем массив значений

    ],

    'routes'            => [

        'url'           => env('NF_URL', '/notifications'),
        'routeName'     => env('NF_ROUTE_NAME', 'nf'),

    ],
```

3. Например, чтобы отправить уведомление на почту, отправьте POST запрос на `route('nf')` со следующими параметрами:

```
{
    "type": "email", // для отправки на почту
    "message": "Hello, world!"
    //'id': 'example@domain.com' email, 12345678 чат ид
    // id не обязательный парамтр если он не передан то уведомление будет отправлены по дефолтным данным из .env
}
```

либо

```
{
    "type": "telegram", // для отправки в телеграм
    "message": "Hello, world!"
    //'id': 'example@domain.com' email, 12345678 чат ид
    // id не обязательный парамтр если он не передан то уведомление будет отправлены по дефолтным данным из .env
}
```

4. Чтобы отправить уведомление на все каналы, отправьте POST запрос на `route('nf')` со следующими параметрами:

```
{
    "type": "all", // для отправки в все каналы
    "message": "Hello, world!"
}
```

5. Вы можете отправлять уведомления из любого места в вашем приложении, не только из контроллера. Для этого вам нужно создать экземпляр `NotificationService` и вызвать методы `sendEmail`, `sendTelegram` или `sendAll`, как мы это делали в команде Artisan.

Например, вы можете отправить уведомление на электронную почту в следующем коде:

```
use Sashagm\Notification\Services\NotificationService;

$notificationService = new NotificationService();
$message = 'This is a test email notification.';
$notificationService->sendEmail($message);
```

Аналогично, вы можете отправить уведомление в Telegram:

```
use Sashagm\Notification\Services\NotificationService;

$notificationService = new NotificationService();
$message = 'This is a test Telegram notification.';
$notificationService->sendTelegram($message);
```

Так же можно отправить во все канылы:

```
use Sashagm\Notification\Services\NotificationService;

$notificationService = new NotificationService();
$message = 'This is a test all chanel notification.';
$notificationService->sendAll($message);
```

Просто убедитесь, что вы импортировали класс `NotificationService` в ваш файл.

#### Права доступа

[](#права-доступа)

Если необходимо ограничить доступ можно в конфигурации `/config/nf.php` изменить права доступа в разделе `check`:

```
    'check'             => [

        'active'        => true, // True Разрешить проверку или false Пропускать проверку
        'guard'         => 'web', // Укажите через какой гард будет работать

        'save_colum'    => 'id', // Поле для группы/роли или прав
        'save_value'    => [
            1, 2, 3
        ], // добавляем массив значений

    ],
```

Добавляем массив с значениями для разных вариаций. Например для данного примера показано что пользователи с id `1,2,3` имеют права доступа. Так же можно указать не id а roles, тогда можно настроить на группы/роли пользователей например `Админ, Модер, Редактор`.

#### Кастомный гард

[](#кастомный-гард)

Если необходимо использовать кастомный гард можно в конфигурации `/config/nf.php` изменить в разделе `check` за это отвечает параметр `guard` по дефолту настроен на `web` и возвращает текущего аутентифицированного пользователя для стандартной охраны web. Это используется для аутентификации пользователей, которые входят через веб-интерфейс.

Если указать кастомный гард то будет возвращать текущего аутентифицированного пользователя для охраны с именем кастомного гарда. Охрана с именем кастомного гарда может быть настроена в файле конфигурации Laravel для использования другой базы данных или другой модели пользователя.

Таким образом можно изменять подходящий гард для проверки прав доступа для Middleware тем.

#### Кастомный логер

[](#кастомный-логер)

Если вы не хотите использовать стандартный файл для логирования, вы можете использовать отдельный файл и записывать данные логов туда. Просто измените путь до нового файла в конфигурации `/config/nf.php`

```
    'logger_method'     => true,              // Использовать дефолтный вариант логирования(false - Кастомный логер)
    'logger_path'       => "logs/custom.log",  // Путь для кастомного логера

```

#### Дополнительные возможности

[](#дополнительные-возможности)

Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с уведомлениями:

- `php artisan notification:install` - Данная команда установит все необходимые файлы.
- `php artisan notification:test {type}` - Данная команда отправит тестовое уведомление на выбранный канал (email,telegram,all).
- `php artisan notification:send {type} {message}  {--id=0}` - Данная команда отправит тестовое уведомление на выбранный канал с вашем сообщением (email,telegram, all). Для указания id можно отправить только либо на `email` своим адресом либо в `telegram` на свой ид чат.

#### Тестирование

[](#тестирование)

Для проверки работоспособности можно выполнить специальную команду:

- ./vendor/bin/phpunit --configuration phpunit.xml

#### Лицензия

[](#лицензия)

Laravel Notification - это программное обеспечение с открытым исходным кодом, лицензированное по [MIT license](LICENSE.md).

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance42

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% 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 ~24 days

Recently: every ~94 days

Total

21

Last Release

614d ago

Major Versions

1.14.2 → 2.x-dev2024-09-11

PHP version history (2 changes)1.0.0PHP ^7.3|^8.0

1.5.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ed652aeb98c0dac110b4fc109d51f62f81f4975ecd85f6db6a5e35486dfc930?d=identicon)[sashagm](/maintainers/sashagm)

---

Top Contributors

[![example123](https://avatars.githubusercontent.com/u/87628?v=4)](https://github.com/example123 "example123 (21 commits)")[![sashagm](https://avatars.githubusercontent.com/u/74922473?v=4)](https://github.com/sashagm "sashagm (7 commits)")

---

Tags

emaillaravellaravel-middlewarelaravel-packagenotificationphpphpunittelegram

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sashagm-notification/health.svg)

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

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)

PHPackages © 2026

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