私はLaravel Frameworkバージョン5.2.32を使用しています。すべてのコントローラにオブジェクトがアクセス可能なシングルトンクラスを作成したいと思います。私は以下のようにクラスを実装しました。Laravelのシングルトンクラス5
class SingletonClazz {
private static $instance;
protected function __construct() {
//Do nothing
}
public static function getInstance() {
if (empty(SingletonClazz::$instance)) {
SingletonClazz::$instance = new SingletonClazz();
echo 'Created';
}
else {
echo ', Already created';
}
return SingletonClazz::$instance;
}
}
route.phpファイルが
Route::group(['prefix' => 'singleton'], function() {
Route::get('/', [
'uses' => '[email protected]'
]);
});
私はURL http://localhost:8080/singleton/initSingletonを起動すると結果は以下のように構成され
class MyController extends Controller {
public function initSingleton() {
SingletonClazz::getInstance();
SingletonClazz::getInstance();
SingletonClazz::getInstance();
}
}
以下のように私はクラスのオブジェクトを作成しています'作成済み、既に作成済み、既に作成済み'。 '既に作成済み、既に作成済み、既に作成済み'
この実装に関する問題については、ガイドできますか?
このスクリプトを長期間使用する(デーモンのような)プロセスで使用する場合を除き、アプリケーションに対する各要求は完全に別個のものになります。これはHTTPの設計方法であるためです。シングルトンは、Web要求を行うときに_single_要求を介してのみ存続します。 –