首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GRAV git-sync插件更新崩溃的网站,有人遇到/解决了吗?

GRAV git-sync插件更新崩溃的网站,有人遇到/解决了吗?
EN

Stack Overflow用户
提问于 2019-02-23 22:14:51
回答 1查看 79关注 0票数 0

我一直在使用GRAV作为一个小型实验站点的CMS。我最近更新了git-sync插件,突然被一个只产生错误的网站卡住了,没有办法进入管理界面(所有网站访问都会出现同样的错误),无法降级git-sync模块,或者在有修复的情况下升级git-sync插件。

我是一名开发人员,几十年来没有真正考虑过web开发(天哪,它是如何改变的),所以我不得不承认一些事情。我对php一无所知,如果没有必要,我真的不在乎。

我得到的消息(下面)表明这是一个php错误。如果这是一个简单的语法修复,请给我一个提醒。

如果您对使用git-sync插件升级或降级的"cli“方式有任何建议,请恢复git-sync或任何其他提示,建议您离开。我将深入研究更多的文档,看看我是否能回答我自己的问题。

代码语言:javascript
复制
/[pathToUserHome]/grav/user/plugins/git-sync/classes/GitSync.php

        */

        $paths = ['.'];

        if (version_compare($version, '2.0', '<')) {
            $add .= ' --all';
        }

        return $this->execute($add . ' ' . implode(' ', $paths));
    }

    public function commit($message = '(Grav GitSync) Automatic Commit')
    {
        $authorType = $this->getGitConfig('author', 'gituser');
        if (defined('GRAV_CLI') && in_array($authorType, ['gravuser', 'gravfull'])) {
            $authorType = 'gituser';
        }

        // get message from config, it any, or stick to the default one
        $message = $this->getConfig('git', null)['message'] ?? $message;

        // get Page Title and Route from Post
        $pageTitle = $_POST['data']['header']['title']??'NO TITLE FOUND';
        $pageRoute = $_POST['data']['route']??'NO ROUTE FOUND';

        ...

 Arguments
    1) "syntax error, unexpected '?'"

 Whoops\Exception\ErrorException…
     /user/plugins/git-sync/classes/GitSync.php : 223

     $message = $this->getConfig('git', null)['message'] ?? $message;
EN

回答 1

Stack Overflow用户

发布于 2019-02-23 22:22:31

你的新版本的GRAV正在使用php7.0的特性,比如?? operator,它就是Null coalescing。尝试升级您的php版本以支持新功能,或降级GRAV。

制作一个兼容的版本也是一种选择,但这可能是一个耗时的想法。但是,如果您的问题仅存在于此特定文件中,则可以替换:

代码语言:javascript
复制
// $message = $this->getConfig('git', null)['message'] ?? $message;
$message = isset($this->getConfig('git', null)['message']) ? $this->getConfig('git', null)['message'] : $message;
代码语言:javascript
复制
// $pageTitle = $_POST['data']['header']['title']??'NO TITLE FOUND';
$pageTitle = isset($_POST['data']['header']['title']) ? $_POST['data']['header']['title'] : 'NO TITLE FOUND';
代码语言:javascript
复制
// $pageRoute = $_POST['data']['route']??'NO ROUTE FOUND';
$pageRoute = isset($_POST['data']['route']) ? $_POST['data']['route'] : 'NO ROUTE FOUND';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54842508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档