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를 방문하세요.
이 패키지 내의 클래스는 두 개의 네임스페이스로 그룹화됩니다.
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 라이센스 에 따라 배포됩니다.