daVinci/vcalendar

PHP类用于生成VCalendar (ics)文件

1.0.2 2018-06-17 09:10 UTC

This package is auto-updated.

Last update: 2024-09-13 21:27:42 UTC


README

PHP类用于生成VCalendar (ics)文件。与Gmail日历附件兼容。

Build Status Latest Stable Version Total Downloads Latest Unstable Version License composer.lock available Code Climate Test Coverage Issue Count

安装

本页面包含有关为PHP安装库的信息。

要求

  • PHP版本5.4.0或更高(包括PHP 7)

获取客户端库

获取客户端库文件有两种方法。

使用Composer

您可以通过将库添加到composer.json中的依赖项来安装库。

  "require": {
    "davaxi/vcalendar": "^1.0"
  }

从GitHub克隆

该库可在GitHub上找到。您可以使用git clone命令将其克隆到本地存储库。

git clone https://github.com/davaxi/VCalendar.git

文件处理方法

获取文件后,确保它们可供您的代码使用。如果您正在使用Composer,这会自动为您处理。如果不使用Composer,您需要在客户端库内部添加autoload.php文件。

require '/path/to/vcalendar/folder/autoload.php';

使用方法

<?php

require '/path/to/vcalendar/folder/autoload.php';

$VCalendar = new Davaxi\VCalendar();
$VCalendar->setProcess('Davaxi', 'Davaxi Events', 'v1.0', 'EN');
$VCalendar->setMethod('PUBLISH');
$VCalendar->setCalendarName('Events - Davaxi');
$VCalendar->setTimeZone('Europe/Paris');
$VCalendar->setStartDateTime('2016-06-10 10:00:00');
$VCalendar->setEndDateTime('2016-06-10 14:00:00');
$VCalendar->setStatus('CONFIRMED');
$VCalendar->setTitle('My Event Title');
$VCalendar->setDescription('My Event Description');
$VCalendar->setOrganizer('Davaxi', 'root@domain.fr');
$VCalendar->setClass('PUBLIC');
$VCalendar->setCreatedDateTime('2016-06-01 00:00:00');
$VCalendar->setLocation('Paris', 48.874086, 2.345640);
$VCalendar->setUrl('https://www.domain.com/');
$VCalendar->setSequence(4);
$VCalendar->setLastUpdatedDateTime('2016-06-01 01:00:00');
$VCalendar->setCategories(array('ENTERTAINMENT'));
$VCalendar->setUID('event_davaxi_1');
$VCalendar->addAttendee('Guest', 'REQ-PARTICIPANT', 'guest@domain.com',false);
$VCalendar->stream();
exit();

文档

<?php
// Filename for download stream
$event = new Davaxi\VCalendar($fileName = 'invite');

// Set process info
$VCalendar->setProcess($processOwner, $processName, $processVersion, $processLang)

// Set method (REQUEST / PUBLISH)
$VCalendar->setMethod($method);

// Set event calendar name
$VCalendar->setCalendarName($calendarName);

// Set event timezone
$VCalendar->setTimeZone($timeZone);

// If Event on all day
$VCalendar->hasEventAllDay();

// Set event start datetime
$VCalendar->setStartDateTime($startDateTime);

// Set event end datetime
$VCalendar->setEndDateTime($endDateTime);

// Set event status (TENTATIVE / CONFIRMED / CANCELED) 
$VCalendar->setStatus($status);

// Set event title
$VCalendar->setTitle($title);

// Set event description
$VCalendar->setDescription($description);

// Set organize info
$VCalendar->setOrganizer($organizerName, $organizerEmail);

// Set event class (PUBLIC / PRIVATE / CONFIDENTIAL)
$VCalendar->setClass($class);

// Set event created datetime
$VCalendar->setCreatedDateTime($createdDateTime);

// Set event location 
$VCalendar->setLocation($locationString, $locationLat, $locationLng);

// Set event URL
$VCalendar->setUrl($url);

// Set sequence
$VCalendar->setSequence($sequence);

// Set event last updated datetime
$VCalendar->setLastUpdatedDateTime($lastUpdatedDateTime);

// Set event categories
$VCalendar->setCategories($categories);

// Set event UID (for updates)
$VCalendar->setUID($UID);

// Add attendee (types: CHAIR / REQ-PARTICIPANT / OPT-PARTICIPANT / NON-PARTICIPANT)
$VCalendar->addAttendee($name, $type, $email, $rsvp);

// Stream file with header
$VCalendar->stream();
// or get content
$content = $VCalendar->getContent();

与PHPMailer集成,使用Gmail直接添加到日历操作

$PHPMailer = new PHPMailer();
$VCalendar = new Davaxi\VCalendar();
// [...] Set VCalendar
// [...] Configure PHPMailer

$PHPMailer->addStringAttachment(
    $VCalendar->getContent(),
    $VCalendar->getFilename(),
    'base64',
    $VCalendar->getContentType(),
    'attachment'
);
$PHPMailer->Send();