public function testDetectModules() { $directory = dirname(__FILE__) . '/TestModules'; // MUST BE ALPHABETICAL - directories are scanned alphabetically $expected = ['\\WPHPTests\\TestModules\\AnotherSampleModule\\AnotherSampleModule', '\\WPHPTests\\TestModules\\SampleModule\\SampleModule']; $scanner = new DirectoryScanner($directory); $validModules = $scanner->getValidModules(); $this->assertSame($validModules, $expected); }
/** * @param array $parsedModules * @return false|array false on failure, array with module classes on success */ public function routeAll($parsedModules) { if (!is_array($parsedModules) || empty($parsedModules)) { return false; } $dirScanner = new DirectoryScanner(); $arrayScanner = new ArrayScanner(); $buffer = []; foreach ($parsedModules as $module) { if (empty($module['type']) || empty($module['string'])) { continue; } if ($module['type'] == 'dir') { $dirScanner->scanDirectory($module['string']); } elseif ($module['type'] == 'class') { $buffer[] = $module['string']; } } $arrayScanner->scanArray($buffer); $modules = array_unique(array_merge($dirScanner->getValidModules(), $arrayScanner->getValidModules())); return $modules; }