Symfony を 2.1 から 2.2 にアップグレードした後、問題が発生しました。すべての機能テストを一度に実行すると (単一のテストが実行されている場合は、これは発生しないことに注意してください)、無限ループがスタックしているというエラーが発生します。
PHP Fatal error: Maximum function nesting level of '150' reached, aborting! in project_path\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\DebugClassLoader.php on line 81
トレースの一部:
...
14. Symfony\Component\BrowserKit\Client->submit() project_path\other_path\Tests\Controller\LoginControllerTest.php:53
15. Symfony\Component\BrowserKit\Client->request() project_path\vendor\symfony\symfony\src\Symfony\Component\BrowserKit\Client.php:224
16. Symfony\Bundle\FrameworkBundle\Client->doRequest() project_path\vendor\symfony\symfony\src\Symfony\Component\BrowserKit\Client.php:264
17. Symfony\Component\HttpKernel\Client->doRequest() project_path\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Client.php:111
18. Symfony\Component\HttpKernel\Kernel->handle() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Client.php:61
19. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() project_path\app\bootstrap.php.cache:411
20. Symfony\Component\HttpKernel\HttpKernel->handle() project_path\app\bootstrap.php.cache:1101
21. Symfony\Component\HttpKernel\HttpKernel->handleRaw() project_path\app\bootstrap.php.cache:975
22. Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->dispatch() project_path\app\bootstrap.php.cache:990
23. Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:135
24. Symfony\Component\EventDispatcher\EventDispatcher->dispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher.php:167
25. Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:53
26. call_user_func() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:164
27. Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->Symfony\Component\HttpKernel\Debug\{closure}() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:164
28. call_user_func() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:447
29. Symfony\Component\Security\Http\Firewall->onKernelRequest() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:447
30. Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener->handle() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall.php:66
31. Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener->onSuccess() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener.php:143
32. Symfony\Component\ClassLoader\DebugClassLoader->loadClass() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener.php:0
33. Symfony\Component\ClassLoader\DebugClassLoader->findFile() project_path\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\DebugClassLoader.php:95
...
アップグレードする前は、すべてのテストが正常に機能していましたが、次を使用するとエラーがスローされるようになりました。
$form = $crawler->selectButton('Login')->form();
$form['_password'] = '123ASDasd';
$form['_username'] = 'MattKing';
$crawler = $client->submit($form); //this is LoginControllerTest.php:53 from error above
また
$link = $crawler->selectLink('Matt King')->link();
$client->click($link); // --> error
また
$client = static::createClient();
$client->followRedirects(true);
$crawler = $client->request('GET', '/login'); // --> error
別の問題は、デフォルトの symfony 翻訳関数を使用しているときでした。ユーザーのロケールを切り替えた後、テストで上記と同じエラーがスローされました。ロケールの切り替えをコメントアウトすると、他のエラー(上記のような)が発生しました。上記と同じ問題が原因である可能性があることに注意してください。
数日間理由を探しましたが、あきらめました。これを修正する方法はありますか?