public function testPhpCode() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker(function ($file) { $classes = \Magento\Framework\App\Utility\Classes::collectPhpCodeClasses(file_get_contents($file)); $this->_assertNonFactoryName($classes, $file); }, Files::init()->getPhpFiles(Files::INCLUDE_APP_CODE | Files::INCLUDE_PUB_CODE | Files::INCLUDE_LIBS | Files::INCLUDE_TEMPLATES | Files::AS_DATA_SET | Files::INCLUDE_NON_CLASSES)); }
public function testPhpCode() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker(function ($file) { $classes = \Magento\Framework\App\Utility\Classes::collectPhpCodeClasses(file_get_contents($file)); $this->_assertNonFactoryName($classes, $file); }, \Magento\Framework\App\Utility\Files::init()->getPhpFiles(true, true, true, true, false)); }
echo USAGE; exit(0); } require_once realpath(dirname(dirname(dirname(dirname(dirname(__DIR__)))))) . '/dev/tests/static/framework/bootstrap.php'; require_once realpath(dirname(dirname(dirname(dirname(dirname(__DIR__)))))) . '/lib/internal/Zend/Json.php'; $magentoBaseDir = dirname(__DIR__) . '/../../../../'; if (isset($options['p'])) { $magentoBaseDir = $options['p']; } $utilityFiles = new Magento\Framework\App\Utility\Files($magentoBaseDir); $map = []; $compositeModules = getFilesCombinedArray(__DIR__ . '/aliases_map', '/^composite_modules_.*\\.php$/'); // PHP code foreach ($utilityFiles->getPhpFiles(true, true, true, false) as $file) { $content = file_get_contents($file); $classes = \Magento\Framework\App\Utility\Classes::collectPhpCodeClasses($content); if ($classes) { $factoryNames = array_filter($classes, 'isFactoryName'); foreach ($factoryNames as $factoryName) { list($module, $name) = getModuleName($factoryName, $compositeModules); $patterns = ['::getModel(\'%s\'' => 'Model', '::getSingleton(\'%s\'' => 'Model', '::getResourceModel(\'%s\'' => 'Model_Resource', '::getResourceSingleton(\'%s\'' => 'Model_Resource', 'addBlock(\'%s\'' => 'Block', 'createBlock(\'%s\'' => 'Block', 'getBlockClassName(\'%s\'' => 'Block', 'getBlockSingleton(\'%s\'' => 'Block']; foreach ($patterns as $pattern => $classType) { if (isPatternExist($content, $pattern, $factoryName)) { if (!isset($map[$classType])) { $map[$classType] = []; } $map[$classType][$factoryName] = getClassName($module, $classType, $name); } } } }