iCal
2.14.0
該套件提供了用於建立 iCalendars 檔案的抽象層。透過使用此 PHP 套件,您可以建立*.ics
文件,而無需了解底層格式。輸出本身將盡可能遵循 RFC 5545。
您可以使用 Composer 安裝此軟體包,執行以下命令:
composer require eluceo/ical
初始版本於 2012 年發布。如果您想從版本0.*
遷移到2.*
請參閱升級指南。如果您剛開始使用此軟體包,則應該安裝版本 2。
版本 | PHP版本 |
---|---|
>= 2.15 | 8.3 - 8.4 |
< 2.14 | 7.4 - 8.3 |
0.16.* | 7.0 - 8.2 |
0.11.* | 5.3.0 - 7.4 |
請造訪 ical.poerschke.nrw 以取得完整文件。
此套件中的類別分為兩個命名空間:
Domain
包含有關事件的資訊。Presentation
包含從Domain
到*.ics
檔案的轉換。要建立日曆,第一步是建立對應的網域物件。然後這些物件可以轉換為 iCalendar PHP 表示形式,可以轉換為字串。
在這個非常基本的範例中,它呈現一個空事件。您將學習如何建立事件域物件、如何將其新增至日曆以及如何將其轉換為 iCalendar 元件。
$ event = new Eluceo iCal Domain Entity Event ();
$ calendar = new Eluceo iCal Domain Entity Calendar ([ $ event ]);
$ iCalendarComponent = ( new Eluceo iCal Presentation Factory CalendarFactory ())-> createCalendar ( $ calendar );
file_put_contents ( ' calendar.ics ' , ( string ) $ iCalendarComponent );
header ( ' Content-Type: text/calendar; charset=utf-8 ' );
header ( ' Content-Disposition: attachment; filename="cal.ics" ' );
echo $ iCalendarComponent ;
以下範例將建立一個包含摘要和描述的單日事件。更多範例可以在範例/資料夾中找到。
<?php
require_once __DIR__ . ' /../vendor/autoload.php ' ;
// 1. Create Event domain entity
$ event = ( new Eluceo iCal Domain Entity Event ())
-> setSummary ( ' Christmas Eve ' )
-> setDescription ( ' Lorem Ipsum Dolor... ' )
-> setOccurrence (
new Eluceo iCal Domain ValueObject SingleDay (
new Eluceo iCal Domain ValueObject Date (
DateTimeImmutable:: createFromFormat ( ' Y-m-d ' , ' 2030-12-24 ' )
)
)
);
// 2. Create Calendar domain entity
$ calendar = new Eluceo iCal Domain Entity Calendar ([ $ event ]);
// 3. Transform domain entity into an iCalendar component
$ componentFactory = new Eluceo iCal Presentation Factory CalendarFactory ();
$ calendarComponent = $ componentFactory -> createCalendar ( $ calendar );
// 4. Set headers
header ( ' Content-Type: text/calendar; charset=utf-8 ' );
header ( ' Content-Disposition: attachment; filename="cal.ics" ' );
// 5. Output
echo $ calendarComponent ;
該軟體包是根據MIT 許可證發布的。