1: <?php
2:
3: namespace Cron;
4:
5: /**
6: * CRON field interface
7: */
8: interface FieldInterface
9: {
10: /**
11: * Check if the respective value of a DateTime field satisfies a CRON exp
12: *
13: * @param DateTime $date DateTime object to check
14: * @param string $value CRON expression to test against
15: *
16: * @return bool Returns TRUE if satisfied, FALSE otherwise
17: */
18: public function isSatisfiedBy(\DateTime $date, $value);
19:
20: /**
21: * When a CRON expression is not satisfied, this method is used to increment
22: * or decrement a DateTime object by the unit of the cron field
23: *
24: * @param DateTime $date DateTime object to change
25: * @param bool $invert (optional) Set to TRUE to decrement
26: *
27: * @return FieldInterface
28: */
29: public function increment(\DateTime $date, $invert = false);
30:
31: /**
32: * Validates a CRON expression for a given field
33: *
34: * @param string $value CRON expression value to validate
35: *
36: * @return bool Returns TRUE if valid, FALSE otherwise
37: */
38: public function validate($value);
39: }
40: