我正在尝试使用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
我在这里做错了什么?!
答案 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类来实例化它