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