relaxsd / php-icalendar
PHP的流畅iCalendar创建器
v0.8.0
2020-05-11 20:50 UTC
Requires (Dev)
- phpunit/phpunit: ^6.4
This package is auto-updated.
Last update: 2024-09-12 06:29:30 UTC
README
PHP的流畅iCalendar创建器
关于RFC,请参阅 https://www.ietf.org/rfc/rfc2445.txt
当前状态
- RFC覆盖率:80%(支持所有组件,除
VTIMEZONE外) - 流畅接口:70%(正在改进)
- 测试案例:10%(仅测试了RFC中的某些示例,见下文。)
RFC中的示例
事件
以下是一个使用“VEVENT”日历组件表示的会议示例,此会议对于忙碌时间搜索也是不可见的
BEGIN:VEVENT
UID:19970901T130000Z-123401@host.com
DTSTAMP:19970901T1300Z
DTSTART:19970903T163000Z
DTEND:19970903T190000Z
SUMMARY:Annual Employee Review
CLASS:PRIVATE
CATEGORIES:BUSINESS,HUMAN RESOURCES
END:VEVENT
在PHP中创建此事件
$event = new Event('19970901T130000Z-123401@host.com') ->setDateTimeStamp('1997-09-01 13:00 UTC') ->setDateTimeStart('1997-09-03 16:30 UTC') ->setDateTimeEnd('1997-09-03 19:00 UTC') ->setSummary('Annual Employee Review') ->setClassification(Classification::CLASSIFICATION_PRIVATE) ->setCategories(['BUSINESS', 'HUMAN RESOURCES']);
音频闹钟
以下是一个“VALARM”日历组件的示例,它指定了一个在特定时间响起并重复4次,每次间隔15分钟的音频闹钟
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4
DURATION:PT15M
ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
END:VALARM
在PHP中创建此事件
$audioAlarm = new AudioAlarm() ->setTrigger('1997-03-17 13:30 UTC') ->setRepeatCount(4) ->setAttachment(UriAttachment::forAudioUrl('ftp://host.com/pub/sounds/bell-01.aud')) ->setDuration(Duration::forMinutes(15));
音频闹钟
以下是一个“VALARM”日历组件的示例,它指定了一个在特定时间响起并重复4次,每次间隔15分钟的音频闹钟
BEGIN:VALARM
TRIGGER;VALUE=DATE-TIME:19970317T133000Z
REPEAT:4
DURATION:PT15M
ACTION:AUDIO
ATTACH;FMTTYPE=audio/basic:ftp://host.com/pub/sounds/bell-01.aud
END:VALARM
在PHP中创建此事件
$audioAlarm = new AudioAlarm() ->setTrigger('1997-03-17 13:30 UTC') ->setRepeatCount(4) ->setAttachment(UriAttachment::forAudioUrl('ftp://host.com/pub/sounds/bell-01.aud')) ->setDuration(Duration::forMinutes(15));
待办事项
以下是一个“VTODO”日历组件的示例
BEGIN:VTODO
UID:19970901T130000Z-123404@host.com
DTSTAMP:19970901T1300Z
DTSTART:19970415T133000Z
DUE:19970416T045959Z
SUMMARY:1996 Income Tax Preparation
CLASS:CONFIDENTIAL
CATEGORIES:FAMILY,FINANCE
PRIORITY:1
STATUS:NEEDS-ACTION
END:VTODO
在PHP中创建此事件
$todo = new Todo() ->setUniqueIdentifier('19970901T130000Z-123404@host.com') ->setDateTimeStamp('1997-09-01 13:00 UTC') ->setDateTimeStart('1997-04-15 13:30 UTC') ->setDateTimeDue('1997-04-16 04:59:59 UTC') ->setSummary('1996 Income Tax Preparation') ->setClassification(Classification::CLASSIFICATION_CONFIDENTIAL) ->setCategories(['FAMILY', 'FINANCE']) ->setPriority(1) ->setStatus(Status::STATUS_NEEDS_ACTION);