Ce package propose une couche d'abstraction pour créer des fichiers iCalendars. En utilisant ce package PHP, vous pouvez créer des fichiers *.ics
sans connaître le format sous-jacent. La sortie elle-même suivra autant que possible la RFC 5545.
Vous pouvez installer ce package à l'aide de Composer, en exécutant la commande suivante :
composer require eluceo/ical
La version initiale a été publiée en 2012. La version 2 de ce package est une réécriture complète du package et n'est pas compatible avec les anciennes versions. Veuillez consulter le guide de mise à niveau si vous souhaitez migrer de la version 0.*
vers 2.*
. Si vous commencez tout juste à utiliser ce package, vous devez installer la version 2.
Version | Version 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 |
Visitez ical.poerschke.nrw pour une documentation complète.
Les classes de ce package sont regroupées en deux espaces de noms :
Domain
contient les informations sur les événements.Presentation
contient la transformation du Domain
en un fichier *.ics
.Pour créer un calendrier, la première étape sera de créer les objets du domaine correspondants. Ensuite, ces objets peuvent être transformés en une représentation PHP iCalendar, qui peut être convertie en chaîne.
Dans cet exemple très basique, cela restitue un événement vide. Vous apprendrez comment créer un objet de domaine d'événement, comment l'ajouter à un calendrier et comment le transformer en composant 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 ;
L'exemple suivant créera un événement d'une seule journée avec un résumé et une description. D'autres exemples peuvent être trouvés dans le dossier 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 ;
Ce package est publié sous la licence MIT .