Jelix\Dependencies\Resolver::addItem PHP Method

addItem() public method

public addItem ( Item $item )
$item Item
    public function addItem(Item $item)
    {
        if (isset($this->item[$item->getName()])) {
            throw new Exception('Item has already been added', 1);
        }
        $this->items[$item->getName()] = $item;
    }

Usage Example

Beispiel #1
0
 protected function _singleModules($action, $modulesList, $entrypoint)
 {
     $this->startMessage();
     if ($entrypoint == null) {
         $entryPointList = $this->entryPoints;
     } else {
         if (isset($this->epId[$entrypoint])) {
             $entryPointList = array($this->entryPoints[$this->epId[$entrypoint]]);
         } else {
             throw new \Exception("unknown entry point");
         }
     }
     foreach ($entryPointList as $epId => $ep) {
         if ($ep->sameConfigAs) {
             continue;
         }
         $allModules =& $ep->getLaunchers();
         $modules = array();
         // check that all given modules are existing
         $hasError = false;
         foreach ($modulesList as $name) {
             if (!isset($allModules[$name])) {
                 $this->error('module.unknown', $name);
                 $hasError = true;
             }
         }
         if ($hasError) {
             continue;
         }
         // get all modules
         $resolver = new Resolver();
         foreach ($ep->getLaunchers() as $name => $module) {
             $resolverItem = $module->getResolverItem($epId);
             if (in_array($name, $modulesList)) {
                 $resolverItem->setAction($action);
             }
             $resolver->addItem($resolverItem);
         }
         // install modules
         $result = $result & $this->_installModules($resolver, $ep, false);
         if (!$result) {
             break;
         }
         $this->installerIni->save();
     }
     $this->completeInstallStatus();
     $this->installerIni->save();
     $this->endMessage();
     return $result;
 }