Skip to content

Commit f3462df

Browse files
committed
Three ... dots are deprecated, triggers notices
1 parent b58b33f commit f3462df

File tree

6 files changed

+19
-16
lines changed

6 files changed

+19
-16
lines changed

src/DI/Extensions/DecoratorExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public function beforeCompile()
4242
$info->tags[InjectExtension::TAG_INJECT] = $info->inject;
4343
}
4444

45-
$this->addSetups($type, Nette\DI\Helpers::filterArguments($info->setup));
46-
$this->addTags($type, Nette\DI\Helpers::filterArguments($info->tags));
45+
$this->addSetups($type, Nette\DI\Helpers::filterArguments($info->setup, 'decorator'));
46+
$this->addTags($type, Nette\DI\Helpers::filterArguments($info->tags, 'decorator'));
4747
}
4848
}
4949

src/DI/Extensions/ParametersExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public function loadConfiguration()
4343

4444
foreach ($this->dynamicParams as $key) {
4545
$params[$key] = array_key_exists($key, $params)
46-
? new DynamicParameter($generator->formatPhp('($this->parameters[?] \?\? ?)', $resolver->completeArguments(Nette\DI\Helpers::filterArguments([$key, $params[$key]]))))
46+
? new DynamicParameter($generator->formatPhp('($this->parameters[?] \?\? ?)', $resolver->completeArguments(Nette\DI\Helpers::filterArguments([$key, $params[$key]], 'parameters'))))
4747
: new DynamicParameter((new Nette\PhpGenerator\Dumper)->format('$this->parameters[?]', $key));
4848
}
4949

src/DI/Extensions/ServicesExtension.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,9 @@ private function loadDefinition(?string $name, \stdClass $config): void
8585
*/
8686
private function updateServiceDefinition(Definitions\ServiceDefinition $definition, \stdClass $config): void
8787
{
88+
$desc = $definition->getDescriptor();
8889
if ($config->create) {
89-
$definition->setFactory(Helpers::filterArguments([$config->create])[0]);
90+
$definition->setFactory(Helpers::filterArguments([$config->create], $desc)[0]);
9091
$definition->setType(null);
9192
}
9293

@@ -95,7 +96,7 @@ private function updateServiceDefinition(Definitions\ServiceDefinition $definiti
9596
}
9697

9798
if ($config->arguments) {
98-
$arguments = Helpers::filterArguments($config->arguments);
99+
$arguments = Helpers::filterArguments($config->arguments, $desc);
99100
if (empty($config->reset['arguments']) && !Nette\Utils\Arrays::isList($arguments)) {
100101
$arguments = array_replace($definition->getFactory()->arguments, $arguments);
101102
}
@@ -108,7 +109,7 @@ private function updateServiceDefinition(Definitions\ServiceDefinition $definiti
108109
$definition->setSetup([]);
109110
}
110111

111-
foreach (Helpers::filterArguments($config->setup) as $id => $setup) {
112+
foreach (Helpers::filterArguments($config->setup, $desc) as $id => $setup) {
112113
if (is_array($setup)) {
113114
$setup = new Statement(key($setup), array_values($setup));
114115
}
@@ -138,22 +139,23 @@ private function updateAccessorDefinition(Definitions\AccessorDefinition $defini
138139
private function updateFactoryDefinition(Definitions\FactoryDefinition $definition, \stdClass $config): void
139140
{
140141
$resultDef = $definition->getResultDefinition();
142+
$desc = $definition->getDescriptor();
141143

142144
if (isset($config->implement)) {
143145
$definition->setImplement($config->implement);
144146
$definition->setAutowired(true);
145147
}
146148

147149
if ($config->create) {
148-
$resultDef->setFactory(Helpers::filterArguments([$config->create])[0]);
150+
$resultDef->setFactory(Helpers::filterArguments([$config->create], $desc)[0]);
149151
}
150152

151153
if ($config->type) {
152154
$resultDef->setFactory($config->type);
153155
}
154156

155157
if ($config->arguments) {
156-
$arguments = Helpers::filterArguments($config->arguments);
158+
$arguments = Helpers::filterArguments($config->arguments, $desc);
157159
if (empty($config->reset['arguments']) && !Nette\Utils\Arrays::isList($arguments)) {
158160
$arguments = array_replace($resultDef->getFactory()->arguments, $arguments);
159161
}
@@ -166,7 +168,7 @@ private function updateFactoryDefinition(Definitions\FactoryDefinition $definiti
166168
$resultDef->setSetup([]);
167169
}
168170

169-
foreach (Helpers::filterArguments($config->setup) as $id => $setup) {
171+
foreach (Helpers::filterArguments($config->setup, $desc) as $id => $setup) {
170172
if (is_array($setup)) {
171173
$setup = new Statement(key($setup), array_values($setup));
172174
}

src/DI/Helpers.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,11 @@ public static function escape($value)
139139
/**
140140
* Removes ... and process constants recursively.
141141
*/
142-
public static function filterArguments(array $args): array
142+
public static function filterArguments(array $args, string $hint = ''): array
143143
{
144144
foreach ($args as $k => $v) {
145145
if ($v === '...') {
146+
trigger_error("[$hint] Replace ... with _ in configuration file.", E_USER_DEPRECATED);
146147
unset($args[$k]);
147148
} elseif (
148149
PHP_VERSION_ID >= 80100
@@ -156,10 +157,10 @@ public static function filterArguments(array $args): array
156157
} elseif (is_string($v) && preg_match('#^@[\w\\\\]+$#D', $v)) {
157158
$args[$k] = new Reference(substr($v, 1));
158159
} elseif (is_array($v)) {
159-
$args[$k] = self::filterArguments($v);
160+
$args[$k] = self::filterArguments($v, $hint);
160161
} elseif ($v instanceof Statement) {
161-
[$tmp] = self::filterArguments([$v->getEntity()]);
162-
$args[$k] = new Statement($tmp, self::filterArguments($v->arguments));
162+
[$tmp] = self::filterArguments([$v->getEntity()], $hint);
163+
$args[$k] = new Statement($tmp, self::filterArguments($v->arguments, $hint));
163164
}
164165
}
165166

tests/DI/Compiler.services.autowiring.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ services:
5252
factory: Factory()::createModel
5353
setup:
5454
# local methods
55-
- test(...)
55+
- test(_)
5656
- @model::test()
5757
- @self::test()
5858

tests/DI/Helpers.filterArguments.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Assert::same([], Helpers::filterArguments([]));
1818

1919
Assert::same(
2020
['a', 'b', 3 => ['c'], [1 => 'd']],
21-
Helpers::filterArguments(['a', 'b', '...', ['c', '...'], ['...', 'd']])
21+
@Helpers::filterArguments(['a', 'b', '...', ['c', '...'], ['...', 'd']]) // ... is deprecated
2222
);
2323

2424
Assert::same(
@@ -33,5 +33,5 @@ Assert::equal(
3333

3434
Assert::equal(
3535
[new Statement('class', ['a', 2 => Nette\DI\ContainerBuilder::THIS_CONTAINER])],
36-
Helpers::filterArguments([new Statement('class', ['a', '...', 'Nette\DI\ContainerBuilder::THIS_CONTAINER'])])
36+
@Helpers::filterArguments([new Statement('class', ['a', '...', 'Nette\DI\ContainerBuilder::THIS_CONTAINER'])]) // ... is deprecated
3737
);

0 commit comments

Comments
 (0)