|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / ObjectManager / Code / Generator / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/ObjectManager/Code/Generator/Factory.php |
Size | 3.39 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 03:56 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\ObjectManager\Code\Generator;
class Factory extends \Magento\Framework\Code\Generator\EntityAbstract
{
/**
* Entity type
*/
const ENTITY_TYPE = 'factory';
/**
* Retrieve class properties
*
* @return array
*/
protected function _getClassProperties()
{
$properties = parent::_getClassProperties();
// protected $_instanceName = null;
$properties[] = [
'name' => '_instanceName',
'visibility' => 'protected',
'docblock' => [
'shortDescription' => 'Instance name to create',
'tags' => [['name' => 'var', 'description' => 'string']],
],
];
return $properties;
}
/**
* Get default constructor definition for generated class
*
* @return array
*/
protected function _getDefaultConstructorDefinition()
{
return [
'name' => '__construct',
'parameters' => [
['name' => 'objectManager', 'type' => '\\' . \Magento\Framework\ObjectManagerInterface::class],
['name' => 'instanceName', 'defaultValue' => $this->getSourceClassName()],
],
'body' => "\$this->_objectManager = \$objectManager;\n\$this->_instanceName = \$instanceName;",
'docblock' => [
'shortDescription' => ucfirst(static::ENTITY_TYPE) . ' constructor',
'tags' => [
[
'name' => 'param',
'description' => '\Magento\Framework\ObjectManagerInterface $objectManager',
],
['name' => 'param', 'description' => 'string $instanceName'],
],
]
];
}
/**
* Returns list of methods for class generator
*
* @return array
*/
protected function _getClassMethods()
{
$construct = $this->_getDefaultConstructorDefinition();
// public function create(array $data = array())
$create = [
'name' => 'create',
'parameters' => [['name' => 'data', 'type' => 'array', 'defaultValue' => []]],
'body' => 'return $this->_objectManager->create($this->_instanceName, $data);',
'docblock' => [
'shortDescription' => 'Create class instance with specified parameters',
'tags' => [
['name' => 'param', 'description' => 'array $data'],
[
'name' => 'return',
'description' => $this->getSourceClassName()
],
],
],
];
return [$construct, $create];
}
/**
* {@inheritdoc}
*/
protected function _validateData()
{
$result = parent::_validateData();
if ($result) {
$sourceClassName = $this->getSourceClassName();
$resultClassName = $this->_getResultClassName();
if ($resultClassName !== $sourceClassName . 'Factory') {
$this->_addError(
'Invalid Factory class name [' . $resultClassName . ']. Use ' . $sourceClassName . 'Factory'
);
$result = false;
}
}
return $result;
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\ObjectManager\Code\Generator;
class Factory extends \Magento\Framework\Code\Generator\EntityAbstract
{
/**
* Entity type
*/
const ENTITY_TYPE = 'factory';
/**
* Retrieve class properties
*
* @return array
*/
protected function _getClassProperties()
{
$properties = parent::_getClassProperties();
// protected $_instanceName = null;
$properties[] = [
'name' => '_instanceName',
'visibility' => 'protected',
'docblock' => [
'shortDescription' => 'Instance name to create',
'tags' => [['name' => 'var', 'description' => 'string']],
],
];
return $properties;
}
/**
* Get default constructor definition for generated class
*
* @return array
*/
protected function _getDefaultConstructorDefinition()
{
return [
'name' => '__construct',
'parameters' => [
['name' => 'objectManager', 'type' => '\\' . \Magento\Framework\ObjectManagerInterface::class],
['name' => 'instanceName', 'defaultValue' => $this->getSourceClassName()],
],
'body' => "\$this->_objectManager = \$objectManager;\n\$this->_instanceName = \$instanceName;",
'docblock' => [
'shortDescription' => ucfirst(static::ENTITY_TYPE) . ' constructor',
'tags' => [
[
'name' => 'param',
'description' => '\Magento\Framework\ObjectManagerInterface $objectManager',
],
['name' => 'param', 'description' => 'string $instanceName'],
],
]
];
}
/**
* Returns list of methods for class generator
*
* @return array
*/
protected function _getClassMethods()
{
$construct = $this->_getDefaultConstructorDefinition();
// public function create(array $data = array())
$create = [
'name' => 'create',
'parameters' => [['name' => 'data', 'type' => 'array', 'defaultValue' => []]],
'body' => 'return $this->_objectManager->create($this->_instanceName, $data);',
'docblock' => [
'shortDescription' => 'Create class instance with specified parameters',
'tags' => [
['name' => 'param', 'description' => 'array $data'],
[
'name' => 'return',
'description' => $this->getSourceClassName()
],
],
],
];
return [$construct, $create];
}
/**
* {@inheritdoc}
*/
protected function _validateData()
{
$result = parent::_validateData();
if ($result) {
$sourceClassName = $this->getSourceClassName();
$resultClassName = $this->_getResultClassName();
if ($resultClassName !== $sourceClassName . 'Factory') {
$this->_addError(
'Invalid Factory class name [' . $resultClassName . ']. Use ' . $sourceClassName . 'Factory'
);
$result = false;
}
}
return $result;
}
}