minor #37209 [DI][Framework] Use PHP instead of XML for test config (GaryPEGEOT)
This PR was squashed before being merged into the 5.2-dev branch.
Discussion
----------
[DI][Framework] Use PHP instead of XML for test config
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Partially #37186
| License | MIT
See #37186
Commits
-------
36cc98228e
[DI][Framework] Use PHP instead of XML for test config
This commit is contained in:
commit
3f20e65019
@ -259,7 +259,7 @@ class FrameworkExtension extends Extension
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($config['test'])) {
|
if (!empty($config['test'])) {
|
||||||
$loader->load('test.xml');
|
$phpLoader->load('test.php');
|
||||||
|
|
||||||
if (!class_exists(AbstractBrowser::class)) {
|
if (!class_exists(AbstractBrowser::class)) {
|
||||||
$container->removeDefinition('test.client');
|
$container->removeDefinition('test.client');
|
||||||
|
57
src/Symfony/Bundle/FrameworkBundle/Resources/config/test.php
Normal file
57
src/Symfony/Bundle/FrameworkBundle/Resources/config/test.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?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\Component\DependencyInjection\Loader\Configurator;
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Test\TestContainer;
|
||||||
|
use Symfony\Component\BrowserKit\CookieJar;
|
||||||
|
use Symfony\Component\BrowserKit\History;
|
||||||
|
use Symfony\Component\DependencyInjection\ServiceLocator;
|
||||||
|
use Symfony\Component\HttpKernel\EventListener\TestSessionListener;
|
||||||
|
|
||||||
|
return static function (ContainerConfigurator $container) {
|
||||||
|
$container->parameters()->set('test.client.parameters', []);
|
||||||
|
|
||||||
|
$container->services()
|
||||||
|
->set('test.client', KernelBrowser::class)
|
||||||
|
->args([
|
||||||
|
service('kernel'),
|
||||||
|
param('test.client.parameters'),
|
||||||
|
service('test.client.history'),
|
||||||
|
service('test.client.cookiejar'),
|
||||||
|
])
|
||||||
|
->share(false)
|
||||||
|
->public()
|
||||||
|
|
||||||
|
->set('test.client.history', History::class)->share(false)
|
||||||
|
->set('test.client.cookiejar', CookieJar::class)->share(false)
|
||||||
|
|
||||||
|
->set('test.session.listener', TestSessionListener::class)
|
||||||
|
->args([
|
||||||
|
service_locator([
|
||||||
|
'session' => service('session')->ignoreOnInvalid(),
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
->tag('kernel.event_subscriber')
|
||||||
|
|
||||||
|
->set('test.service_container', TestContainer::class)
|
||||||
|
->args([
|
||||||
|
service('kernel'),
|
||||||
|
'test.private_services_locator',
|
||||||
|
])
|
||||||
|
->public()
|
||||||
|
|
||||||
|
->set('test.private_services_locator', ServiceLocator::class)
|
||||||
|
->args([abstract_arg('callable collection')])
|
||||||
|
->public()
|
||||||
|
;
|
||||||
|
};
|
@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0" ?>
|
|
||||||
|
|
||||||
<container xmlns="http://symfony.com/schema/dic/services"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
|
||||||
|
|
||||||
<parameters>
|
|
||||||
<parameter key="test.client.parameters" type="collection"></parameter>
|
|
||||||
</parameters>
|
|
||||||
|
|
||||||
<services>
|
|
||||||
<defaults public="false" />
|
|
||||||
|
|
||||||
<service id="test.client" class="Symfony\Bundle\FrameworkBundle\KernelBrowser" shared="false" public="true">
|
|
||||||
<argument type="service" id="kernel" />
|
|
||||||
<argument>%test.client.parameters%</argument>
|
|
||||||
<argument type="service" id="test.client.history" />
|
|
||||||
<argument type="service" id="test.client.cookiejar" />
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="test.client.history" class="Symfony\Component\BrowserKit\History" shared="false" />
|
|
||||||
|
|
||||||
<service id="test.client.cookiejar" class="Symfony\Component\BrowserKit\CookieJar" shared="false" />
|
|
||||||
|
|
||||||
<service id="test.session.listener" class="Symfony\Component\HttpKernel\EventListener\TestSessionListener">
|
|
||||||
<tag name="kernel.event_subscriber" />
|
|
||||||
<argument type="service_locator">
|
|
||||||
<argument key="session" type="service" id="session" on-invalid="ignore" />
|
|
||||||
</argument>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="test.service_container" class="Symfony\Bundle\FrameworkBundle\Test\TestContainer" public="true">
|
|
||||||
<argument type="service" id="kernel" />
|
|
||||||
<argument>test.private_services_locator</argument>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="test.private_services_locator" class="Symfony\Component\DependencyInjection\ServiceLocator" public="true">
|
|
||||||
<argument type="collection" />
|
|
||||||
</service>
|
|
||||||
</services>
|
|
||||||
</container>
|
|
Reference in New Issue
Block a user