Class: DataSource
Source Location: /package/pure/db/datasource/DataSource.inc
Class Details
[line 104]
データソースを取得するクラスです。 ただしDataSourceクラスが提供するのは統一的なデータソースの設定ファイルの記述と、そこからの情報取得、PDO を通した接続のみです。 コネクションプーリングなどの高度な機能は提供しません。 データソースの設定ファイルはパッケージルート配下にiniファイルで用意します。 例えば、${PACKAGE_ROOT}/pure/db/DataSource.iniという名前の設定ファイルを用意した場合、以下のように利用します。
$ds = new DataSource("pure.db.datasource.DataSource");
$dbh = $ds->get("DB_NAME");
// ... 処理 ...
$dbh = null;
この時、${PACKAGE_ROOT}/pure/db/datasource/DataSource.iniには以下のような定義がされています。 [DB_NAME]
dsn=pgsql:host=localhost port=5432 dbname=testdb
username=bruce
password=mypass なお、usernameパラメータとpasswordパラメータは省略可能ですが、usernameパラメータが省略された際にはpasswordパラメータは無視されます。 またパラメータを省略した場合、dsnパラメータには省略したパラメータの設定が必要な場合があることに注意してください。 データソースの設定ファイルには最低限のデータベースハンドルの属性を定義することが出来ます。 データベースハンドルの属性はPDOオブジェクトが生成できた後にsetAttributeメソッドにより設定されます。 データベースハンドルの属性は以下の様にデータソースの設定ファイルに記述します。 各設定値の詳細はhttp://www.php.net/manual/ja/function.PDO-setAttribute.phpを参照してください。 PDO::ATTR_CASEを指定する場合: attr.case=* 設定値にはlower、natural、upperが指定可能で、それぞれPDO::CASE_LOWER、PDO::CASE_NATURAL、PDO::CASE_UPPERにマッピングされます。 naturalが規定値です。 PDO::ATTR_ERRMODEを指定する場合: attr.errmode=* 設定値にはsilent、warning、exceptionが指定可能で、それぞれPDO::ERRMODE_SILENT、PDO::ERRMODE_WARNING、PDO::ERRMODE_EXCEPTIONにマッピングされます。 exceptionが規定値です。 PDO::ATTR_ORACLE_NULLSを指定する場合: attr.oracle_nulls=* 設定値にはnatural、empty_string、to_stringが指定可能で、それぞれPDO::NULL_NATURAL、PDO::NULL_EMPTY_STRING、PDO::NULL_TO_STRINGにマッピングされます。 naturalが規定値です。 PDO::ATTR_STRINGIFY_FETCHESを指定する場合: attr.stringify_fetches=* 設定値には真偽値を指定可能です。 true、yes、on、1を指定すると真になります。 false、no、off、0を指定すると偽になります。 どれにも属さない値の場合には偽と解釈されます。 偽が規定値です。 その他、データベース接続を行った後の定型的な処理をオプションとして指定することが出来ます。 自動的なトランザクション開始: opt.transaction_auto_start=* 設定値には真偽値を指定可能です。 true、yes、on、1を指定すると真になります。 false、no、off、0を指定すると偽になります。 どれにも属さない値の場合には偽と解釈されます。 偽が規定値です。 真を指定した場合、データベース接続を開き属性を設定した後にbeginTransactionメソッドが呼び出されます。 従って明示的にcommitメソッドを呼び出さないかぎりデータベースへの更新はロールバックされることに注意してください。 注意: 規定値は偽ですが、真の設定を推奨します。
Class Methods
Class Constants
|