PHPackages                             oji3t/e2slack - 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. oji3t/e2slack

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

oji3t/e2slack
=============

A package to send message to slack when happened exception.

1.0.0(9y ago)0151MITPHP

Since Aug 9Pushed 9y ago1 watchersCompare

[ Source](https://github.com/oji3t/e2slack)[ Packagist](https://packagist.org/packages/oji3t/e2slack)[ RSS](/packages/oji3t-e2slack/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

概要
--

[](#概要)

例外発生時にSlackに通知するライブラリです．多くのphp開発において利用することが可能です． 最低限の拡張のみを許容し，インストールと幾つかの設定のみですぐに利用できます．機能の追加要望やプルリクエスト，バグ報告は随時受け付けています． 例外発生時に即座に通知を受信できることを是として開発しているため，完全なログは別途記録を行ってください．

利用開始
----

[](#利用開始)

### Slackの設定

[](#slackの設定)

Slackのwebhookを利用しているため，そのための設定が必要です．これはこのライブラリのインストールよりも簡単です． 権限のあるアカウントでログインした状態で[ここ](https://my.slack.com/services/new/incoming-webhook/)にアクセスするとincoming-webhookのインテグレーションを作成でき，遷移先のページにてendpointが確認できるのでそれを控えておいてください． 全てが上手くいっていれば，`https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXX`のようなURLになっているはずです． 権限のないアカウントの場合は権限がありませんというようなエラーメッセージが英語で出てくるので権限のある人に相談してください．

### ライブラリのインストール

[](#ライブラリのインストール)

composerによるインストールのみをサポートしています．以下のコマンドでインストールしてください．

```
$ composer require oji3t/e2slack
```

以上で準備は完了です．

利用方法
----

[](#利用方法)

### 基本的な利用

[](#基本的な利用)

phpの例外インスタンスと，slackの設定を引数に渡してください．

```
use ExceptionToSlack\Notification;
use FooException;

try {
    throw new FooException;
} catch (FooException $e) {
    $config = ['endpoint' => YOUR_WEBHOOK_ENDPOINT];
    $notification = new Notification($e, $config);
    $notification->send();
}
```

autoloadが有効であれば以下の様にも書くことができます．これは，上記のコードと全く同じ動作をします． もちろん，e2slack関数を別途定義していた場合はそちらが優先されるため，あなたのすでに作成されたアプリケーションを破壊することはありません． ただし，その状態でこのパッケージの提供するe2slack関数を利用するとPHPのエラーを引き起こす原因となるので注意してください．

```
use FooException;

try {
    throw new FooException;
} catch (FooException $e) {
    $config = ['endpoint' => YOUR_WEBHOOK_ENDPOINT];
    e2slack($e, $config);
}
```

送信する例外の種類によって送信するチャンネルを分けることができます．

### 設定

[](#設定)

インストールして即利用可能であることを是としているため，あまり設定できることは多くありませんが，設定により以下の内容を変更できます． **endpointなどは他人に知られるべき情報ではないので，[Dotenv](https://github.com/vlucas/phpdotenv)などの利用を推奨します．**

1. endpoint…設定したエンドポイントです．デフォルトは`null`です．
2. channel…メッセージを送信するSlackのチャンネルです．デフォルトは`'#general'`です．`'@user.name'`の様に指定することもできます．
3. username…メッセージを投稿するbotの名前です．デフォルトは`'Notification'`です．エラーの種類によって変えると便利かもしれません．
4. icon…メッセージを投稿するbotのアイコンです．画像ファイルのURLまたは[絵文字](http://www.webpagefx.com/tools/emoji-cheat-sheet/)を指定します．デフォルトは可愛らしい絵文字が指定されています．

上記の項目をキーとして第二引数に連想配列で指定してください． また，インスタンスを作成した後で設定を上書きすることも可能です．

```
use ExceptionToSlack\Notification;
use FooException;

try {
    throw new FooException;
} catch (FooException $e) {
    $config = ['endpoint' => YOUR_WEBHOOK_ENDPOINT];
    $notification = new Notification($e, $config);
    $notification->setUsername('Debug Bot');
    $notification->setChannel('@user.name');
    $notification->setIcon(':love_letter:');
    $notification->send();
}
```

また，多くのPHPフレームワークではコンフィグレーション機能やエラーハンドリング機能が付属しているため，それぞれにあわせてうまく利用してください．例えばLaravel5では以下の様にできます．

```
// .env
SLACK_ENDPOINT=https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX
SLACK_CHANNEL=#a_project_channel
SLACK_USERNAME=Notification
SLACK_ICON=:love_letter:
```

```
// config/services.php
return [
    // ~~~

    'e2slack' => [
        'endpoint' => env('SLACK_ENDPOINT'),
        'channel' => env('SLACK_CHANNEL'),
        'username' => env('SLACK_USERNAME'),
        'icon' => env('SLACK_ICON'),
    ],
];
```

```
// app/Exceptions/Handler.php
namespace App\Exceptions;

use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Response;
use App\Exceptions\FooException;
use ExceptionToSlack\Notification;

class Handler extends ExceptionHandler
{
    // ~~~

    public function render($request, Exception $e)
    {
        if ($e instanceof FooException) {
            $notification = new Notification($e, config('services.e2slack'));
            $notification->send();
        }

        return parent::render($request, $e);
    }
}
```

### メッセージ送信エラーのハンドリング

[](#メッセージ送信エラーのハンドリング)

メッセージが送信された場合，sendメソッド並びにe2slack関数は現在のインスタンスを返却します．これは，メソッドチェーンでメッセージを別チャンネルに再送信したい場合などを想定した実装です． 送信になんらかの原因で失敗した場合は，上記のいずれもfalseを返します．送信の失敗を取得する場合は`$notification===false`などとしてください．

注意点
---

[](#注意点)

endpointなどの情報は流出しないように丁重に管理してください． パッケージの処理時に内部でエラーが発生した場合に無限ループを発生させる危険性があるため，PHPのException基底クラスにハンドリングしてメッセージを送信するというような実装は行ってはいけません． 上記を含め，当パッケージの利用により発生したいかなる損害も開発者であるTakara Ojiは負いかねますのでご了承ください．

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

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

3611d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ea05fe1e79e1833cccb0c75aa48f9436d301209207b37f709eb149ce3931b474?d=identicon)[oji3t](/maintainers/oji3t)

---

Top Contributors

[![takaraoji](https://avatars.githubusercontent.com/u/13878732?v=4)](https://github.com/takaraoji "takaraoji (2 commits)")

---

Tags

errornotificationslack

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/oji3t-e2slack/health.svg)

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

###  Alternatives

[symfony/notifier

Sends notifications via one or more channels (email, SMS, ...)

80642.7M426](/packages/symfony-notifier)[guanguans/notify

Push notification SDK(AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NotifyX、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、ZohoCliq、ZohoCliqWebHook、Zulip).

686111.2k8](/packages/guanguans-notify)[saasscaleup/laravel-log-alarm

Laravel log Alarm help you to set up alarm when errors occur in your system and send you a notification via Slack and email

26927.9k](/packages/saasscaleup-laravel-log-alarm)[guanguans/laravel-exception-notify

Monitor exception and report to the notification channels(Log、Mail、AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、ZohoCliq、ZohoCliqWebHook、Zulip).

14844.4k1](/packages/guanguans-laravel-exception-notify)[cuyz/notiz

Handle any type of notification in TYPO3 with ease: emails, SMS, Slack and more. Listen to your own events or provided ones (scheduler task finishing, extension installed, etc…).

1916.9k](/packages/cuyz-notiz)

PHPackages © 2026

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