ancarebeca/full-calendar-bundle
Composer 安装命令:
composer require ancarebeca/full-calendar-bundle
包简介
Symfony2 integration with the library FullCalendar.js
README 文档
README
This bundle allow you to integrate FullCalendar.js library in your Symfony3.
Requirements
- FullCalendar.js v3.1.0
- Symfony v3.1+
- PHP v5.5+
- PHPSpec
Installation
Installation process:
- Download FullCalendarBundle using composer
- Enable bundle
- Create your Event class
- Create your listener
- Add styles and scripts in your template
- Add Routing
1. Download FullCalendarBundle using composer
$> composer require ancarebeca/full-calendar-bundle
2. Enable bundle
// app/AppKernel.php public function registerBundles() { return array( // ... new AncaRebeca\FullCalendarBundle\FullCalendarBundle(), ); }
3. Create your Calendar Event class
// src/AppBundle/Entity/EventCustom.php <?php namespace AppBundle\Entity; use AncaRebeca\FullCalendarBundle\Model\FullCalendarEvent; class CalendarEvent extends FullCalendarEvent { // Your fields }
4. Create your listener
You need to create your listener/subscriber class in order to load your events data in the calendar.
// service.yml services: app_bundle.service.listener: class: AppBundle\Listener\LoadDataListener tags: - { name: 'kernel.event_listener', event: 'fullcalendar.set_data', method: loadData }
This listener is called when the event 'fullcalendar.set_data' is launched, for this reason you will need add this in your service.yml.
// src/AppBundle/Listener/LoadDataListener.php <?php namespace AppBundle\Listener; use AncaRebeca\FullCalendarBundle\Model\FullCalendarEvent; use AppBundle\Entity\CalendarEvent as MyCustomEvent; class LoadDataListener { /** * @param CalendarEvent $calendarEvent * * @return FullCalendarEvent[] */ public function loadData(CalendarEvent $calendarEvent) { $startDate = $calendarEvent->getStart(); $endDate = $calendarEvent->getEnd(); $filters = $calendarEvent->getFilters(); //You may want do a custom query to populate the events $calendarEvent->addEvent(new MyCustomEvent('Event Title 1', new \DateTime())); $calendarEvent->addEvent(new MyCustomEvent('Event Title 2', new \DateTime())); } }
### 5. Add styles and scripts in your template
Add html template to display the calendar:
{% block body %}
{% include '@FullCalendar/Calendar/calendar.html.twig' %}
{% endblock %}
Add styles:
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('bundles/fullcalendar/css/fullcalendar/fullcalendar.min.css') }}" />
{% endblock %}
Add javascript:
{% block javascripts %}
<script type="text/javascript" src="{{ asset('bundles/fullcalendar/js/fullcalendar/lib/jquery.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/fullcalendar/js/fullcalendar/lib/moment.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/fullcalendar/js/fullcalendar/fullcalendar.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/fullcalendar/js/fullcalendar/fullcalendar.default-settings.js') }}"></script>
{% endblock %}
Install assets
$> php bin/console assets:install web
6. Define routes by default
# app/config/routing.yml ancarebeca_fullcalendar: resource: "@FullCalendarBundle/Resources/config/routing.yml"
Extending Basic functionalities
Extending the Calendar Javascript
If you want to customize the FullCalendar javascript you can copy the fullcalendar.default-settings.js in YourBundle/Resources/public/js, and add your own logic:
$(function () { $('#calendar-holder').fullCalendar({ header: { left: 'prev, next', center: 'title', right: 'month, agendaWeek, agendaDay' }, timezone: ('Europe/London'), businessHours: { start: '09:00', end: '17:30', dow: [1, 2, 3, 4, 5] }, allDaySlot: false, defaultView: 'agendaWeek', lazyFetching: true, firstDay: 1, selectable: true, timeFormat: { agenda: 'h:mmt', '': 'h:mmt' }, columnFormat:{ month: 'ddd', week: 'ddd D/M', day: 'dddd' }, editable: true, eventDurationEditable: true, eventSources: [ { url: /full-calendar/load, type: 'POST', data: { filters: { param: foo } } error: function() { //alert() } } ]
Contribute and feedback
Any feedback and contribution will be very appreciated.
ancarebeca/full-calendar-bundle 适用场景与选型建议
ancarebeca/full-calendar-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 70.59k 次下载、GitHub Stars 达 35, 最近一次更新时间为 2015 年 08 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「calendar」 「fullcalendar」 「jquery calendar」 「symfony2 bundle」 「symfony2 calendar」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ancarebeca/full-calendar-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ancarebeca/full-calendar-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ancarebeca/full-calendar-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
A modern PHP library for generating iCalendar v2.0 events
Yii2 fullcalendar widget (fork)
A fullcalendar implementation for TYPO3 CMS
A powerful event calendar Tool for Laravel's Nova 5.
Check for holidays - localeaware
统计信息
- 总下载量: 70.59k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 38
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-08-16