Pagekit\Installer\Package\PackageManager::enable PHP Method

enable() public method

public enable ( $packages )
$packages
    public function enable($packages)
    {
        if (!is_array($packages)) {
            $packages = [$packages];
        }
        foreach ($packages as $package) {
            App::trigger('package.enable', [$package]);
            if (!($current = App::config('system')->get('packages.' . $package->get('module')))) {
                $current = $this->doInstall($package);
            }
            $scripts = $this->getScripts($package, $current);
            if ($scripts->hasUpdates()) {
                $scripts->update();
            }
            $version = $this->getVersion($package);
            App::config('system')->set('packages.' . $package->get('module'), $version);
            $scripts->enable();
            if ($package->getType() == 'pagekit-theme') {
                App::config('system')->set('site.theme', $package->get('module'));
            } elseif ($package->getType() == 'pagekit-extension') {
                App::config('system')->push('extensions', $package->get('module'));
            }
        }
    }

Usage Example

 /**
  * @Request({"name"}, csrf=true)
  */
 public function enableAction($name)
 {
     $handler = $this->errorHandler($name);
     if (!($package = App::package($name))) {
         App::abort(400, __('Unable to find "%name%".', ['%name%' => $name]));
     }
     App::module()->load($package->get('module'));
     if (!($module = App::module($package->get('module')))) {
         App::abort(400, __('Unable to enable "%name%".', ['%name%' => $package->get('title')]));
     }
     $this->manager->enable($package);
     App::exception()->setHandler($handler);
     return ['message' => 'success'];
 }
All Usage Examples Of Pagekit\Installer\Package\PackageManager::enable