PHPのシングルトンパターンの使用方法
シングルトンパターンは、1つのクラスを1つのインスタンスのみに制限し、グローバルなアクセスを提供するためのデザインパターンです。
PHPでは、次の手順に従ってシングルトンパターンを実装できます。
- コンストラクタをプライベートとして宣言し、’new’キーワードによるインスタンス化を防ぐクラスを作成する。
- このクラスで、クラスの唯一のインスタンスを保持する静的変数を定義します。
- インスタンスがなければ、クラスのインスタンスを新たに作成してそれを返し、インスタンスがあれば、直接それを返す、そのクラス内でスタティックメソッドとして定義する。
簡単なサンプルコードを以下に示します。
class Singleton {
private static $instance;
private function __construct() {
// 私有构造函数
}
public static function getInstance() {
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
public function doSomething() {
echo "Doing something...";
}
}
// 使用单例模式获取实例
$instance = Singleton::getInstance();
// 调用实例方法
$instance->doSomething();
上記の例ではSingletonクラスのインスタンスはgetInstanceメソッドでのみ取得でき、getInstanceメソッドを呼び出すたびに同じインスタンスを返します。
アプリケーション全体でSingletonインスタンスが1つのみ存在し、どこからでもgetInstanceメソッドで取得できることを保証します。