/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php
71 строка
2 KB
Mathieu
[FrameworkBundle] Make `WebTestCase` enable web mode by default
22 июл 2026, 09:49
22 июл 2026, 09:49
f6c9adf
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\FrameworkBundle\Test; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; /** * WebTestCase is the base class for functional tests. * * @author Fabien Potencier <fabien@symfony.com> */ abstract class WebTestCase extends KernelTestCase { use WebTestAssertionsTrait; private static bool $runtimeModeSet = false; protected function tearDown(): void { parent::tearDown(); self::getClient(null); if (self::$runtimeModeSet) { unset($_SERVER['APP_RUNTIME_MODE']); self::$runtimeModeSet = false; } } /** * Creates a KernelBrowser. * * @param array $options An array of options to pass to the createKernel method * @param array $server An array of server parameters */ protected static function createClient(array $options = [], array $server = []): KernelBrowser { if (static::$booted) { throw new \LogicException(\sprintf('Booting the kernel before calling "%s()" is not supported, the kernel should only be booted once.', __METHOD__)); } if (!isset($_SERVER['APP_RUNTIME_MODE'])) { $_SERVER['APP_RUNTIME_MODE'] = 'web=1'; self::$runtimeModeSet = true; } $kernel = static::bootKernel($options); try { $client = $kernel->getContainer()->get('test.client'); } catch (ServiceNotFoundException) { if (class_exists(KernelBrowser::class)) { throw new \LogicException('You cannot create the client used in functional tests if the "framework.test" config is not set to true.'); } throw new \LogicException('You cannot create the client used in functional tests if the BrowserKit component is not available. Try running "composer require symfony/browser-kit".'); } $client->setServerParameters($server); return self::getClient($client); } }