Skip to content
This repository was archived by the owner on Feb 5, 2021. It is now read-only.

Commit 97c376c

Browse files
authored
Merge pull request #22 from pamil/symfony4
Add support for Symfony 4
2 parents 67ec9bc + a3dfd2e commit 97c376c

File tree

6 files changed

+46
-34
lines changed

6 files changed

+46
-34
lines changed

.travis.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,24 @@ language: php
22

33
php:
44
- 7.1
5-
- nightly
5+
- 7.2
66

7-
matrix:
8-
allow_failures:
9-
- php: nightly
10-
fast_finish: true
7+
env:
8+
- SYMFONY_VERSION=3.3.*
9+
- SYMFONY_VERSION=3.4.*
10+
- SYMFONY_VERSION=4.0.*
1111

1212
cache:
1313
directories:
14-
- vendor
14+
- ~/.composer/cache/files
1515

1616
before_install:
1717
- phpenv config-rm xdebug.ini || true
1818

1919
install:
20-
- composer update --prefer-dist
20+
- composer require symfony/dependency-injection:${SYMFONY_VERSION} --no-update --no-scripts --prefer-dist
21+
- composer require --dev symfony/http-kernel:${SYMFONY_VERSION} --no-update --no-scripts --prefer-dist
22+
- composer update --prefer-dist $PREFER_LOWEST
2123

2224
script:
2325
- composer validate --strict

composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313
"php": "^7.1",
1414

1515
"behat/behat": "^3.1",
16-
"symfony/dependency-injection": "^2.8|^3.0"
16+
"symfony/dependency-injection": "^3.3|^4.0"
1717
},
1818
"require-dev": {
1919
"friends-of-behat/test-context": "^1.0",
20-
"phpspec/phpspec": "^4.0@alpha",
21-
"symfony/http-kernel": "^2.8|^3.0",
22-
"phpunit/phpunit": "^5.7.13|^6.0"
20+
"phpspec/phpspec": "^4.0",
21+
"symfony/http-kernel": "^3.3|^4.0",
22+
"phpunit/phpunit": "^6.0"
2323
},
2424
"suggest": {
25-
"symfony/http-kernel": "^2.8|^3.0"
25+
"symfony/http-kernel": "^3.3|^4.0"
2626
},
2727
"autoload": {
2828
"psr-4": { "FriendsOfBehat\\CrossContainerExtension\\": "src/" }

spec/ContainerBasedContainerAccessorSpec.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ function it_gets_a_service(Container $container): void
4141

4242
function it_gets_parameters_from_frozen_container(Container $container): void
4343
{
44-
$container->isFrozen()->willReturn(true);
44+
$container->isCompiled()->willReturn(true);
4545
$container->getParameterBag()->willReturn(new ParameterBag(['name' => 'value']));
4646

4747
$this->getParameters()->shouldReturn(['name' => 'value']);
4848
}
4949

5050
function it_gets_parameters_from_not_frozen_container(Container $container): void
5151
{
52-
$container->isFrozen()->willReturn(false);
52+
$container->isCompiled()->willReturn(false);
5353
$container->getParameterBag()->willReturn(new ParameterBag(['name' => 'value']));
5454

5555
$this->getParameters()->shouldReturn(['name' => 'value']);

spec/KernelBasedContainerAccessorSpec.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function it_gets_parameters_from_frozen_container(KernelInterface $kernel, Conta
5353
{
5454
$kernel->getContainer()->willReturn($container);
5555

56-
$container->isFrozen()->willReturn(true);
56+
$container->isCompiled()->willReturn(true);
5757
$container->getParameterBag()->willReturn(new ParameterBag(['name' => 'value']));
5858

5959
$this->getParameters()->shouldReturn(['name' => 'value']);
@@ -63,7 +63,7 @@ function it_gets_parameters_from_not_frozen_container(KernelInterface $kernel, C
6363
{
6464
$kernel->getContainer()->willReturn($container);
6565

66-
$container->isFrozen()->willReturn(false);
66+
$container->isCompiled()->willReturn(false);
6767
$container->getParameterBag()->willReturn(new ParameterBag(['name' => 'value']));
6868

6969
$this->getParameters()->shouldReturn(['name' => 'value']);

src/ContainerBasedContainerAccessor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function getParameters(): array
4545
{
4646
$parameterBag = $this->container->getParameterBag();
4747

48-
if (!$this->container->isFrozen()) {
48+
if (!$this->container->isCompiled()) {
4949
$parameterBag = clone $parameterBag;
5050
$parameterBag->resolve();
5151
}

tests/CrossContainerProcessorTest.php

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ final class CrossContainerProcessorTest extends TestCase
2929
public function it_resolves_cross_container_references_in_service_argument(): void
3030
{
3131
$externalContainer = new ContainerBuilder();
32-
$externalContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [['foo' => 'bar']]));
32+
$externalContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [['foo' => 'bar']]))->setPublic(true));
3333

3434
$baseContainer = new ContainerBuilder();
35-
$baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [
35+
$baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [
3636
new Reference('__external__.array_object'),
37-
]));
37+
]))->setPublic(true));
3838

