Laravel5.5で共通クラスを作る方法。(共通関数、汎用関数を作る)

Laravel5.5で共通クラス、共通関数、汎用関数を作る

独自にクラスを作って使う方法を探していて簡単に実装できそうな方法を見つけたのでメモ。

https://saba.omnioo.com/note/2446/laravel5-%E5%85%B1%E9%80%9A%E3%82%AF%E3%83%A9%E3%82%B9%EF%BC%88%E6%B1%8E%E7%94%A8%E9%96%A2%E6%95%B0%EF%BC%89%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B/
こちらのサイトの記事を元に実装。

共通クラス、共通関数、汎用関数を作成

まずはクラスを作成します。
共通クラスはどこに作っても大丈夫なようですが今回は
app/libs
の中に作ることにしました。
はじめ app/lib としてsを付けずにディレクトリを作って
php composer.phar dump-autoload
を実行したのですが
vendor/composer/autoload_classmap.php
内に生成されたディレクトリへのパスがなぜかlibsとなってしまいlibにならないのでlibsとしました。

<?php
namespace app\Libs;
class Common
{
    public static function h($s) {
        return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
    }
}

composer.jsonに追加app/Libsを追加

    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories",
            "app/Libs"
        ],

config/app.phpにエイリアスとして追加


'Common' => 'app\Libs\Common', // 追加

dump-autolodを実行

使う時は

use App\Libs\Common;

として

$string = 'ハロー';
$string = Common::h($string);

とか

$common = new Common();
$string = $common->h($string);

とかで使う