2

ネイティブWebProfileBundleで機能するには、SQLログを追加する必要があります。アプリケーション構成でデフォルトの接続を1つ実行すると、ログにSQLクエリが表示されます。しかし、私のアプリケーションは多くのdbサーバーへの多くの接続を使用しているため、構成ファイルにすべての可能な接続を追加することはできません。

ランタイム接続を作成します。つまり、次のようになります。

$config = array(
        'user' => 'user1',
        'password' => 'pass1',
        'driver' => 'pdo_mysql',
        'port' => 3306,
);
$conn = DriverManager::getConnection($config);

それなら私は、このようなコマンドを実行する必要があると思います

$conn->getConfiguration()->getSQLLogger($someLoggerObject);

DependencyInjectionを使用してこの問題を解決しようとしましたが、DoctrineBundleを例として取り上げました。しかし、運がありません。

ライブコードや適切なドキュメントへのリンクに関するヘルプは素晴らしいでしょう

4

1 に答える 1

1

私は自分のconfにこれを持っています:

$config = new Configuration;
/** configuration stuff */
$config->setSQLLogger(MyLogger::getInstance());

$connectionOptions = array(
            'driver' => 'pdo_mysql',
            'user' => DB_USER,
            'password' => DB_PASS,
            'host' => DB_HOST,
            'dbname' => DB_NAME,
            'charset' => 'utf8',
            'driverOptions' => array(
                    'charset' => 'utf8'
            )
    );
$em = EntityManager::create($connectionOptions, $config);

私は Zend + Doctrine2 を使用しています。これは私のブートストラップにあり、私のロガーはシングルトンです (これが getInstance の理由です)。DriverManager を使用したことはありませんが、これが役立つことを願っています。

于 2011-10-18T00:44:54.887 に答える