iCal
2.14.0
このパッケージは、iCalendars ファイルを作成するための抽象化レイヤーを提供します。この PHP パッケージを使用すると、基礎となる形式の知識がなくても*.ics
ファイルを作成できます。出力自体は可能な限り RFC 5545 に従います。
このパッケージは、Composer を使用して次のコマンドを実行してインストールできます。
composer require eluceo/ical
最初のバージョンは 2012 年にリリースされました。このパッケージのバージョン 2 はパッケージを完全に書き直したものであり、古いバージョンとは互換性がありません。バージョン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 にアクセスしてください。
このパッケージ内のクラスは、次の 2 つの名前空間にグループ化されています。
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 ;
次の例では、概要と説明を含む 1 日分のイベントを作成します。他の例は、examples/ フォルダーにあります。
<?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 ライセンスに基づいてリリースされています。