Grav\Plugin\Admin\Admin::getDependenciesNeededToInstall PHP Метод

getDependenciesNeededToInstall() публичный Метод

Get an array of dependencies needed to be installed or updated for a list of packages to be installed.
public getDependenciesNeededToInstall ( array $packages ) : array | boolean
$packages array The packages slugs
Результат array | boolean
    public function getDependenciesNeededToInstall($packages)
    {
        $gpm = $this->gpm();
        if (!$gpm) {
            return false;
        }
        $dependencies = $this->gpm->getDependencies($packages);
        return $dependencies;
    }

Usage Example

Пример #1
0
 protected function taskInstallDependenciesOfPackages()
 {
     $data = $this->post;
     $packages = isset($data['packages']) ? explode(',', $data['packages']) : '';
     $packages = (array) $packages;
     $type = isset($data['type']) ? $data['type'] : '';
     if (!$this->authorizeTask('install ' . $type, ['admin.' . $type, 'admin.super'])) {
         $this->admin->json_response = ['status' => 'error', 'message' => $this->admin->translate('PLUGIN_ADMIN.INSUFFICIENT_PERMISSIONS_FOR_TASK')];
         return false;
     }
     try {
         $dependencies = $this->admin->getDependenciesNeededToInstall($packages);
     } catch (\Exception $e) {
         $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
         return false;
     }
     $result = Gpm::install(array_keys($dependencies), ['theme' => $type == 'theme']);
     if ($result) {
         $this->admin->json_response = ['status' => 'success', 'message' => 'Dependencies installed successfully'];
     } else {
         $this->admin->json_response = ['status' => 'error', 'message' => $this->admin->translate('PLUGIN_ADMIN.INSTALLATION_FAILED')];
     }
     return true;
 }