Dieses Paket bietet eine Abstraktionsschicht zum Erstellen von iCalendars-Dateien. Mit diesem PHP-Paket können Sie *.ics
Dateien erstellen, ohne das zugrunde liegende Format zu kennen. Die Ausgabe selbst folgt so weit wie möglich RFC 5545.
Sie können dieses Paket mithilfe von Composer installieren, indem Sie den folgenden Befehl ausführen:
composer require eluceo/ical
Die erste Version wurde bereits 2012 veröffentlicht. Die Version 2 dieses Pakets ist eine komplette Neufassung des Pakets und ist nicht mit älteren Versionen kompatibel. Bitte lesen Sie die Upgrade-Anleitung, wenn Sie von Version 0.*
auf 2.*
migrieren möchten. Wenn Sie dieses Paket gerade erst verwenden, sollten Sie Version 2 installieren.
Version | PHP-Version |
---|---|
>= 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 |
Eine vollständige Dokumentation finden Sie unter ical.poerschke.nrw.
Die Klassen in diesem Paket sind in zwei Namespaces gruppiert:
Domain
enthält die Informationen zu den Ereignissen.Presentation
enthält die Umwandlung von Domain
in eine *.ics
Datei.Um einen Kalender zu erstellen, müssen zunächst die entsprechenden Domänenobjekte erstellt werden. Anschließend können diese Objekte in eine iCalendar-PHP-Darstellung umgewandelt werden, die in einen String umgewandelt werden kann.
In diesem sehr einfachen Beispiel wird dadurch ein leeres Ereignis gerendert. Sie erfahren, wie Sie ein Ereignisdomänenobjekt erstellen, es einem Kalender hinzufügen und es in eine iCalendar-Komponente umwandeln.
$ 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 ;
Im folgenden Beispiel wird ein eintägiges Ereignis mit einer Zusammenfassung und einer Beschreibung erstellt. Weitere Beispiele finden Sie im Ordner „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 ;
Dieses Paket wird unter der MIT-Lizenz veröffentlicht.