แพ็คเกจนี้นำเสนอเลเยอร์นามธรรมสำหรับการสร้างไฟล์ iCalendar ด้วยการใช้แพ็คเกจ PHP นี้ คุณสามารถสร้างไฟล์ *.ics
ได้โดยไม่ต้องมีความรู้เกี่ยวกับรูปแบบอันเดอร์ลิ่ง เอาต์พุตจะเป็นไปตาม RFC 5545 ให้ดีที่สุดเท่าที่จะเป็นไปได้
คุณสามารถติดตั้งแพ็คเกจนี้ได้โดยใช้ Composer โดยรันคำสั่งต่อไปนี้:
composer require eluceo/ical
เวอร์ชันเริ่มต้นเปิดตัวในปี 2012 เวอร์ชัน 2 ของแพ็คเกจนี้เป็นการเขียนแพ็คเกจใหม่ทั้งหมดและเข้ากันไม่ได้กับเวอร์ชันเก่า โปรดดูคู่มือการอัปเกรดหากคุณต้องการย้ายจากเวอร์ชัน 0.*
เป็น 2.*
หากคุณเพิ่งเริ่มใช้แพ็คเกจนี้ คุณควรติดตั้งเวอร์ชัน 2
เวอร์ชัน | เวอร์ชันพีเอชพี |
---|---|
>=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 ;
ตัวอย่างต่อไปนี้จะสร้างกิจกรรมแบบวันเดียวพร้อมข้อมูลสรุปและคำอธิบาย สามารถดูตัวอย่างเพิ่มเติมได้ใน 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