PHPでのSingletonの実装と使い方

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し共有する