renfordt/icstorm

一个用于生成 ICS 文件的 PHP 包。

1.0.0 2024-09-27 20:06 UTC

This package is auto-updated.

Last update: 2024-09-27 21:33:36 UTC


README

一个用于创建和导入包含一个或多个事件的 iCalendar/ICS 文件的包。

Badge Packagist Version Packagist PHP Version GitHub License GitHub Actions Workflow Status Code Climate coverage Code Climate maintainability

安装

推荐使用 Composer 安装此包。执行以下命令。这不仅会安装包,还会将其添加到您的项目的 composer.json 文件中作为依赖项。

composer require renfordt/icstorm

使用方法

创建事件

以下 PHP 代码用于创建一个新的事件。

开头的变量(titlesummarydescriptionstartDateendDateclassificationtransparencylocation)代表事件的详细信息

  • title:事件的标题。
  • summary:事件的简要概述。
  • description:事件的详细信息。
  • startDateendDate:事件的开始和结束日期,是必填项。
  • classification:事件的可见性,表示它是否为私人或公共。
  • transparency:表示事件的时间是被占用还是空闲的。
  • location:事件的地点。

这些详细信息通过使用 compact 函数收集到一个关联数组中。然后,将此数组作为参数传递给 Event::createEvent 函数,该函数生成具有这些详细信息的事件实例。

$title = 'Test Event';
$summary = 'Test Event';
$description = 'This is a test event';
$startDate = '2024-10-15 18:15:00';
$endDate = '2024-10-15 18:45:00';
$classification = EventClassification::private;
$transparency = EventTransparency::opaque;
$location = 'Test Location';

$event = Event::create(
    compact('title',
        'summary',
        'description',
        'startDate',
        'endDate',
        'classification',
        'transparency',
        'location'));

创建 iCalendar

要创建 iCalendar/ICS 文件,可以使用以下代码。

首先创建一个新的 Calendar 实例,并将所有必需的事件添加到其中。然后,可以使用函数生成 ICS 字符串或文件。

$calendar = new Calendar();
$calendar->addEvent($event);

$ics = $calendar->generateICS(); // generates a ICS string
$icsFile = $calendar->generateICSFile(); // generates a ICS file