public function testLayouts() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker(function ($path) { $xml = simplexml_load_file($path); $classes = \Magento\Framework\App\Utility\Classes::collectLayoutClasses($xml); foreach (\Magento\Framework\App\Utility\Classes::getXmlAttributeValues($xml, '/layout//@helper', 'helper') as $class) { $classes[] = \Magento\Framework\App\Utility\Classes::getCallbackClass($class); } $classes = array_merge($classes, \Magento\Framework\App\Utility\Classes::getXmlAttributeValues($xml, '/layout//@module', 'module')); $this->_assertNonFactoryName(array_unique($classes), $path); $tabs = \Magento\Framework\App\Utility\Classes::getXmlNodeValues($xml, '/layout//action[@method="addTab"]/block'); $this->_assertNonFactoryName(array_unique($tabs), $path, true); }, Files::init()->getLayoutFiles()); }
if (isPatternExist($content, $pattern, $factoryName)) { if (!isset($map[$classType])) { $map[$classType] = []; } $map[$classType][$factoryName] = getClassName($module, $classType, $name); } } } } } // layouts $classType = 'Block'; $layouts = $utilityFiles->getLayoutFiles([], false); foreach ($layouts as $file) { $xml = simplexml_load_file($file); $classes = \Magento\Framework\App\Utility\Classes::collectLayoutClasses($xml); $factoryNames = array_filter($classes, 'isFactoryName'); if (!$factoryNames) { continue; } foreach ($factoryNames as $factoryName) { list($module, $name) = getModuleName($factoryName, $compositeModules); $map[$classType][$factoryName] = getClassName($module, $classType, $name); } } echo Zend_Json::prettyPrint(Zend_Json::encode($map)); /** * Get combined array from similar files by pattern * * @param string $dirPath * @param string $filePattern
public function testLayoutFiles() { $invoker = new \Magento\Framework\App\Utility\AggregateInvoker($this); $invoker(function ($path) { $xml = simplexml_load_file($path); $classes = Classes::getXmlNodeValues($xml, '/layout//*[contains(text(), "\\\\Block\\\\") or contains(text(), "\\\\Model\\\\") or contains(text(), "\\\\Helper\\\\")]'); foreach (Classes::getXmlAttributeValues($xml, '/layout//@helper', 'helper') as $class) { $classes[] = Classes::getCallbackClass($class); } foreach (Classes::getXmlAttributeValues($xml, '/layout//@module', 'module') as $module) { $classes[] = str_replace('_', '\\', "{$module}_Helper_Data"); } $classes = array_merge($classes, Classes::collectLayoutClasses($xml)); $this->_assertClassesExist(array_unique($classes), $path); }, Files::init()->getLayoutFiles()); }