Неустранимая ошибка 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. Это избавит вас от головной боли, связанной с вручную, включая такие файлы. Это также способствует продвижению хороших методов именования файлов и классов.