人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

自作クラスをSingletonとしてLaravelに登録して使い回す

● 自作クラスを作成する

作成する場所はお好きなところどこでもOKです。

Config.php

<?php
namespace Mysettings;
class Config
{
	public $name            = "アイウエオ";
}

● Composerで自動読み出しできるようにする

composer.json へ パス "./" を追加します

	"autoload": {
		"classmap": [
			"./"
		],

設定ファイルの再出力

composer dump-autoload

● シングルトン結合を行う。

シングルトンとして登録するだけです。

app/Providers/AppServiceProvider.php

	public function register()
	{
		$this->app->bind(
			'Illuminate\Contracts\Auth\Registrar',
			'App\Services\Registrar'
		);

		// この辺りに追記
        $this->app->singleton('\Mysettings\Config', function()
        {
            return new \Mysettings\Config();
        });

	}

● 呼び出して使う

    // 設定情報を取得
    $config = app()->make('Mysettings\Config');
    dump( $config );
    $config->clinic_name = '001';
    dump( $config );

    // シングルトンであることの確認
    $config2 = app()->make('Mysettings\Config');
    dd( $config2 );

以上です。 Laravelだと簡単ですね!

No.1779
09/14 17:13

edit