Skip to content

Commit 6242bc6

Browse files
[DI][Routing] add wither to configure the path of PHP-DSL configurators
1 parent 0f495ea commit 6242bc6

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

Loader/Configurator/ContainerConfigurator.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,14 @@ class ContainerConfigurator extends AbstractConfigurator
3434
private $path;
3535
private $file;
3636
private $anonymousCount = 0;
37-
private $defaultDefinition;
3837

39-
public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file, Definition $defaultDefinition = null)
38+
public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file)
4039
{
4140
$this->container = $container;
4241
$this->loader = $loader;
4342
$this->instanceof = &$instanceof;
4443
$this->path = $path;
4544
$this->file = $file;
46-
$this->defaultDefinition = $defaultDefinition;
4745
}
4846

4947
final public function extension(string $namespace, array $config)
@@ -69,7 +67,18 @@ final public function parameters(): ParametersConfigurator
6967

7068
final public function services(): ServicesConfigurator
7169
{
72-
return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount, $this->defaultDefinition);
70+
return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount);
71+
}
72+
73+
/**
74+
* @return static
75+
*/
76+
final public function withPath(string $path): self
77+
{
78+
$clone = clone $this;
79+
$clone->path = $clone->file = $path;
80+
81+
return $clone;
7382
}
7483
}
7584

Loader/Configurator/ServicesConfigurator.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,16 @@ class ServicesConfigurator extends AbstractConfigurator
3232
private $path;
3333
private $anonymousHash;
3434
private $anonymousCount;
35-
private $defaultDefinition;
3635

37-
public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path = null, int &$anonymousCount = 0, Definition $defaultDefinition = null)
36+
public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path = null, int &$anonymousCount = 0)
3837
{
39-
$defaultDefinition = $defaultDefinition ?? new Definition();
40-
$this->defaults = clone $defaultDefinition;
38+
$this->defaults = new Definition();
4139
$this->container = $container;
4240
$this->loader = $loader;
4341
$this->instanceof = &$instanceof;
4442
$this->path = $path;
4543
$this->anonymousHash = ContainerBuilder::hash($path ?: mt_rand());
4644
$this->anonymousCount = &$anonymousCount;
47-
$this->defaultDefinition = $defaultDefinition;
4845
$instanceof = [];
4946
}
5047

@@ -53,7 +50,7 @@ public function __construct(ContainerBuilder $container, PhpFileLoader $loader,
5350
*/
5451
final public function defaults(): DefaultsConfigurator
5552
{
56-
return new DefaultsConfigurator($this, $this->defaults = clone $this->defaultDefinition, $this->path);
53+
return new DefaultsConfigurator($this, $this->defaults = new Definition(), $this->path);
5754
}
5855

5956
/**

0 commit comments

Comments
 (0)