maximaster / production-calendar
处理生产日历,内置从 basicdata.ru 获取数据
0.2.2
2017-07-14 07:48 UTC
Requires
- php: >=5.4
- ext-curl: @stable
Requires (Dev)
- desarrolla2/cache: ~2.0
- phpunit/phpunit: 4.*
Suggests
- desarrolla2/cache: Для кеширования результатов с помощью RulesProvider/CacheProvider
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');