Grav\Plugin\Admin\Gpm::selfupgrade PHP Method

selfupgrade() public static method

public static selfupgrade ( ) : boolean
return boolean
    public static function selfupgrade()
    {
        $upgrader = new Upgrader();
        if (!Installer::isGravInstance(GRAV_ROOT)) {
            return false;
        }
        if (is_link(GRAV_ROOT . DS . 'index.php')) {
            Installer::setError(Installer::IS_LINK);
            return false;
        }
        if (method_exists($upgrader, 'meetsRequirements') && !$upgrader->meetsRequirements()) {
            $error = [];
            $error[] = '<p>Grav has increased the minimum PHP requirement.<br />';
            $error[] = 'You are currently running PHP <strong>' . PHP_VERSION . '</strong>';
            $error[] = ', but PHP <strong>' . GRAV_PHP_MIN . '</strong> is required.</p>';
            $error[] = '<p><a href="http://getgrav.org/blog/changing-php-requirements-to-5.5" class="button button-small secondary">Additional information</a></p>';
            Installer::setError(implode("\n", $error));
            return false;
        }
        $update = $upgrader->getAssets()['grav-update'];
        $tmp = Admin::getTempDir() . '/Grav-' . uniqid();
        $file = self::_downloadSelfupgrade($update, $tmp);
        Installer::install($file, GRAV_ROOT, ['sophisticated' => true, 'overwrite' => true, 'ignore_symlinks' => true]);
        $errorCode = Installer::lastErrorCode();
        Folder::delete($tmp);
        if ($errorCode & (Installer::ZIP_OPEN_ERROR | Installer::ZIP_EXTRACT_ERROR)) {
            return false;
        }
        return true;
    }

Usage Example

Beispiel #1
0
 /**
  * Handles updating Grav
  *
  * @return bool True if the action was performed
  */
 public function taskUpdategrav()
 {
     require_once __DIR__ . '/gpm.php';
     if (!$this->authorizeTask('install grav', ['admin.super'])) {
         return;
     }
     $result = \Grav\Plugin\Admin\Gpm::selfupgrade();
     if ($result) {
         $this->admin->json_response = ['status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.GRAV_WAS_SUCCESSFULLY_UPDATED_TO') . ' '];
     } else {
         $this->admin->json_response = ['status' => 'error', 'message' => $this->admin->translate('PLUGIN_ADMIN.GRAV_UPDATE_FAILED') . ' <br>' . Installer::lastErrorMsg()];
     }
     return true;
 }
All Usage Examples Of Grav\Plugin\Admin\Gpm::selfupgrade