databases.yml
はデータベース接続のコンフィギュレーションを可能にします。
これはsymfonyに搭載されているORMであるPropelとDoctrineの両方で使われます。
プロジェクトのメインのdatabases.yml
設定ファイルはconfig/
ディレクトリで見つかります。
note
たいていの場合、プロジェクトのすべてのアプリケーションは同じデータベースをを共有します。
そのことがメインデータベース設定ファイルがプロジェクトのconfig/
ディレクトリにある理由です。
もちろんアプリケーションのconfigディレクトリでdatabases.yml
設定ファイルを定義することでデフォルトのコンフィギュレーションをオーバーライドできます。
はじめの章で説明したように、databases.yml
ファイルは環境を認識し、コンフィギュレーションカスケードのメカニズムが有効になり、定数を格納することができます。
databases.yml
で説明されるそれぞれの接続はデータベースオブジェクトを設定するために使う名前、データベースハンドラクラスの名前、パラメーター(param
)の設定を格納しなければなりません:
CONNECTION_NAME: class: CLASS_NAME param: { ARRAY OF PARAMETERS }
class
クラスはsfDatabase
基底クラスを継承します。
データベースハンドラクラスをオートロードできない場合、file
パスを定義することでファクトリが作成される前に自動的に含めることができます:
CONNECTION_NAME: class: CLASS_NAME file: ABSOLUTE_PATH_TO_FILE
note
databases.yml
設定ファイルはPHPファイルとしてキャッシュされます;
プロセスはsfDatabaseConfigHandler
クラスによって自動的に管理されます。
tip
データベースの設定はdatabase:configure
タスクを使うことでも設定できます。
このタスクは渡される引数に従ってdatabases.yml
を更新します。
Propel
デフォルトのコンフィギュレーション:
dev: propel: param: classname: DebugPDO test: propel: param: classname: DebugPDO all: propel: class: sfPropelDatabase param: classname: PropelPDO dsn: mysql:dbname=##PROJECT_NAME##;host=localhost username: root password: encoding: utf8 persistent: true pooling: true
次のパラメーターはparam
セクションの下で定義できます:
キー | 説明 | デフォルトの値 |
---|---|---|
classname |
Propelのアダプタークラス | PropelPDO |
dsn |
PDOのDSN (必須) | - |
username |
データベースのユーザー名 | - |
password |
データベースのパスワード | - |
pooling |
プーリングを有効にするか | true |
encoding |
デフォルトの文字集合 | utf8 |
persistent |
永続的接続を作成するか | false |
options |
Propelオプションのセット | - |
Doctrine
デフォルトコンフィギュレーション:
all: doctrine: class: sfDoctrineDatabase param: dsn: mysql:dbname=##PROJECT_NAME##;host=localhost username: root password: attributes: quote_identifier: false use_native_enum: false validate: all idxname_format: %s_idx seqname_format: %s_seq tblname_format: %s
次のパラメーターはparam
セクションの下でカスタマイズできます:
キー | 説明 | デフォルト値 |
---|---|---|
dsn |
PDOのDSN (必須) | - |
username |
データベースのユーザー名 | - |
password |
データベースのパスワード | - |
encoding |
デフォルトの文字コード | utf8 |
attributes |
Doctrine属性のセット | - |
次の属性はattributes
セクションの下でカスタマイズできます:
キー | 説明 | デフォルト値 |
---|---|---|
quote_identifier |
識別子をクォートでラップするか | false |
use_native_enum |
ネイティブのenumを使うか | false |
validate |
データバリデーションを有効にするかどうか | true |
idxname_format |
インデックス名のフォーマット | %s_idx |
seqname_format |
シーケンス名のフォーマット | %s_seq |
tblname_format |
テーブル名のフォーマット | %s |
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.