Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用类的面向对象PHP问题,涉及PrestaShop模块_Php_Oop_Prestashop_Prestashop 1.6 - Fatal编程技术网

使用类的面向对象PHP问题,涉及PrestaShop模块

使用类的面向对象PHP问题,涉及PrestaShop模块,php,oop,prestashop,prestashop-1.6,Php,Oop,Prestashop,Prestashop 1.6,我想要实现的目标 我正在修改一个PrestaShop模块,该模块当前使用用户提交的表单生成文件,作为一个独立的CRON作业。该模块在后台工作得非常好,只需要用户点击一个按钮;应该由CRON作业处理的重复任务(当然是操作,而不是单击按钮) 我正在尝试的 if (!defined('_PS_VERSION_')) { // Initialize prestashop require_once '../../config/config.inc.php'; require_onc

我想要实现的目标

我正在修改一个PrestaShop模块,该模块当前使用用户提交的表单生成文件,作为一个独立的CRON作业。该模块在后台工作得非常好,只需要用户点击一个按钮;应该由CRON作业处理的重复任务(当然是操作,而不是单击按钮)

我正在尝试的

if (!defined('_PS_VERSION_')) {
    // Initialize prestashop
    require_once '../../config/config.inc.php';
    require_once '../../init.php';

    define('_PS_MODE_DEV_', true);
    echo 'This gets echoed';
    $exporter = new order_exporter;
    echo 'This does not get echoed';
}

class order_exporter extends Module
{
    // Rest of code here. Works when used with back office.
}
我现在的行为

if (!defined('_PS_VERSION_')) {
    // Initialize prestashop
    require_once '../../config/config.inc.php';
    require_once '../../init.php';

    define('_PS_MODE_DEV_', true);
    echo 'This gets echoed';
    $exporter = new order_exporter;
    echo 'This does not get echoed';
}

class order_exporter extends Module
{
    // Rest of code here. Works when used with back office.
}

第一个echo可以工作,但一旦我调用
$exporter=neworder\u exporter,我得到这个错误<代码>PHP致命错误:在C:\wamp\www\addressstamps\modules\order\u exporter\order\u exporter.PHP中找不到类“order\u exporter”。这不在屏幕上,只在我的错误日志中。正如我过去所理解的,这是使用OOP的正确方法。我不确定我是否误解了Prestashop、OOP或范围,但经过大量研究和调整,我没有取得任何进展。

这不是OOP问题,而是Prestashop设计决策

尝试:

$exporter = Module::getInstanceByName('order_exporter');
而不是:

$exporter = new order_exporter;

这里的“order\u exporter”是您的模块名称(即类中的name属性)。

源文件位于何处?它是模块中除config.xml logo.gif等以外的唯一文件。