koen/opening-hours-library

此包最新版本(0.0.1)没有提供许可信息。

提供在您的网站上实现营业时间的逻辑

0.0.1 2020-12-19 15:05 UTC

This package is auto-updated.

Last update: 2024-09-19 23:05:37 UTC


README

OpeningHours库用于在您的项目中实现营业时间逻辑和验证。

需求

  • phpunit/phpunit:^9

安装

使用Composer

composer require koen/opening-hours-library

用法

初始化营业时间

$openingHours = new OpeningHours();
$openingHours->setOpeningTime($openAt);
$openingHours->setClosingTime($closedAt);

带有休息时间的初始化营业时间

OpeningHoursWithBreaks 类增加了将休息时间包含到营业时间的功能。可以添加零个、一个或多个休息时间。

$pause = new Pause($pauseStart, $pauseEnd);
$openingHours = new OpeningHoursWithBreaks();
$openingHours->setOpeningTime($openAt);
$openingHours->setClosingTime($closedAt);
$openingHours->addPause($pause, $pause, ...);

验证

验证类将验证输入日期的正确性。

  • 开门时间不能在关门时间之后,反之亦然。
  • 休息时间不能重叠。
  • 休息时间不能在开门之前或关门之后。

使用依赖注入向您的类注入。

class Controller {

    private $validator;

    public function __construct(
        ValidateOpeningHoursInterface $validator
    ) {
        $this->validator = $validator;
    }

    public function yourControllerLogic()
    {
        $openingHours = new OpeningHours();
        ...

        $this->validator->validate($openingHours);
    }
}

直接实例化验证类。

$openingHours = new OpeningHoursWithBreaks();

$validator = new ValidateOpeningHours();
$validator->validate($openingHours);

$validator = new PauseValidator();
$validator->validate($openingHours);

贡献

欢迎提交拉取请求。该项目是为学术目的而构建的。对于重大更改,请提供您更改的信息以及更改的原因,以便讨论您的更改。

许可