Symfony2 でカスタム ドライバ オプションを設定するにはどうすればよいですか?
SET time_zone = '-04:30'
この場合、接続の初期化の一部として MySQL で実行したいと考えています。
Symfony2 でカスタム ドライバ オプションを設定するにはどうすればよいですか?
SET time_zone = '-04:30'
この場合、接続の初期化の一部として MySQL で実行したいと考えています。
以下で設定しapp/config/config.yml
ます。
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
# Here we configure the custom driver options
# In this case is PDO::MYSQL_ATTR_INIT_COMMAND
# The constant can not be used in this context
options: {1002: "SET time_zone = '-04:30'"}
とは異なり、 Symfony2 にはデフォルトのタイムゾーンを設定する構成パラメーターSymfony 1.4
はありません。default_timezone
この理由についてはよくわかりませんが、アプリ内にできるだけ多くの構成を保持したい場合は、以下のコードを使用してください。関数をオーバーライドして、デフォルトのタイムゾーン (および同様の PHP 構成) を設定しますAppKernel#init()
。その親に電話することを忘れないでください。
<?php
// AppKernel.php
class AppKernel extends Kernel
{
//..
//.......
//...........
// --- Append the init function below ---
public function init()
{
date_default_timezone_set( 'Asia/Kolkata' );
parent::init();
}
}
または、編集することができますphp.ini
datetime = 'Asia/Kolkata'
注: init メソッドはバージョン 2.3 以降非推奨であり、3.0 で削除される予定です。代わりに、コンストラクターでロジックを移動する必要があります。
public function __construct($environment, $debug)
{
date_default_timezone_set('Asia/Kolkata');
parent::__construct($environment, $debug);
}