3939
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
4040

@@ -48,12 +48,12 @@ public function it_resolves_cross_container_references_in_service_argument(): vo
4848
public function it_resolves_cross_container_references_in_service_argument_array(): void
4949
{
5050
$externalContainer = new ContainerBuilder();
51-
$externalContainer->setDefinition('std_class', new Definition(\stdClass::class));
51+
$externalContainer->setDefinition('std_class', (new Definition(\stdClass::class))->setPublic(true));
5252

5353
$baseContainer = new ContainerBuilder();
54-
$baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [
54+
$baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [
5555
['std' => ['class' => new Reference('__external__.std_class')]],
56-
]));
56+
]))->setPublic(true));
5757

5858
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
5959

@@ -67,14 +67,14 @@ public function it_resolves_cross_container_references_in_service_argument_array
6767
public function it_resolves_cross_container_references_in_service_argument_anonymous_definition(): void
6868
{
6969
$externalContainer = new ContainerBuilder();
70-
$externalContainer->setDefinition('std_class', new Definition(\stdClass::class));
70+
$externalContainer->setDefinition('std_class', (new Definition(\stdClass::class))->setPublic(true));
7171

7272
$baseContainer = new ContainerBuilder();
73-
$baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [
73+
$baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [
7474
new Definition(\ArrayObject::class, [
7575
['std_class' => new Reference('__external__.std_class')],
7676
]),
77-
]));
77+
]))->setPublic(true));
7878

7979
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
8080

@@ -88,11 +88,14 @@ public function it_resolves_cross_container_references_in_service_argument_anony
8888
public function it_resolves_cross_container_references_in_service_factory(): void
8989
{
9090
$externalContainer = new ContainerBuilder();
91-
$externalContainer->setDefinition('array_object_factory', new Definition(\ArrayObject::class, [['old' => 'old']]));
91+
$externalContainer->setDefinition('array_object_factory', (new Definition(\ArrayObject::class, [['old' => 'old']]))->setPublic(true));
9292

9393
$baseContainer = new ContainerBuilder();
94-
$baseContainer->setDefinition('array_object',
95-
(new Definition(\ArrayObject::class, [['new' => 'new']]))->setFactory([new Reference('__external__.array_object_factory'), 'exchangeArray'])
94+
$baseContainer->setDefinition(
95+
'array_object',
96+
(new Definition(\ArrayObject::class, [['new' => 'new']]))
97+
->setFactory([new Reference('__external__.array_object_factory'), 'exchangeArray'])
98+
->setPublic(true)
9699
);
97100

98101
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
@@ -142,9 +145,11 @@ public function it_resolves_cross_container_parameters_in_service_definition_arr
142145
$externalContainer->setParameter('parameter', '42');
143146

144147
$baseContainer = new ContainerBuilder();
145-
$baseContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [
146-
['parameter' => '%__external__.parameter%'],
147-
]));
148+
$baseContainer->setDefinition(
149+
'array_object',
150+
(new Definition(\ArrayObject::class, [['parameter' => '%__external__.parameter%']]))
151+
->setPublic(true)
152+
);
148153

149154
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
150155

@@ -190,10 +195,15 @@ public function it_resolves_cross_container_escaped_parameters_symfony_kernel():
190195
public function it_resolves_cross_container_references_in_method_calls(): void
191196
{
192197
$externalContainer = new ContainerBuilder();
193-
$externalContainer->setDefinition('array_object', new Definition(\ArrayObject::class, [['foo' => 'bar']]));
198+
$externalContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [['foo' => 'bar']]))->setPublic(true));
194199

195200
$baseContainer = new ContainerBuilder();
196-
$baseContainer->setDefinition('array_object', (new Definition(\ArrayObject::class, [[]]))->addMethodCall('exchangeArray', [new Reference('__external__.array_object')]));
201+
$baseContainer->setDefinition(
202+
'array_object',
203+
(new Definition(\ArrayObject::class, [[]]))
204+
->addMethodCall('exchangeArray', [new Reference('__external__.array_object')])
205+
->setPublic(true)
206+
);
197207

198208
$this->buildContainerWithDependencies($baseContainer, ['external' => $externalContainer]);
199209

0 commit comments

Comments
 (0)