Exemplo n.º 1
0
 public function remove()
 {
     if (!$this->isInstalled()) {
         echo "  {$this->getName()} is not  installed.\n";
         return;
     }
     if (!empty($this->dependents)) {
         /** @var Component $dependent */
         foreach ($this->dependents as $dependent) {
             if (ComponentManager::getInstance()->getComponent($dependent)->isInstalled()) {
                 echo "  {$this->getName()} is still needed.\n";
                 return;
             }
         }
     }
     echo "  Removing {$this->getName()}\n";
     $this->installed = false;
     /** @var Component $dependency */
     foreach ($this->dependencies as $dependency) {
         /** @var Component $component */
         $component = ComponentManager::getInstance()->getComponent($dependency);
         foreach ($component->getDependents() as $dependent) {
             if (ComponentManager::getInstance()->getComponent($dependent)->isInstalled()) {
                 return;
             }
         }
         if (!$component->explicitInstall) {
             $component->remove();
         }
     }
 }
                    case 'INSTALL':
                        //install component
                        $componentManager->getComponent($keywords[1])->install(true);
                        break;
                    case 'REMOVE':
                        //remove component
                        $componentManager->getComponent($keywords[1])->remove();
                        break;
                    case 'LIST':
                        //list installed components
                        $componentManager->listInstalledComponents();
                        break;
                    case 'END':
                        //end of input
                        break;
                }
            }
            if (!feof($handle)) {
                echo "Error: unexpected fgets() fail\n";
            }
            echo "\n";
            fclose($handle);
            //var_dump($componentManager->getComponents());
        }
    }
}
if (file_exists($_SERVER['argv'][1])) {
    ComponentManager::getInstance()->main();
} else {
    echo "The file {$_SERVER['argv'][1]} does not exist\n";
}