语法错误,意外的“'supplier_rule'”(T_CONSTANT_ENCAPSED_STRING),期望函数(T_FUNCTION)prestashop

syntax error, unexpected ''supplier_rule' ' (T_CONSTANT_ENCAPSED_STRING), expecting function (T_FUNCTION) prestashop

我刚刚在本地 prestashop 1.5 开发服务器上卸载了一个模块,并收到以下错误,

 Parse error: syntax error, unexpected ''supplier_rule'    
' (T_CONSTANT_ENCAPSED_STRING), expecting function (T_FUNCTION) in C:\xampp\htdocs\prestashop\override\classes\Dispatcher.php on line 26 

现在我什至无法访问后端?我刚刚尝试卸载一个模块,结果发生了什么?有什么解决办法吗?


更新:

这是包含第 26 行的代码;

    class Dispatcher extends DispatcherCore
    {
        /**
         * @var array List of default routes
         */
 line 26        'supplier_rule' => array(              
                'controller' => 'supplier',
                'rule' =>       'supplier/{rewrite}/',
                'keywords' => array(
                    'id' =>             array('regexp' => '[0-9]+'),
                    'rewrite' =>        array('regexp' => '[_a-zA-Z0-9-\pL]*', 'param' => 'supplier_rewrite'),
                    'meta_keywords' =>  array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                    'meta_title' =>     array('regexp' => '[_a-zA-Z0-9-\pL]*'),
                ),
            ),
    .........

这是 PrestaShop 中众所周知的 bug/situation。

PrestaShop 尝试手动复制 class 方法到 \override\classes\* 文件,有时行不匹配或换行错误,最终结果是错误复制行导致语法错误.安装和卸载时都会发生这种情况。基本上,然后您必须从覆盖的 class 文件中手动 fix/remove 语法错误。

您需要登录 FTP 服务器并编辑此文件 - 修复语法错误。

编辑:

如果您卸载了该模块,则应将此文件的内容替换为:

class Dispatcher extends DispatcherCore
{

}

请检查是否有public function ...因为如果有,则意味着其他模块可能已将其功能插入此处。如果没有,那么用我上面的代码重置文件是安全的。