Ejemplo n.º 1
0
 /**
  * シングルトンの SC_Query インスタンスを取得する.
  *
  * @param string $dsn データソース名
  * @param boolean $force_run エラーが発生しても処理を続行する場合 true
  * @param boolean $new 新規に接続を行うかどうか
  * @return SC_Query シングルトンの SC_Query インスタンス
  */
 static function getSingletonInstance($dsn = '', $force_run = false, $new = false)
 {
     $objThis = SC_Query_Ex::getPoolInstance($dsn);
     if (is_null($objThis)) {
         $objThis = SC_Query_Ex::setPoolInstance(new SC_Query_Ex($dsn, $force_run, $new), $dsn);
     }
     /*
      * 歴史的な事情で、このメソッドの呼び出し元は参照で受け取る確率がある。
      * 退避しているインスタンスをそのまま返すと、退避している SC_Query の
      * プロパティを直接書き換えることになる。これを回避するため、クローンを返す。
      * 厳密な意味でのシングルトンではないが、パフォーマンス的に大差は無い。
      */
     return clone $objThis;
 }