ThinkPHP6 でのシングルトン モードの使用
シングルトン モードは一般的な設計パターンであり、クラスにインスタンスが 1 つだけ存在し、グローバル アクセス ポイントを提供するようにします。 ThinkPHP6 では、シングルトン モードを使用して、グローバル変数や共有リソースなどを簡単に管理できます。
以下は、ThinkPHP6 でのシングルトン モードの使用例です。
最初に、デモ用の単純なクラスを作成します。シングルトンパターンを使用します。以下に示すように、このクラスにはプロパティとメソッドが 1 つだけあります。
namespace apputil; class Singleton { private static $instance = null; private $count = 0; private function __construct() {} public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } public function getCount() { return $this->count; } public function incrementCount() { $this->count++; } }
ThinkPHP6 では、コンテナによって提供されるシングルトン インスタンス メソッド make
を使用してシングルトン インスタンスを取得できます。 make
メソッドを使用する場合、インスタンス名を指定することも、デフォルトのインスタンス名を使用することもできます。以下は、Singleton
クラスのシングルトン インスタンスを取得するものです:
$singleton = app()->make('apputilSingleton::getInstance');
ご覧のとおり、ここではインスタンスとして Singleton::getInstance
を渡す必要があります。名前。
上で取得した $singleton
変数を使用して、Singleton
クラスのプロパティにアクセスできます。と方法。以下はサンプル コードです:
$singleton->incrementCount(); echo $singleton->getCount(); // 输出 1 $anotherSingleton = app()->make('apputilSingleton::getInstance'); echo $anotherSingleton->getCount(); // 输出 1
ご覧のとおり、シングルトン インスタンスを一度作成するだけで、どこでも使用でき、取得されるインスタンスは同じです。
注:
make
メソッドを使用してシングルトン インスタンスを取得する場合、コンテナー キャッシュの競合を避けるために、完全な名前空間とインスタンス名を使用することをお勧めします。 概要:
ThinkPHP6 でシングルトン モードを使用すると、グローバル状態と共有リソースを簡単に管理できます。コンテナーによって提供される make
メソッドを通じて、次のことができます。 easy シングルトンインスタンスを簡単に取得します。ただし、スレッドの安全性の問題に注意し、完全な名前空間とインスタンス名を使用してください。
以上がThinkPHP6 でのシングルトン モードの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。