8 use Zend\Code\Generator\MethodGenerator;
9 use Zend\Code\Generator\PropertyGenerator;
12 \Magento\Framework\Code\Generator\CodeGeneratorInterface
20 'shortDescription' =>
'setShortDescription',
21 'longDescription' =>
'setLongDescription',
32 'const' =>
'setConst',
33 'static' =>
'setStatic',
34 'visibility' =>
'setVisibility',
35 'defaultValue' =>
'setDefaultValue',
45 'final' =>
'setFinal',
46 'static' =>
'setStatic',
47 'abstract' =>
'setAbstract',
48 'visibility' =>
'setVisibility',
50 'returntype' =>
'setReturnType' 61 'defaultValue' =>
'setDefaultValue',
62 'passedByReference' =>
'setPassedByReference',
63 'variadic' =>
'setVariadic',
74 foreach (
$map as $arrayKey => $setterName) {
75 if (isset(
$data[$arrayKey])) {
76 $object->{$setterName}(
$data[$arrayKey]);
89 $docBlockObject = new \Zend\Code\Generator\DocBlockGenerator();
90 $docBlockObject->setWordWrap(
false);
91 $this->_setDataToObject($docBlockObject, $docBlock, $this->_docBlockOptions);
93 return parent::setDocBlock($docBlockObject);
104 foreach (
$methods as $methodOptions) {
105 $methodObject = $this->createMethodGenerator();
106 $this->_setDataToObject($methodObject, $methodOptions, $this->_methodOptions);
109 $methodOptions[
'parameters']
111 $methodOptions[
'parameters']
113 $methodOptions[
'parameters']
116 $parametersArray = [];
117 foreach ($methodOptions[
'parameters'] as $parameterOptions) {
118 $parameterObject = new \Zend\Code\Generator\ParameterGenerator();
119 $this->_setDataToObject($parameterObject, $parameterOptions, $this->_parameterOptions);
120 $parametersArray[] = $parameterObject;
123 $methodObject->setParameters($parametersArray);
126 if (isset($methodOptions[
'docblock']) && is_array($methodOptions[
'docblock'])) {
127 $docBlockObject = new \Zend\Code\Generator\DocBlockGenerator();
128 $docBlockObject->setWordWrap(
false);
129 $this->_setDataToObject($docBlockObject, $methodOptions[
'docblock'], $this->_docBlockOptions);
131 $methodObject->setDocBlock($docBlockObject);
134 if (!empty($methodOptions[
'returnType'])) {
135 $methodObject->setReturnType($methodOptions[
'returnType']);
138 $this->addMethodFromGenerator($methodObject);
152 if (!is_string(
$method->getName())) {
153 throw new \InvalidArgumentException(
'addMethodFromGenerator() expects string for name');
156 return parent::addMethodFromGenerator(
$method);
169 $propertyObject =
new PropertyGenerator();
170 $this->_setDataToObject($propertyObject, $propertyOptions, $this->_propertyOptions);
172 if (isset($propertyOptions[
'docblock'])) {
173 $docBlock = $propertyOptions[
'docblock'];
174 if (is_array($docBlock)) {
175 $docBlockObject = new \Zend\Code\Generator\DocBlockGenerator();
176 $docBlockObject->setWordWrap(
false);
177 $this->_setDataToObject($docBlockObject, $docBlock, $this->_docBlockOptions);
178 $propertyObject->setDocBlock($docBlockObject);
182 $this->addPropertyFromGenerator($propertyObject);
197 if (!is_string($property->getName())) {
198 throw new \InvalidArgumentException(
'addPropertyFromGenerator() expects string for name');
201 return parent::addPropertyFromGenerator($property);
211 return new MethodGenerator();
219 return ltrim(parent::getNamespaceName(),
'\\') ?:
null;
_setDataToObject($object, array $data, array $map)
addMethods(array $methods)
setClassDocBlock(array $docBlock)
addProperties(array $properties)
addMethodFromGenerator(MethodGenerator $method)
addPropertyFromGenerator(PropertyGenerator $property)