Php Prestashop 1.6覆盖控制器

Php Prestashop 1.6覆盖控制器,php,controller,overriding,prestashop,Php,Controller,Overriding,Prestashop,我试图通过覆盖隐藏仪表板上的“帮助”按钮。但是没有使用覆盖。所以我想知道我做错了什么?为什么不使用覆盖 我在:classes/controller/AdminController.php中找到了它。然后我创建了一个新文件:override/classes/controller/AdminController.php 我无法使覆盖生效,因此我尝试通过以下方式检查是否考虑了覆盖: <?php class AdminControllerCoreOverride extends AdminCont

我试图通过覆盖隐藏仪表板上的“帮助”按钮。但是没有使用覆盖。所以我想知道我做错了什么?为什么不使用覆盖

我在:
classes/controller/AdminController.php
中找到了它。然后我创建了一个新文件:
override/classes/controller/AdminController.php

我无法使覆盖生效,因此我尝试通过以下方式检查是否考虑了覆盖:

<?php
class AdminControllerCoreOverride extends AdminControllerCore
{
echo 'askdjfkdjfksl';
}
?>

但什么也没发生。我删除了缓存:index_cache,并且在性能菜单中未关闭覆盖。在
index_cache.php
中,我找到了AdminController,但覆盖是false


PS:使用Prestashop 1.6

如果手动创建覆盖文件,则必须删除文件
缓存/class_index.php
,覆盖文件才能工作

然后,在
override/classes/controller/AdminController.php
中,必须重写如下函数:

<?php
class AdminController extends AdminControllerCore
{
    public function initPageHeaderToolbar()
    {
        Your code
    }
}

如果手动创建覆盖文件,则必须删除文件
缓存/class_index.php
,覆盖文件才能工作

然后,在
override/classes/controller/AdminController.php
中,必须重写如下函数:

<?php
class AdminController extends AdminControllerCore
{
    public function initPageHeaderToolbar()
    {
        Your code
    }
}
我也面临类似的问题(PS7)。在我的例子中,问题是由文件权限引起的。
Prestashop需要对要覆盖的文件具有写入权限。否则将忽略该文件,而不会显示任何警告/错误消息。您可以在没有帮助的情况下疯狂地删除class_index.php文件

此外,出于某种原因,每当我对超越控制器进行任何更改时,我都必须重置模块

顺便说一句,在PS7中,缓存索引位于/app/cache/dev文件夹(和/app/cache/prod文件夹)下。

我遇到了类似的问题(在PS7中)。在我的例子中,问题是由文件权限引起的。 Prestashop需要对要覆盖的文件具有写入权限。否则将忽略该文件,而不会显示任何警告/错误消息。您可以在没有帮助的情况下疯狂地删除class_index.php文件

此外,出于某种原因,每当我对超越控制器进行任何更改时,我都必须重置模块

顺便说一句,在PS7中,缓存索引位于/app/cache/dev文件夹(和/app/cache/prod文件夹)下。

您可以尝试以下方法:

将您的类名从AdminCoreControllerOverride更新为AdminCoreOverrideController

AdminControllerCoreAdminController

<?php
  class AdminCoreOverrideController extends AdminController
  {
     public function init() {
         parent::init();
     }
  }
您可以尝试以下方法:

将您的类名从AdminCoreControllerOverride更新为AdminCoreOverrideController

AdminControllerCoreAdminController

<?php
  class AdminCoreOverrideController extends AdminController
  {
     public function init() {
         parent::init();
     }
  }

这是一种非常糟糕的测试重写的方法,实际上我甚至不确定在类定义中使用echo语句是否有效。您可能应该在
defines.inc.php
中打开错误报告以查看错误。至于覆盖,你可以使用tot-override
\uuu-construct
来检查它是否工作。这是一种非常糟糕的测试覆盖的方法,实际上我甚至不确定在类定义中使用echo语句是否有效。您可能应该在
defines.inc.php
中打开错误报告以查看错误。至于覆盖,您可以使用tot override
\u construct
,查看其是否工作。