welp/ical-bundle

Symfony 扩展包,用于管理 .ics iCal 文件(创建和读取)

安装次数: 100 771

依赖者: 0

建议者: 0

安全性: 0

星标: 10

关注者: 2

分支: 13

开放问题: 4

类型:symfony-bundle

1.0.1 2020-03-25 10:13 UTC

This package is auto-updated.

Last update: 2024-08-25 20:16:08 UTC


README

Build Status Packagist Packagist GitHub license

Symfony 扩展包,用于管理 .ics iCal 文件(创建和读取)

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

设置

将包添加到您的项目中

composer require welp/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;

    }