Невозможно установить класс переопределения из модуля в PrestaShop 1.7.5.2 - PullRequest
1 голос
/ 01 июня 2019

При запуске:

  1. Сервер: Apache2
  2. БД: MySQL 5.7
  3. PrestaShop 1.7.5.2 (новая установка)
  4. PHP 7.2

Я создаю пользовательский модуль, в котором я пытаюсь переопределить класс: Customer (находится в корневом каталоге prestashop в папке classes / Customer.php), поэтому я создал папку в моем модуле 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

Когда я устанавливаю модуль, все выглядит хорошо, НО

  1. Файл (Customer.php) не был скопирован в файл override / classes /
  2. . При попытке включить модуль я вижу ошибку: Невозможно включить модуль adminnotify.Невозможно установить переопределение: класс CustomerOverride5cf26a545fb27 не существует

Я пытаюсь:

  1. очистить кэш (не работает)
  2. удалить кэш вручную (не работает)
  3. Я проверяю имена файлов, структуру папок (выглядит хорошо)

Спасибо за помощь :)

1 Ответ

2 голосов
/ 01 июня 2019

Хорошо, проблема решена :) В этом случае я создаю ovveride, когда пытаюсь переопределить класс CustomerCore с помощью orginal extends.В ovveride мы должны создать новый класс и расширить его до базового класса (в данном случае CustomerCore).Таким образом, в этом случае новый класс Customer выглядит как

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