0

我正在尝试使用这个项目。我下载了文件。得到项目的文件夹,解压缩,然后将“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

我在这里做错了什么?!

4

2 回答 2

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但请注意查看文件的顺序,因为其中一些扩展了在其他文件中定义的类,因此那些具有基类的其他文件应该首先要求。

于 2013-04-29T15:52:17.853 回答
0

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

require 'Cron/CronExpression.php';

在代码的顶部。目前,您发布的代码无法知道在哪里可以找到 CronExpression 类以实例化它

于 2013-04-29T15:51:11.877 回答