テスト環境クラスのデストラクタで、テスト データベースを削除します。このコードを通常の方法で実行すると問題なく動作します。
それをデストラクタに入れる(または使用するregister_shutdown_function
)ことも同様に機能しますが、phpプロセスが終了しません。xdebug でコードを調査すると、echo 'finished';
到達することはありません。
これによりphpプロセスがハングする理由はありますか?
public function __destruct()
{
$config = $this->getConfiguration();
if ($config['dbtests']['autogenerate'] && $config['dbtests']['cleanup'] ) {
/** @var \PDO $dbh */
$dbh = new \PDO('mysql:host=' . $config['database']['host'], $config['database']['user'], $config['database']['password']);
$dbh->exec('DROP DATABASE ' . $config['database']['dbname']);
echo 'finished';
}
}