| Under Construction This proposal is under construction and is not ready for review. |
<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
Zend_Ical is a component that provides an easy interface to work with ICS calendar files.Zend Framework: Zend_Ical Component Proposal
Proposed Component Name
Zend_Ical
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_Ical
Proposers
Ben Scholzen
Revision
1.1 - 22 September 2007: Initial proposal (wiki revision: 18)
Table of Contents
1. Overview
2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will handle ICS files from different data sources (filesystem, FTP and webDAV).
- This component will be able to write data back to ICS files.
- This component will will strictly follow the RFC 2445.
- This component will only support iCalendar V2.0
- This component will be able to get dates for a given time range.
- This component will be able to search through calendar data.
- This component will validate any input before writing it to ICS files.
4. Dependencies on Other Framework Components
- Zend_Exception
- Zend_Date
- Zend_Uri
5. Theory of Operation
Zend_Ical will take a path or URL to an ICS filename as argument for the constructor method. The parser of Zend_Ical will then parse the ICS file in a two pass mode. The first pass tokenizes the raw data and puts them into a tree structure. The second pass will then convert properties like dates and property pairs into something more usable like Zend_Date. The two pass way is needed, because in the first pass, the time zone settings of the ICS file are not known..
After the parsing you can call different methods to gather data from the ICS file or add additional data to it. If you try to write data back to a write protected file, Zend_Ical will throw a Zend_Ical_Exception. Every data you add to the Ical object will be validated, so that other programs will always be able to handle the ICS file as usual.
At the time of writing, Zend_Ical will only support the iCalender 2.0 format.
6. Milestones / Tasks
- Milestone 1: Proposal finished
- Milestone 2: Proposal approved
- Milestone 3: Working prototype checked into the incubator.
- Milestone 4: Unit tests exist, work, and are checked into SVN.
- Milestone 5: Documentation exists.
7. Class Index
- Zend_Ical
- Zend_Ical_Exception
- Zend_Ical_Parser
- Zend_Ical_Parser_Exception
- Zend_Ical_Parser_Component
- Zend_Ical_Parser_Property
- Zend_Ical_Parser_FirstPass
- Zend_Ical_Parser_SecondPass
- Zend_Ical_Source_Exception
- Zend_Ical_Source_Interface
- Zend_Ical_Source_Filesystem
- Zend_Ical_Source_Ftp
- Zend_Ical_Source_Http
- Zend_Ical_Vcalendar
- Zend_Ical_Vcalendar_Component
8. Use Cases
| UC-01 |
|---|