maximaster/production-calendar

处理生产日历,内置从 basicdata.ru 获取数据

0.2.2 2017-07-14 07:48 UTC

This package is auto-updated.

Last update: 2024-09-12 23:15:55 UTC


README

提供检查某一天是周末|节假日|工作日的能力。数据由 basicdata.ru 提供,但库允许连接任何数据源。

安装

composer require maximaster/production-calendar

使用示例

有关可用函数的完整列表,请参阅 Calendar 类公开方法的 phpDoc。

isFree($day)

检查某一天是否为“自由”的,即节假日或普通周末

use Maximaster\ProductionCalendar\Calendar;
use Maximaster\ProductionCalendar\RulesProvider\BasicdataProvider;

$calendar = Calendar::fromProvider(new BasicdataProvider);
if ($calendar->isFreeDay('01.01.2017')) {

isDay($day, $types)

检查某一天是否属于特定类型(或多个类型之一,如果传入数组)。有关可用类型,请参阅 Rules 类的常量

use Maximaster\ProductionCalendar\Rules;
if ($calendar->isDay('01.01.2017', [Rules::HOLIDAY, Rules::PRE_HOLIDAY])) {

getDayType($day)

返回天数类型

$calendar->getDayType('01.01.2017'); // Rules::REGULAR_REST

getMonthWorkDaysCount($year, $month)

getMonthWorkDaysCount($dayOfMonth)

返回指定月份的工作日数量

$calendar->getMonthWorkDaysCount(2017, 6); // 21

缓存

允许使用 CacheProvider 缓存任何来源的结果,包括内置的。示例

Calendar::fromProvider(new CacheProvider(new BasicdataProvider));

使用需要连接包 desarrolla2/cache

在 Symfony (2.8) 中作为服务使用

app/config/services.yml

  app.calendar.basicdata_provider:
    public: false
    class: Maximaster\ProductionCalendar\RulesProvider\BasicdataProvider

  app.calendar.cached_basicdata_provider:
    public: false
    class: Maximaster\ProductionCalendar\RulesProvider\CacheProvider
    arguments: ["@app.calendar.basicdata_provider"]

  app.calendar:
    class: Maximaster\ProductionCalendar\Calendar
    factory: ['Maximaster\ProductionCalendar\Calendar', fromProvider]
    arguments: ["@app.calendar.cached_basicdata_provider"]

任何访问容器的代码

$calendar = $this->getContainer()->get('app.calendar');