无法使用php项目(cron表达式)

时间:2013-04-29 15:46:23

标签: php

我正在尝试使用this project。我下载了这些文件。得到项目的文件夹,解压缩它,然后将“src”目录下的目录“Cron”复制到我创建列出的php文件的另一个位置来测试项目。 “Cron”文件夹包含以下文件:

AbstractField.php
CronExpression.php //Main class
DayOfMonthField.php
DayOfWeekField.php
FieldFactory.php
FieldInterface.php
HoursField.php
MinutesField.php
MonthField.php
YearField.php

我从项目的主页面复制了示例php文件来测试项目,这里是文件(即cron.php):

<?php
//require_once '/vendor/autoload.php'; //This line isn't valid because the mentioned path doesn't exist anymore. So I commented it but I can't find how to replace it.
// Works with predefined scheduling definitions
$cron = Cron\CronExpression::factory('@daily');
$cron->isDue();
echo $cron->getNextRunDate()->format('Y-m-d H:i:s');
echo $cron->getPreviousRunDate()->format('Y-m-d H:i:s');

// Works with complex expressions
$cron = Cron\CronExpression::factory('3-59/15 2,6-12 */15 1 2-5');
echo $cron->getNextRunDate()->format('Y-m-d H:i:s');

// Calculate a run date two iterations into the future
$cron = Cron\CronExpression::factory('@daily');
echo $cron->getNextRunDate(null, 2)->format('Y-m-d H:i:s');

// Calculate a run date relative to a specific time
$cron = Cron\CronExpression::factory('@monthly');
echo $cron->getNextRunDate('2010-01-12 00:00:00')->format('Y-m-d H:i:s');
?>

所以我的文件“cron.php”与包含前面列出的项目文件的目录“Cron”存在于同一文件夹中。当我执行我的php文件php cron.php时,我收到以下错误:

[29-Apr-2013 15:17:23 UTC] PHP Fatal error:  Class 'Cron\CronExpression' not found in E:\PHP\Libraries\Cron\cron.php on line 3

我在这里做错了什么?!

2 个答案:

答案 0 :(得分:1)

这是您注释为无效的行:

//require_once '/vendor/autoload.php'; //This line isn't valid because the mentioned path doesn't exist anymore. So I commented it but I can't find how to replace it.

您需要使用Composer安装此软件包,然后它会自动为您生成/vendor/autoload.php脚本。

或者,您可以require_once在您自己的代码中src目录中的每个文件,但要注意查看文件应该被要求的顺序,因为其中一些文件扩展了类在其他文件中定义,因此首先需要具有基类的其他文件。

答案 1 :(得分:0)

如果您不使用自动加载器,则需要

require 'Cron/CronExpression.php';

位于代码顶部。目前,你发布的代码无法知道在哪里找到CronExpression类来实例化它