/** * 指定した接続のコネクションインスタンスを取得します。 * * 既存のコネクション、もしくは接続設定ファイルからコネクションを生成します。<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; }
/** * @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); }