29 private $scalarTypesProvider;
36 \
Magento\Framework\Code\Reader\ArgumentsReader $argumentsReader =
null,
37 \
Magento\Framework\Code\Reader\ScalarTypesProvider $scalarTypesProvider =
null 39 $this->_argumentsReader = $argumentsReader ?: new \Magento\Framework\Code\Reader\ArgumentsReader();
40 $this->scalarTypesProvider = $scalarTypesProvider ?: new \Magento\Framework\Code\Reader\ScalarTypesProvider();
53 $classArguments = $this->_argumentsReader->getConstructorArguments(
$class,
true);
60 $name = $argument[
'name'];
61 $type = $argument[
'type'];
62 if (in_array(
$type, $typeList)) {
65 $errors[] =
'Variable name duplication. [$' .
$name .
']';
72 $classPath = str_replace(
'\\',
'/',
$class->getFileName());
73 throw new \Magento\Framework\Exception\ValidatorException(
75 'Argument type duplication in class %1 in %2%3%4',
99 $type = $argument[
'type'];
100 if (!
$type || in_array(
$type, $this->scalarTypesProvider->getTypes())) {
103 $reflection = new \ReflectionClass(
$type);
104 if (
false == $reflection->isInterface()) {
119 $annotations = $this->_argumentsReader->getAnnotations(
$class);
120 if (isset($annotations[self::SUPPRESS_ANNOTATION])) {
_ignoreWarning(\ReflectionClass $class)
elseif(isset( $params[ 'redirect_parent']))
_getObjectArguments(array $arguments)
$_option $_optionId $class
__construct(\Magento\Framework\Code\Reader\ArgumentsReader $argumentsReader=null, \Magento\Framework\Code\Reader\ScalarTypesProvider $scalarTypesProvider=null)
const SUPPRESS_ANNOTATION
if(!isset($_GET['name'])) $name