xref: /template/strap/ComboStrap/Cron.php (revision c3437056399326d621a01da73b649707fbb0ae69)
1*c3437056SNickeau<?php
2*c3437056SNickeau
3*c3437056SNickeau
4*c3437056SNickeaunamespace ComboStrap;
5*c3437056SNickeau
6*c3437056SNickeau
7*c3437056SNickeauuse Cron\CronExpression;
8*c3437056SNickeau
9*c3437056SNickeauclass Cron
10*c3437056SNickeau{
11*c3437056SNickeau
12*c3437056SNickeau
13*c3437056SNickeau    /**
14*c3437056SNickeau     * @throws ExceptionCombo
15*c3437056SNickeau     */
16*c3437056SNickeau    public static function getDate(string $cronExpression): \DateTime
17*c3437056SNickeau    {
18*c3437056SNickeau        try {
19*c3437056SNickeau            $cron = CronExpression::factory($cronExpression);
20*c3437056SNickeau            return $cron->getNextRunDate();
21*c3437056SNickeau        } catch (\InvalidArgumentException $e) {
22*c3437056SNickeau            throw new ExceptionCombo("The cache frequency expression ($cronExpression) is not a valid cron expression. <a href=\"https://crontab.guru/\">Validate it on this website</a>");
23*c3437056SNickeau        }
24*c3437056SNickeau    }
25*c3437056SNickeau}
26