コード例 #1
0
 /**
  * Runs the given class loader module pre-loading (load dependencies) and
  * perform an initial check on module (Interface implementation).
  * If this success return a new instance from the module, otherwise
  * a ModuleException will be thrown.
  *
  * @param string $moduleClassName
  *
  * @return \BuildR\ClassLoader\Modules\ClassLoaderModuleInterface
  *
  * @throws \BuildR\ClassLoader\Exception\ModuleException
  */
 public function preLoad($moduleClassName)
 {
     $interfaces = class_implements($moduleClassName);
     if (!in_array(ClassLoaderModuleInterface::class, $interfaces)) {
         throw ModuleException::invalid($moduleClassName);
     }
     $module = new $moduleClassName();
     return $module;
 }
コード例 #2
0
ファイル: ClassLoader.php プロジェクト: BuildrPHP/ClassLoader
 /**
  * Remove a registered loader module from the stack by its name.
  * To determine a module name use the modules getName() method.
  *
  * @param string $moduleName The module name
  * @param inst $priority The priority
  *
  * @return bool
  *
  * @throws \BuildR\ClassLoader\Exception\ModuleException
  */
 public function removeModule($moduleName, $priority)
 {
     foreach ($this->modules as $modulePriority => $module) {
         if (call_user_func([$module, 'getName']) === $moduleName && $modulePriority == $priority) {
             unset($this->modules[$priority]);
             ksort($this->modules);
             return TRUE;
         }
     }
     throw ModuleException::notFound('Name: ' . $moduleName . ' Priority: ' . $priority);
 }