Paket ini menawarkan lapisan abstraksi untuk membuat file iCalendars. Dengan menggunakan paket PHP ini, Anda dapat membuat file *.ics
tanpa mengetahui format bawahannya. Outputnya sendiri akan mengikuti RFC 5545 sebaik mungkin.
Anda dapat menginstal paket ini dengan menggunakan Composer, dengan menjalankan perintah berikut:
composer require eluceo/ical
Versi awal dirilis pada tahun 2012. Versi 2 dari paket ini merupakan penulisan ulang paket yang lengkap dan tidak kompatibel dengan versi yang lebih lama. Silakan lihat panduan upgrade jika Anda ingin bermigrasi dari versi 0.*
ke 2.*
. Jika Anda baru mulai menggunakan paket ini, Anda harus menginstal versi 2.
Versi | Versi 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 |
Kunjungi ical.poerschke.nrw untuk dokumentasi lengkap.
Kelas-kelas dalam paket ini dikelompokkan menjadi dua namespace:
Domain
berisi informasi tentang peristiwa tersebut.Presentation
berisi transformasi dari Domain
menjadi file *.ics
.Untuk membuat kalender, langkah pertama adalah membuat objek domain yang sesuai. Kemudian objek-objek ini dapat diubah menjadi representasi iCalendar PHP, yang dapat diubah menjadi string.
Dalam contoh yang sangat mendasar ini, hal itu menjadikan peristiwa kosong. Anda akan mempelajari cara membuat objek domain acara, cara menambahkannya ke kalender, dan cara mengubahnya menjadi komponen 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 ;
Contoh berikut akan membuat acara satu hari dengan ringkasan dan deskripsi. Contoh lebih lanjut dapat ditemukan di folder contoh/.
<?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 ;
Paket ini dirilis di bawah lisensi MIT .