1

我有一个带有 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();”的行 但我什么也没找到。

谢谢!

4

1 回答 1

1

查看AdminImportController.php文件内部。我的猜测是它还包括定义AdminImportControllerCore类的文件,并且它没有使用include_once包含函数的真实性。

这意味着您的主页正在通过include_once调用定义类,然后当它包含AdminImportController该类时,其中的包含将启动并尝试重新定义核心类,并获得您描述的结果。

我建议你看看 PHP 的自动加载器功能。它将为您省去与手动包含此类文件相关的所有麻烦。它还倾向于促进良好的文件和类命名实践。

于 2013-07-04T01:48:43.823 回答