0

単体テストの実行中にデータ フィクスチャとして使用する予定の SQL スクリプトがあります。Doctrine DBAL に CLI 用のインポート コマンドがあることは理解していますが、ユニット テスト スクリプト内からこれを実行することにのみ関心があります。

に基づく

\Doctrine\DBAL\Tools\Console\Command\ImportCommand

私は、私がそれを助けることができるなら、execを使わずに、純粋にPHPからこれを達成する方法を理解するのに苦労しています.

誰かが私を正しい方向に向けることができますか?

ありがとう

4

1 に答える 1

1

ImportCommand のコードを調べると、その重要な部分を抽出して独自の関数を作成できます。

protected function executeSqlFile(Connection $conn, $file)
{
    $sql = file_get_contents($file);
    $lines = 0;

    $stmt = $conn->prepare($sql);
    $stmt->execute();

    do {
        // Required due to "MySQL has gone away!" issue
        $stmt->fetch();
        $stmt->closeCursor();

        $lines++;
    } while ($stmt->nextRowset());

    return $lines;
}
于 2013-10-20T12:43:40.183 に答える