2013-07-04 2 views
1

У меня есть сценарий с cURL, чтобы инициировать другой скрипт, который импортирует продукты и категории в prestashop.PHP Неустранимая ошибка: не удается переопределить класс AdminImportControllerCore в

Это скрипт, который начинают с Скручивание.

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 имя_директории (FILE) '/ ../контроллеры/администратор/AdminImportController .php '; ":

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

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

Спасибо!

+0

Один из других включенных файлов может включать в себя 'AdminImportController.php' с другим именем пути, возможно, абсолютным путем вместо использования' ..'. Найдите это во всех других включенных файлах. – Barmar

+0

@Barmar Это не должно быть проблемой. PHP знает, что это тот же файл, даже если он включает в себя разные типы путей, чтобы указать на него. – Atli

ответ

1

Просмотрите файл AdminImportController.php. Я предполагаю, что это также включает файл, определяющий класс AdminImportControllerCore, и что он не использует достоверность функций включения.

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

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

Смежные вопросы