LoginSignup
3
3

More than 5 years have passed since last update.

Laravelにグローバル関数を追加しようぞ。お手軽discordエラー通知

Posted at

グローバル関数が使いたい

たまに、グローバル関数がLaravelで使いたくなる。というか、個人の小さなサービスくらいなら、繰り返し使う関数は、グローバルで済ましたくなっちゃう。

vendorとかをいじくると、環境変える度に消えてしまったり、深く探すのが大変だったりする。
だから、もうこれでいいや。

ファイルを作る。

僕は app/Http/helper.php にした

helper.php
<?php 

define('WEBHOOK','https://discordapp.com/api/webhooks/406852731390925824/BPttDSYrwVf8hub38BBs6velFp6e0sc6Hn8vntEXNz_QrFX_NrmfpKmGhPsJfffLh4Xm');

define('HOOKNAME','HOOK')

function postToDiscord($error)
{
    $content = "[where]:".$error->getFile()."\n";
    $content .= "[when]:".date("Y/m/d H:i:s")."\n";
    $content .= "[state]:".$error->getMessage()."\n";

    $data = array("content" => $content, "username" => HOOKNAME);
    $curl = curl_init(WEBHOOK);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    return curl_exec($curl);
}
?>

これで

postToDiscord($e);

みたいな感じで、エラーを投げれば、もろもろ便利だ!
スクリーンショット 2018-01-28 2.16.29.png

composer.json 編集

composer.jsonのautoloadプロパティに以下のように追加

composer.json
{
"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files":["app/Http/helper.php"]
    },
}

composer dump autoload

laravelのプロジェクトのルートディレクトリで

composer dump-autoload

これで使える。

好きな時に呼ぼう

postToDiscord($e);
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3