Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TestModuleManager.php
Go to the documentation of this file.
1 <?php
7 
11 
16 {
20  const DECLARATIVE_FILE_NAME = "db_schema.xml";
21 
29  public function addModuleFiles($moduleName)
30  {
31  $moduleName = str_replace("Magento_", "", $moduleName);
32  $pathToCommittedTestModules = TESTS_MODULES_PATH . '/Magento/' . $moduleName;
33  $pathToInstalledMagentoInstanceModules = MAGENTO_MODULES_PATH . $moduleName;
34  $iterator = new \RecursiveIteratorIterator(
35  new \RecursiveDirectoryIterator(
37  \RecursiveDirectoryIterator::FOLLOW_SYMLINKS
38  )
39  );
41  foreach ($iterator as $file) {
42  if (!$file->isDir()) {
43  $source = $file->getPathname();
46  $targetDir = dirname($destination);
47  if (!is_dir($targetDir)) {
48  mkdir($targetDir, 0755, true);
49  }
50  copy($source, $destination);
51  }
52  }
53 
54  unset($iterator, $file);
55 
56  // Register the modules under '_files/'
57  $pathPattern = $pathToInstalledMagentoInstanceModules . '/Test*/registration.php';
58  $files = glob($pathPattern, GLOB_NOSORT);
59  if ($files === false) {
60  throw new \RuntimeException('glob() returned error while searching in \'' . $pathPattern . '\'');
61  }
62  foreach ($files as $file) {
63  include $file;
64  }
65  }
66 
75  public function addRevision($moduleName, $revisionName, $dir)
76  {
77  $modulePath = str_replace("Magento_", "", $moduleName);
78  $folder = MAGENTO_MODULES_PATH . $modulePath;
79  $desiredPath = $folder . '/' . $dir;
80  $revisionPath = $folder . '/revisions/' . $revisionName . '/';
81 
82  if (!is_dir($desiredPath)) {
83  mkdir($desiredPath, 0777, true);
84  }
85  rename($revisionPath, $desiredPath);
86  }
87 
96  public function updateRevision($moduleName, $revisionName, $fileName, $fileDir)
97  {
98  $modulePath = str_replace("Magento_", "", $moduleName);
99  $folder = MAGENTO_MODULES_PATH . $modulePath;
100  $oldFile = $folder . DIRECTORY_SEPARATOR . $fileDir . "/" . $fileName;
101  $revisionFile = MAGENTO_MODULES_PATH . $modulePath . "/revisions/" .
102  $revisionName . DIRECTORY_SEPARATOR . $fileName;
103 
104  if (!file_exists($oldFile)) {
105  $dir = dirname($oldFile);
106  if (!is_dir($dir)) {
107  mkdir($dir, 0777, true);
108  }
109  touch($oldFile);
110  }
111 
112  if (file_exists($revisionFile)) {
113  unlink($oldFile);
114  copy($revisionFile, $oldFile);
115  } else {
116  throw new \InvalidArgumentException("Old File or revision files paths are invalid");
117  }
118  }
119 
126  public function removeModuleFiles($moduleName)
127  {
128  $modulePath = str_replace("Magento_", "", $moduleName);
129  $folder = MAGENTO_MODULES_PATH . $modulePath;
130 
131  //remove test modules from magento codebase
132  if (is_dir($folder)) {
134  }
135  }
136 
142  public function cleanModuleList()
143  {
148  $objectManager->removeSharedInstance(ModuleList::class);
149  $objectManager->removeSharedInstance(ModuleListInterface::class);
150  }
151 
158  public function updateModuleFiles($moduleName)
159  {
160  $pathToCommittedTestModules = TESTS_MODULES_PATH . '/UpgradeScripts/' . $moduleName;
161  $pathToInstalledMagentoInstanceModules = MAGENTO_MODULES_PATH . $moduleName;
162  $iterator = new \RecursiveIteratorIterator(
163  new \RecursiveDirectoryIterator(
165  \RecursiveDirectoryIterator::FOLLOW_SYMLINKS
166  )
167  );
169  foreach ($iterator as $file) {
170  if (!$file->isDir()) {
171  $source = $file->getPathname();
174  $targetDir = dirname($destination);
175  if (!is_dir($targetDir)) {
176  mkdir($targetDir, 0755, true);
177  }
178  copy($source, $destination);
179  }
180  }
181  }
182 }
$pathToInstalledMagentoInstanceModules
$objectManager
Definition: bootstrap.php:17
$pathPattern
$source
Definition: source.php:23
updateRevision($moduleName, $revisionName, $fileName, $fileDir)
$pathToCommittedTestModules
$fileName
Definition: translate.phtml:15
mkdir($pathname, $mode=0777, $recursive=false, $context=null)
Definition: ioMock.php:25
$relativePath
Definition: get.php:35
addRevision($moduleName, $revisionName, $dir)
foreach($appDirs as $dir) $files
static rmdirRecursive($dir, $recursive=true)
Definition: File.php:335