Skip to content

Commit 405482b

Browse files
author
Evgeny Kalashnikov
committed
Code generate: support variadic parameter
1 parent c2810e0 commit 405482b

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

lib/internal/Magento/Framework/Code/Generator/ClassGenerator.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class ClassGenerator extends \Zend\Code\Generator\ClassGenerator implements
5959
'type' => 'setType',
6060
'defaultValue' => 'setDefaultValue',
6161
'passedByReference' => 'setPassedByReference',
62+
'variadic' => 'setVariadic',
6263
];
6364

6465
/**

lib/internal/Magento/Framework/Code/Generator/EntityAbstract.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,8 @@ protected function _getMethodParameterInfo(\ReflectionParameter $parameter)
313313
$parameterInfo = [
314314
'name' => $parameter->getName(),
315315
'passedByReference' => $parameter->isPassedByReference(),
316-
'type' => $parameter->getType()
316+
'type' => $parameter->getType(),
317+
'variadic' => $parameter->isVariadic()
317318
];
318319

319320
if ($parameter->isArray()) {

lib/internal/Magento/Framework/Interception/Code/Generator/Interceptor.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,13 @@ protected function _getParameterList(array $parameters)
130130
', ',
131131
array_map(
132132
function ($item) {
133-
return "$" . $item['name'];
133+
$output = '';
134+
if ($item['variadic']) {
135+
$output .= '... ';
136+
}
137+
138+
$output .="\${$item['name']}";
139+
return $output;
134140
},
135141
$parameters
136142
)

0 commit comments

Comments
 (0)