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

时间:2015-01-19 11:09:59

标签: 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]*'),
                ),
            ),
    .........

1 个答案:

答案 0 :(得分:1)

这是PrestaShop中众所周知的错误/情况。

PrestaShop尝试手动将类方法复制到\override\classes\*个文件,有时行未匹配或换行错误,最终结果是错误复制的行导致语法错误。安装和卸载都会发生这种情况。基本上,您必须手动修复/删除覆盖类文件中的语法错误。

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

编辑:

如果您已卸载该模块,则应使用以下命令替换此文件的内容:

class Dispatcher extends DispatcherCore
{

}

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