Cron 脚本 Prestashop (php)

Cron script Prestashop (php)

我需要制作一个 cron 脚本 ('cron_script.php') 来更新 XML。实现它的静态函数在我的主模块 class 'xmlmodule.php' 中定义。

我的问题是 cron 脚本没有 运行 模块 class 与 'require' 或 'require_once'。 prestashop 配置值未加载到脚本中,因此始终退出。如果我评论 'if' 语句以检查 '_PS_VERSION_' 我有一个错误输出,因为没有找到 'Module' class.

这是我的主要模块 class ('xmlmodule.php'):

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class XmlModule extends Module {
    //Module functions
}

这是我的 cron 脚本:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

echo "Before require once </br>";
require_once('xmlmodule.php'); //This exits the script
echo "<h2>Prueba CRON updateFeed</h2>"; //Never executed

我在本地使用 curl 和 crontab 执行它,我的 PrestaShop 版本是 1.6 PHP7.0。我知道模块使用 cron 脚本,但我可以找到任何代码来了解如何操作。

有人知道吗?非常感谢。

我想您可以尝试在 xmlmodule.php

中包含这些 prestashop 文件
$site_base_path="./";
require_once($site_base_path . 'config/config.inc.php'); 
require_once($site_base_path . 'init.php');

这样,您的脚本将可以访问所有需要的 prestashop 类、常量等

在 PrestaShop cron 中始终在开头添加:

include(dirname(__FILE__).'/../../config/config.inc.php');

如果cron是我写的模块没问题,或者增加或减少“../”目录。

包括PrestaShop全局函数和变量的功能