php - GRAV git-sync 插件更新崩溃网站,有人遇到/解决了吗?
问题描述
我一直将 GRAV 用作小型实验站点的 CMS。我最近更新了 git-sync 插件,突然卡住了一个只产生错误的网站,无法进入管理 gui(对该网站的所有 Web 访问都崩溃并出现相同的错误),以降级 git-sync 模块,或者就此而言,如果有修复,升级 git-sync 插件。
我是一名几十年来对 Web 开发并没有真正考虑过的开发人员(我的,它是如何改变的),所以我必须提前承认一些事情。我对php一无所知,如果我不需要的话,我真的不在乎。
我收到的消息(如下)表明这是一个 php 错误。如果这是一个简单的语法修复,请提醒我。
如果您对使用 git-sync 插件升级或降级、恢复 git-sync 或任何其他提示的“cli”方式有任何建议,请提出建议。我将深入研究更多文档,看看我是否最终回答了我自己的问题。
/[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;
解决方案
您的新版 GRAV 正在使用 php7.0 功能,例如??
运算符,即Null coalescing
. 尝试升级您的 php 版本以支持新功能,或降级 GRAV。
制作兼容版本也是一种选择,但这可能是耗时的想法。但是,如果您的问题仅在此特定文件中,您可以替换:
// $message = $this->getConfig('git', null)['message'] ?? $message;
$message = isset($this->getConfig('git', null)['message']) ? $this->getConfig('git', null)['message'] : $message;
// $pageTitle = $_POST['data']['header']['title']??'NO TITLE FOUND';
$pageTitle = isset($_POST['data']['header']['title']) ? $_POST['data']['header']['title'] : 'NO TITLE FOUND';
// $pageRoute = $_POST['data']['route']??'NO ROUTE FOUND';
$pageRoute = isset($_POST['data']['route']) ? $_POST['data']['route'] : 'NO ROUTE FOUND';
推荐阅读
- jquery - 错误:在 require.resolve('jquery') webpack 上找不到模块 'jquery'
- php - 从 php 中的 stdCass 对象访问数组数据
- c# - 通过 Dialogflow 和 C# Azure Function 存储 Google Assistant 的用户设置
- node.js - Firebase 云功能节点 8 - 远程部署时出现“错误:找不到环境配置”
- python - 如何从内存中处理块中的二进制字符串?
- google-contacts-api - 为什么 google content api v2.1 中的 dryRun 模式消失了
- php - Discounting the cheapest item for a specific category in WooCommerce
- php - 如何在 PHP 中建立两个表之间的关系
- c++ - 当我输入等于 totalCost 的双精度时,如果语句不会运行
- mysql - 汇总不同组的每个 ID 的结果