Esempio n. 1
0
 /**
  * 指定した接続のコネクションインスタンスを取得します。
  *
  * 既存のコネクション、もしくは接続設定ファイルからコネクションを生成します。<br>
  * <br>
  * 接続設定は config/db.phpの設定を参照します。<br>
  * Configクラスを利用して、"db"名前空間に接続設定を読み込んでください。<br>
  *
  * @param string|null $connectionName (オプション) 取得する接続名
  * @throws OutOfBoundsException
  *      dbconfig.phpに記述されていないコネクション名が指定された時にスローされます。
  */
 public static function instance($connectionName = null)
 {
     !is_string($connectionName) and $connectionName = self::DEFAULT_CONNECTION_NAME;
     if (array_key_exists($connectionName, self::$_connections)) {
         return self::$_connections[$connectionName];
     }
     $config = Config::get('db', array());
     if (array_key_exists($connectionName, $config) === false) {
         // 接続設定に指定されたコネクション用の設定がなければ、例外を投げる
         throw new OutOfBoundsException('定義されていないコネクションが要求されました。(接続名: ' . $connectionName . ')');
     }
     // 新しいコネクションを生成する
     $conf = $config[$connectionName];
     if ($conf === null) {
         throw new OutOfBoundsException('定義されていないコネクションが要求されました。(接続名: ' . $connectionName . ')');
     }
     $host = Arr::get($conf, 'host');
     $user = Arr::get($conf, 'user');
     $pass = Arr::get($conf, 'password');
     $dbname = Arr::get($conf, 'database');
     $charset = Arr::get($conf, 'charset');
     $con = self::connect($host, $user, $pass, false, $connectionName);
     !empty($dbname) and $con->useDB($dbname);
     !empty($charset) and $con->setCharset($charset);
     return $con;
 }
Esempio n. 2
0
 /**
  * @param array     $fieldSet
  */
 public function __construct(array $fieldSet = null, array $config = array())
 {
     $this->config = array_merge(Config::get('validator'), $config);
     list($lang, $langDir) = array_values(Arr::get($this->config, ['lang', 'langDir']));
     $this->validator = new Valitron(null, null, $lang, $langDir);
     is_array($fieldSet) and $this->rules($fieldSet);
 }