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.