Airship\Cabin\Bridge\Blueprint\Skyport::removeGadget PHP 메소드

removeGadget() 보호된 메소드

Remove a gadget
protected removeGadget ( array $info ) : string
$info array
리턴 string
    protected function removeGadget(array $info) : string
    {
        // Is this in the universal gadgets file?
        $gadgets = \Airship\loadJSON(ROOT . '/config/gadgets.json');
        $found = false;
        foreach ($gadgets as $i => $gadget) {
            if ($gadget['supplier'] === $info['supplier']) {
                if ($gadget['name'] === $info['name']) {
                    $found = true;
                    \unlink(\implode('/', [ROOT, 'Gadgets', $info['supplier'], $info['supplier'] . $info['name'] . '.phar']));
                    unset($gadgets[$i]);
                    break;
                }
            }
        }
        if ($found) {
            \Airship\saveJSON(ROOT . '/config/cabins.json', $gadgets);
            return "Gadget removed from global configuration.\n";
        }
        foreach (\glob(ROOT . '/Cabin/*') as $cabinDir) {
            if (!\is_dir($cabinDir)) {
                continue;
            }
            $cabin = \Airship\path_to_filename($cabinDir);
            $gadgets = \Airship\loadJSON(ROOT . '/Cabin/' . $cabin . '/config/gadgets.json');
            $found = false;
            foreach ($gadgets as $i => $gadget) {
                if ($gadget['supplier'] === $info['supplier']) {
                    if ($gadget['name'] === $info['name']) {
                        $found = true;
                        \unlink(\implode('/', [ROOT, 'Cabin', $cabin, 'Gadgets', $info['supplier'], $info['supplier'] . $info['name'] . '.phar']));
                        unset($gadgets[$i]);
                        break;
                    }
                }
            }
            if ($found) {
                \Airship\saveJSON(ROOT . '/config/cabins.json', $gadgets);
                return "Gadget removed.\n";
            }
        }
        return "Gadget not found in any configuration.\n";
    }