我想要完成的事
我正在改变一个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.
}
我的行为
第一个回音有效,但是一旦我调用$exporter = new order_exporter;
,我就会收到此错误。 PHP Fatal error: Class 'order_exporter' not found in C:\wamp\www\addressstamps\modules\order_exporter\order_exporter.php
。这不在屏幕上,只在我的错误日志中。正如我过去所理解的,这是使用OOP的正确方法。我不确定我是否误解了有关Prestashop,OOP或Scope的内容,但经过大量研究和调整后,我在这一点上没有取得任何进展。
答案 0 :(得分:1)
这不是OOP问题,而是PrestaShop设计决定。
尝试:
$exporter = Module::getInstanceByName('order_exporter');
而不是:
$exporter = new order_exporter;
这里'order_exporter'是你的模块名称(即类中的name属性)。