Symfony2からDoctrineのPDOオプションを指定する
Symfony2にはデフォルトでDoctrine2を使用するようになっていますが、そのDoctrine2は内部でPDO使用しています。んで、そのPDOにはPHP: PDO::setAttribute - Manualにあるように、色々なオプションを付けることで動作を変更できます。
Symfony2からDoctrine2の設定を行うにはapp/config/config.ymlを編集することになりますが、書式はドキュメントにもあるとおり、"options"キーに対して配列を指定します。
で、以下のようにやってみると。。。まあ、予想通り動きません><
doctrine: dbal: driver: %database_driver% host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% charset: UTF8 options: PDO::ATTR_ORACLE_NULLS: PDO::NULL_EMPTY_STRING
実際には、定数の値を指定する必要があるようです。
$ php -r "var_dump(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);" int(11) int(1) $
ということで、
doctrine: dbal: driver: %database_driver% host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% charset: UTF8 options: 11: 1 # PDO::ATTR_ORACLE_NULLS: "PDO::NULL_EMPTY_STRING"
とすると、期待通り動作しました。