无法从PrestaShop 1.7.5.2

时间:2019-06-01 12:08:59

标签: php prestashop prestashop-1.7

开始时:

  1. 服务器:Apache2
  2. 数据库:MySQL 5.7
  3. PrestaShop 1.7.5.2(全新安装)
  4. PHP 7.2

我在其中尝试覆盖类的地方创建了自定义模块:客户(位于文件夹类/Customer.php中的prestashop的根目录中) 因此,我在模块ovveride / classes /中创建了文件夹,并放置了我的代码:

    <?php
use PrestaShop\PrestaShop\Adapter\ServiceLocator;
use PrestaShop\PrestaShop\Adapter\CoreException;


/***
 * Class CustomerCore
 */
class CustomerCore extends ObjectModel
{
    public function customHook()
    {
        $isSuccess = $this->isLogged($withGuest = false);

        if ($isSuccess == true) {
            Hook::exec('actionCustomerLoginAfter', array('customer' => $this));
        }
    }
}

这看起来像文件夹结构: enter image description here

当我安装模块时,evrything看起来不错但是

  1. 文件(Customer.php)没有复制以覆盖/ classes /
  2. 当我尝试启用模块时,我看到错误:无法启用模块adminnotify。无法安装替代:类CustomerOverride5cf26a545fb27不存在

我尝试:

  1. 清除缓存(工作)
  2. 手动删除缓存(正在工作)
  3. 我检查文件名,文件夹结构(看起来不错)

向所有人寻求帮助:)

1 个答案:

答案 0 :(得分:2)

好了,问题解决了:) 在这种情况下,当我尝试使用原始扩展名重新定义类CustomerCore时,将创建ovveride。在ovveride中,我们必须创建新类并扩展到核心类(在本例中为CustomerCore)。因此,在这种情况下,新的Customer类看起来像

<?php
    class Customer extends CustomerCore {
     //your own code
}