使用类的面向对象PHP问题,涉及PrestaShop模块
我想要实现的目标 我正在修改一个PrestaShop模块,该模块当前使用用户提交的表单生成文件,作为一个独立的CRON作业。该模块在后台工作得非常好,只需要用户点击一个按钮;应该由CRON作业处理的重复任务(当然是操作,而不是单击按钮) 我正在尝试的使用类的面向对象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
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等以外的唯一文件。