コード例 #1
0
ファイル: SC_Query.php プロジェクト: Rise-Up-Cambodia/Rise-Up
 /**
  * シングルトンの 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;
 }
コード例 #2
0
 /**
  * SC_Helper_Plugin オブジェクトを返す(Singletonパターン)
  *
  * @return object SC_Helper_Pluginオブジェクト
  */
 static function getSingletonInstance($plugin_activate_flg = true)
 {
     if (!isset($GLOBALS['_SC_Helper_Plugin_instance'])) {
         // プラグインのローダーがDB接続を必要とするため、
         // SC_Queryインスタンス生成後のみオブジェクトを生成する。
         require_once CLASS_EX_REALDIR . 'SC_Query_Ex.php';
         if (is_null(SC_Query_Ex::getPoolInstance())) {
             return false;
         }
         $GLOBALS['_SC_Helper_Plugin_instance'] = new SC_Helper_Plugin_Ex();
         $GLOBALS['_SC_Helper_Plugin_instance']->load($plugin_activate_flg);
     }
     return $GLOBALS['_SC_Helper_Plugin_instance'];
 }