Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DbRule.php
Go to the documentation of this file.
1 <?php
9 
11 {
17  protected $_moduleTableMap;
18 
24  public function __construct(array $tables)
25  {
26  $this->_moduleTableMap = $tables;
27  }
28 
38  public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
39  {
40  if ('php' != $fileType || !preg_match('#.*/(Setup|Resource)/.*\.php$#', $file)) {
41  return [];
42  }
43 
44  $dependenciesInfo = [];
45  $unKnowTables = [];
46  if (preg_match_all('#>gettable(name)?\([\'"]([^\'"]+)[\'"]\)#i', $contents, $matches)) {
47  $tables = array_pop($matches);
48  foreach ($tables as $table) {
49  if (!isset($this->_moduleTableMap[$table])) {
50  $unKnowTables[$file][$table] = $table;
51  continue;
52  }
53  if (strtolower($currentModule) !== strtolower($this->_moduleTableMap[$table])) {
54  $dependenciesInfo[] = [
55  'module' => $this->_moduleTableMap[$table],
57  'source' => $table,
58  ];
59  }
60  }
61  }
62  foreach ($unKnowTables as $tables) {
63  foreach ($tables as $table) {
64  $dependenciesInfo[] = ['module' => 'Unknown', 'source' => $table];
65  }
66  }
67  return $dependenciesInfo;
68  }
69 }
$contents
Definition: website.php:14
getDependencyInfo($currentModule, $fileType, $file, &$contents)
Definition: DbRule.php:38
$table
Definition: trigger.php:14