daVinci / vcalendar
PHP类用于生成VCalendar (ics)文件
1.0.2
2018-06-17 09:10 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- php: >=5.4.0
- codeclimate/php-test-reporter: dev-master
This package is auto-updated.
Last update: 2024-09-13 21:27:42 UTC
README
PHP类用于生成VCalendar (ics)文件。与Gmail日历附件兼容。
安装
本页面包含有关为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();