Este paquete ofrece una capa de abstracción para crear archivos iCalendars. Al utilizar este paquete PHP, puede crear archivos *.ics
sin conocer el formato subyacente. La salida en sí seguirá el RFC 5545 lo mejor posible.
Puede instalar este paquete utilizando Composer, ejecutando el siguiente comando:
composer require eluceo/ical
La versión inicial se lanzó en 2012. La versión 2 de este paquete es una reescritura completa del paquete y no es compatible con la versión anterior. Consulte la guía de actualización si desea migrar de la versión 0.*
a 2.*
. Si recién comienza a usar este paquete, debe instalar la versión 2.
Versión | Versión 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 |
Visite ical.poerschke.nrw para obtener la documentación completa.
Las clases dentro de este paquete están agrupadas en dos espacios de nombres:
Domain
contiene la información sobre los eventos.Presentation
contiene la transformación del Domain
a un archivo *.ics
.Para crear un calendario, el primer paso será crear los objetos de dominio correspondientes. Luego, estos objetos se pueden transformar en una representación PHP de iCalendar, que se puede convertir en una cadena.
En este ejemplo muy básico, eso genera un evento vacío. Aprenderá cómo crear un objeto de dominio de eventos, cómo agregarlo a un calendario y cómo transformarlo en un componente 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 ;
El siguiente ejemplo creará un evento de un solo día con un resumen y una descripción. Se pueden encontrar más ejemplos en la carpeta ejemplos/.
<?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 ;
Este paquete se publica bajo la licencia MIT .