brzuchal / recurrence-rules
recurrence-rules 解析器和迭代器(符合 RFC 5545 和 RFC 2445)
Requires
- php: ^8.1
- rlanvin/php-rrule: ^2.3
Requires (Dev)
- doctrine/coding-standard: ^9.0
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.21
This package is auto-updated.
Last update: 2024-09-21 13:57:47 UTC
README
致俄罗斯 🇷🇺 人的一封信
如果您目前居住在俄罗斯,请阅读 此信息。
目的
PHP 的重复处理器
此库可以解析按照 RFC 5545 和 RFC 2445 定义的重复字符串并迭代实例。此外,它还可以方便地构建有效的重复字符串。
Rule 类以不可变的方式实现,请使用 RuleBuilder 以方便地构建 Rule 对象。
注意!目前 RuleIterator 依赖于 rlanvin/php-rrule 来封装库,并返回
DateTimeImmutable
对象,这是一个临时的方法,因为限制和扩展的逻辑比较复杂,将来将用一系列过滤器/扩展器以更面向对象的方式替换,这种方式高度受到 Java 实现 dmfs/lib-recur 的启发。
注意!本库中类的接口尚未最终确定,可能发生变化。
安装
composer require brzuchal/recurrence-rules
用法
use Brzuchal\RecurrenceRule\RuleFactory; use Brzuchal\RecurrenceRule\RuleIterator; $rule = RuleFactory::fromString('FREQ=MONTHLY;COUNT=4;INTERVAL=2;BYDAY=MO,TU;WKST=TU'); echo $rule->toString(); // FREQ=MONTHLY;COUNT=1;INTERVAL=2;BYDAY=MO,TU;WKST=TU foreach (new RuleIterator(new DateTimeImmutable('2006-08-01'), $rule) as $occurrence) { echo $occurrence->format('Y-m-d'),", "; } // 2006-08-01, 2006-08-07, 2006-08-08, 2006-08-14,
许可证
MIT 许可证
版权所有 (c) 2022 Michał Marcin Brzuchalski
以下是对任何获得本软件及其相关文档副本(以下简称“软件”)的人的授权,免费使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人这样做,但前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论这种责任是基于合同、侵权或其他原因,无论这种责任是否与软件或软件的使用或其他方式有关。