Skip to content

Commit

Permalink
Merge 05aab9c into 03c0460
Browse files Browse the repository at this point in the history
  • Loading branch information
mnapoli committed Apr 21, 2018
2 parents 03c0460 + 05aab9c commit 7eee12c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/CompiledContainer.php
Expand Up @@ -13,6 +13,7 @@
use Invoker\Invoker;
use Invoker\InvokerInterface;
use Invoker\ParameterResolver\AssociativeArrayResolver;
use Invoker\ParameterResolver\DefaultValueResolver;
use Invoker\ParameterResolver\NumericArrayResolver;
use Invoker\ParameterResolver\ResolverChain;

Expand Down Expand Up @@ -101,6 +102,7 @@ protected function resolveFactory($callable, $entryName, array $extraParameters
new AssociativeArrayResolver,
new FactoryParameterResolver($this->delegateContainer),
new NumericArrayResolver,
new DefaultValueResolver,
]);

$this->factoryInvoker = new Invoker($parameterResolver, $this->delegateContainer);
Expand Down
8 changes: 5 additions & 3 deletions src/Definition/Resolver/FactoryResolver.php
Expand Up @@ -12,6 +12,7 @@
use Invoker\Exception\NotEnoughParametersException;
use Invoker\Invoker;
use Invoker\ParameterResolver\AssociativeArrayResolver;
use Invoker\ParameterResolver\DefaultValueResolver;
use Invoker\ParameterResolver\NumericArrayResolver;
use Invoker\ParameterResolver\ResolverChain;
use Psr\Container\ContainerInterface;
Expand Down Expand Up @@ -60,9 +61,10 @@ public function resolve(Definition $definition, array $parameters = [])
{
if (! $this->invoker) {
$parameterResolver = new ResolverChain([
new AssociativeArrayResolver,
new FactoryParameterResolver($this->container),
new NumericArrayResolver,
new AssociativeArrayResolver,
new FactoryParameterResolver($this->container),
new NumericArrayResolver,
new DefaultValueResolver,
]);

$this->invoker = new Invoker($parameterResolver, $this->container);
Expand Down
15 changes: 15 additions & 0 deletions tests/IntegrationTest/Definitions/FactoryDefinitionTest.php
Expand Up @@ -551,6 +551,21 @@ public function test_multiple_closures_on_the_same_line_cannot_be_compiled()
$builder->addDefinitions(__DIR__ . '/FactoryDefinition/config.inc');
$this->assertEquals('foo', $builder->build()->get('factory'));
}

/**
* @dataProvider provideContainer
*/
public function test_optional_parameters_can_be_omitted(ContainerBuilder $builder)
{
$builder->addDefinitions([
'factory' => function ($c, $entry, $a = 'foo') {
return $a;
},
]);
$container = $builder->build();

self::assertEquals('foo', $container->get('factory'));
}
}

class FactoryDefinitionTestClass
Expand Down

0 comments on commit 7eee12c

Please sign in to comment.