Неустранимая ошибка PHP: невозможно повторно объявить класс AdminImportControllerCore в

У меня есть скрипт с cURL для запуска другого скрипта, который импортирует товары и категории в prestashop.

Это скрипт, который начинается с cURL:

define('_PS_ADMIN_DIR_', getcwd());
include_once(_PS_ADMIN_DIR_.'/../config/config.inc.php');
include_once(_PS_ADMIN_DIR_.'/../config/defines.inc.php');
include_once(_PS_ADMIN_DIR_.'/functions.php');
include_once dirname(__FILE__).'/../controllers/admin/AdminImportController.php';

if (!isset($_GET['entity'])) die(); 

$import = New AdminImportController(); 
switch ($_GET['entity']) { 
case 0: 
    loadCategoriesPost(); 
    $import->categoryImport(); 
    break;

  case 1:
    loadProductsPost();
    $import->productImport();
    break;

}

Моя проблема в том, что секундный скрипт генерирует ошибку из "include_once dirname (FILE). '/.. / controllers / admin / AdminImportController.php';":

Неустранимая ошибка PHP: невозможно повторно объявить класс AdminImportControllerCore в...

Я попытался использовать include_once, DIR, также я искал во включаемых файлах строку с "new AdminImportController();" но я ничего не нашел

Спасибо!

1 ответ

Решение

Заглянуть внутрь AdminImportController.php файл. Я предполагаю, что он также включает в себя файл, который определяет AdminImportControllerCore класс, и что он не использует include_once Истина включает функции.

Это будет означать, что ваша главная страница определяет класс через include_once вызов, а затем, когда он включает в себя AdminImportController класс, включается туда и пытается переопределить основной класс, с результатами, которые вы описали.

Я предлагаю вам взглянуть на функцию автозагрузчика PHP. Это избавит вас от головной боли, связанной с вручную, включая такие файлы. Это также способствует продвижению хороших методов именования файлов и классов.

Другие вопросы по тегам