frednandrin/ical-bundle

Symfony Bundle 用于管理 .ics iCal 文件(创建和读取)

安装量: 8,143

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 13

类型:symfony-bundle

2.0.3 2023-03-17 11:54 UTC

This package is auto-updated.

Last update: 2024-09-23 14:13:29 UTC


README

Build Status Packagist Packagist GitHub license

Symfony Bundle 用于管理 .ics iCal 文件(创建和读取)

库的使用: https://github.com/jasvrcek/ICS

设置

将扩展包添加到您的项目中

composer require FredNandrin/ical-bundle

Welp\IcalBundle\WelpIcalBundle 添加到您的 AppKernel.php

$bundles = [
    // ...
    new Welp\IcalBundle\WelpIcalBundle(),
];

配置

在您的 config.yml

welp_ical:
    default_timezone: "Europe/Paris"
    default_prodid: "-//WelpIcalBundle//Calendar App//FR"

用法

<?php

    ...

    /**
     * Generate calendar event ICAL for welpAction
     * @Config\Route("/ical", name="app_ical")
     */
    public function icalAction()
    {
        $icalFactory = $this->get('welp_ical.factory');

        //Create a calendar
        $calendar = $icalFactory->createCalendar();

        //Create an event
        $eventOne = $icalFactory->createCalendarEvent();
        $eventOne->setStart(new \DateTime())
            ->setSummary('Family reunion')
            ->setUid('event-uid');

        //add an Attendee
        $attendee = $icalFactory->createAttendee();
        $attendee->setValue('moe@example.com')
            ->setName('Moe Smith');
        $eventOne->addAttendee($attendee);

        //set the Organizer
        $organizer = $icalFactory->createOrganizer();
        $organizer->setValue('titouan@welp.fr')
            ->setName('Titouan BENOIT')
            ->setLanguage('fr');
        $eventOne->setOrganizer($organizer);

        //new event
        $eventTwo = $icalFactory->createCalendarEvent();
        $eventTwo->setStart(new \DateTime())
            ->setSummary('Dentist Appointment')
            ->setUid('event-uid');

        $calendar
            ->addEvent($eventOne)
            ->addEvent($eventTwo);

        $headers = array();
        $calendarResponse = new Welp\IcalBundle\Response\CalendarResponse($calendar, 200, $headers);

        return $calendarResponse;

    }