xi-ma-media / ical-bundle
该包的最新版本(0.2.3)没有提供许可证信息。
XIMA iCal Bundle
0.2.3
2023-12-19 15:46 UTC
Requires
- php: ^8.0
- eluceo/ical: ^0.13.0
- sabre/vobject: >=3.4
- stof/doctrine-extensions-bundle: ^1.5.0
- timdev/doctrine-date-interval: 0.1.2
README
将 eluceo/ical 包封装成 Symfony Bundle,包含 Doctrine 关联映射和 Sonata Admin 类。
安装
composer require xima-media/ical-bundle
注意
- 对于 eluceo/ical 分支的依赖项取决于 markuspoerschke/iCal#50,一旦拉取请求被接受,将予以删除。
- 对于 herrera-io/doctrine-dateinterval 的开发版本,其依赖项取决于 kherge-archive/php-doctrine-dateinterval#3,一旦发布新版本,将予以删除。
在 app/AppKernel.php
中加载捆绑包
public function registerBundles() { $bundles = array( ... new Xima\ICalBundle\XimaICalBundle() }
配置
您的项目需要支持 dbal 类型 json 和 dateinterval,在您的 app/config/config.yml
中进行配置,例如。
doctrine: dbal: ... types: json: Sonata\Doctrine\Types\JsonType dateinterval: Herrera\Doctrine\DBAL\Types\DateIntervalType
集成
1. 创建一个事件实体
您需要创建一个自定义 Event 类,该类继承自 ICalBundle 的 Event 类,例如。
<?php use Doctrine\ORM\Mapping as ORM; /** * ICalEvent. * * @ORM\Entity */ class ICalEvent extends \Xima\ICalBundle\Entity\Component\Event { }
注意:应启用 ORM auto_mapping 或者在 app/config/config.yml
中手动配置 XimaICalBundle。
2. 更新您的数据库模式
使用您选择的方法来更新您的数据库模式,例如 doctrine 迁移。
Sonata Admin 类
待完成的文档。查看、使用或从 xima-media\ical-bundle\Admin\EventAdmin.php
和 xima-media\ical-bundle\Admin\RecurrenceRuleAdmin.php
中的 admin 类继承。
用法
获取所有事件的日历格式
/** * @Route("/ical") * Render all events as iCalendar */ protected function iCalAction(Array $events) { $vCalendar = new \Eluceo\iCal\Component\Calendar('myCalendar'); foreach ($events as $event) { $vCalendar->addComponent($event); } $response = new Response(); $response->headers->set('Content-Type', 'text/calendar; charset=utf-8'); $response->headers->set('Content-Disposition', 'inline; filename="cal.ics"'); $response->setContent($vCalendar->render()); return $response; }