【问题标题】:Cron script Prestashop (php)Cron 脚本 Prestashop (php)
【发布时间】:2017-08-25 11:13:45
【问题描述】:

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

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

这是我的模块主类('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 脚本,但我可以找到任何代码来看看如何去做。

有人知道吗?非常感谢。

【问题讨论】:

    标签: php cron prestashop crontab prestashop-1.6


    【解决方案1】:

    我想你可以尝试在你的 xmlmodule.php 中包含这些 prestashop 文件

    $site_base_path="./";
    require_once($site_base_path . 'config/config.inc.php'); 
    require_once($site_base_path . 'init.php');
    

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

    【讨论】:

    • 听起来不错!我很高兴能帮上忙!
    【解决方案2】:

    在 PrestaShop cron 中总是在开头添加:

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

    如果cron是module就我写的没问题,或者增减“../”目录。

    包含 PrestaShop 全局函数和变量的函数

    【讨论】:

    • 是的,我知道它知道哈哈。这是多余的,因为在 prestashop 中执行的类不需要配置包含。一直在学习!非常感谢!
    猜你喜欢
    • 2013-09-08
    • 2014-06-21
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2018-02-13
    • 2018-07-05
    相关资源
    最近更新 更多