PHPでのSingletonの実装と使い方

Singletonとは
インスタンスが一つしか存在しないことを保証するデザインパターンです。
使用するインスタンスを1つだけにすることで、インスタンスの初期化の省略やパラメータの共有などを行うことができます。
実装例
/**
* Singleton
* PHP >= 7.0
*/
trait Singleton
{
static $instance = null;
private final function __construct()
{}
public static function getInstance()
{
return static::$instance ?? static::$instance = new static();
}
}
class DB
{
use Singleton;
publich function query(){
// some codes...
}
}
$db = DB::getInstance();
$db->query();
使用例
- Modelで使用するPDOをインスタンスを作成する毎に毎回初期化するのは、コストの無駄なのでPDOのWrapperクラスをSingletonし共有する