18 'frontend' =>
'Magento\Theme',
19 'adminhtml' =>
'Magento\Adminhtml',
88 public function __construct(array $mapRouters, array $mapLayoutBlocks, array $mapLayoutHandles)
90 $this->_mapRouters = $mapRouters;
91 $this->_mapLayoutBlocks = $mapLayoutBlocks;
92 $this->_mapLayoutHandles = $mapLayoutHandles;
107 if (
'layout' != $fileType) {
119 $dependencies = array_merge(
128 return $dependencies;
143 '/(?<source><.+module\s*=\s*[\'"](?<namespace>' .
164 '/(?<source><block.*class\s*=\s*[\'"](?<namespace>' .
167 '(?<module>[A-Z][a-zA-Z]+)[_\\\\]' .
169 '/(?<source><block.*template\s*=\s*[\'"](?<namespace>' .
192 '/(?<source><block\s*>(?<namespace>' .
195 '(?<module>[A-Z][a-zA-Z]+)[_\\\\]' .
197 '/(?<source><template\s*>(?<namespace>' .
200 '(?<module>[A-Z][a-zA-Z]+)::[\w\/\.]+' .
202 '/(?<source><file\s*>(?<namespace>' .
205 '(?<module>[A-Z][a-zA-Z]+)::[\w\/\.-]+' .
207 '/(?<source><.*helper\s*=\s*[\'"](?<namespace>' .
210 '(?<module>[A-Z][a-zA-Z]+)[_\\\\](?:[A-Z][a-z]+[_\\\\]?){1,}::[\w]+' .
236 foreach ((array)$xml->xpath(
'/layout/child::*') as
$element) {
238 $modules = isset($check[
'module']) ? $check[
'module'] :
null;
240 if (!is_array($modules)) {
241 $modules = [$modules];
243 foreach ($modules as $module) {
274 foreach ((array)$xml->xpath(
'/layout/child::*/@parent') as
$element) {
276 $modules = isset($check[
'module']) ? $check[
'module'] :
null;
278 if (!is_array($modules)) {
279 $modules = [$modules];
281 foreach ($modules as $module) {
312 foreach ((array)$xml->xpath(
'//update/@handle') as
$element) {
314 $modules = isset($check[
'module']) ? $check[
'module'] :
null;
316 if (!is_array($modules)) {
317 $modules = [$modules];
319 foreach ($modules as $module) {
350 foreach ((array)$xml->xpath(
'//reference/@name') as
$element) {
352 $module = isset($check[
'module']) ? $check[
'module'] :
null;
377 foreach ($matches as $match) {
378 $module = $match[
'namespace'] .
'\\' . $match[
'module'];
380 if ($currentModule != $module) {
381 $result[$module] = [
'type' =>
$type,
'source' => $match[
'source']];
404 $chunks = explode(
'_',
$handle);
405 if (count($chunks) > 1) {
409 $router = implode(
'_', $chunks);
410 if (isset($this->_mapRouters[$router])) {
412 $modules = $this->_mapRouters[$router];
413 if (!in_array($currentModule, $modules)) {
414 return [
'module' => $modules];
418 if (isset($this->_mapLayoutHandles[$area][
$handle])) {
420 $modules = $this->_mapLayoutHandles[$area][
$handle];
421 if (isset($modules[$currentModule])) {
422 return [
'module' =>
null];
426 if (1 == count($modules)) {
427 return [
'module' => current($modules)];
432 if (isset($modules[$defaultModule])) {
433 return [
'module' => $defaultModule];
455 if (isset($this->_mapLayoutBlocks[$area][
$block])) {
457 $modules = $this->_mapLayoutBlocks[$area][
$block];
458 if (isset($modules[$currentModule])) {
459 return [
'module' =>
null];
463 if (1 == count($modules)) {
464 return [
'module' => current($modules)];
469 if (isset($modules[$defaultModule])) {
470 return [
'module' => $defaultModule];
485 if (preg_match(
'/\/(?<area>adminhtml|frontend)\//', $file, $matches)) {
486 $area = $matches[
'area'];
500 foreach ($dependencies as $module =>
$value) {
514 if (isset($this->_defaultModules[$area])) {
515 return $this->_defaultModules[$area];
_checkDependenciesByRegexp($currentModule, &$contents, $patterns=[])
_caseLayoutHandle($currentModule, $file, &$contents)
const EXCEPTION_TYPE_UNDEFINED_DEPENDENCY
const EXCEPTION_TYPE_UNKNOWN_HANDLE
_caseAttributeModule($currentModule, &$contents)
_getDefaultModuleName($area='default')
getDependencyInfo($currentModule, $fileType, $file, &$contents)
_caseLayoutHandleUpdate($currentModule, $file, &$contents)
_checkDependencyLayoutBlock($currentModule, $area, $block)
_caseLayoutReference($currentModule, $file, &$contents)
_caseElementBlock($currentModule, &$contents)
const EXCEPTION_TYPE_UNKNOWN_BLOCK
_checkDependencyLayoutHandle($currentModule, $area, $handle)
_getUniqueDependencies($dependencies=[])
__construct(array $mapRouters, array $mapLayoutBlocks, array $mapLayoutHandles)
_caseElementAction($currentModule, &$contents)
_caseLayoutHandleParent($currentModule, $file, &$contents)