Пример #1
0
 public function injectDependentModule($name, DependsOnModule $module)
 {
     $message = '';
     $dependency = $module->_depends();
     if (empty($dependency)) {
         return;
     }
     if (is_array($dependency)) {
         $message = reset($dependency);
         $dependency = key($dependency);
     }
     $config = $this->getModuleConfig($name);
     if (!isset($config['depends'])) {
         throw new ModuleRequireException($module, "\nThis module depends on {$dependency}\n" . "\n \n{$message}");
     }
     $dependentModule = $this->create($config['depends'], false);
     if (!method_exists($module, '_inject')) {
         throw new ModuleException($module, 'Module requires method _inject to be defined to accept dependencies');
     }
     $module->_inject($dependentModule);
     $dependentModule->_setConfig([]);
 }
Пример #2
0
 /**
  * Get the dependencies of a module.
  *
  * @param \Codeception\Lib\Interfaces\DependsOnModule $module
  * @return array
  * @throws \Codeception\Exception\ModuleException
  */
 private function getModuleDependencies(DependsOnModule $module)
 {
     $depends = $module->_depends();
     if (!$depends) {
         return [];
     }
     if (!is_array($depends)) {
         $message = sprintf("Method _depends of module '%s' must return an array", get_class($module));
         throw new ModuleException($module, $message);
     }
     return $depends;
 }