Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History
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 Framework: Zend_Ical Component Proposal

Proposed Component Name Zend_Ical
Developer Notes
Proposers Ben Scholzen
Revision 1.1 - 22 September 2007: Initial proposal (wiki revision: 15)

Table of Contents

1. Overview

Zend_Ical is a component that provides an easy interface to work with ICS calendar files.

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.
  • This component will not cache any data using Zend_Cache or the filesystem.

4. Dependencies on Other Framework Components

  • Zend_Exception
  • Zend_Date

5. Theory of Operation

Zend_Ical will take a path or URL to an ICS file as argument for the constructor method and a boolean, which indicates whether the ICS file is write protected or not. 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 it is not write protected. If you try to write 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: Working prototype checked into
  • Milestone 2: Working prototype checked into the incubator.
  • Milestone 3: Unit tests exist, work, and are checked into SVN.
  • Milestone 4: Initial documentation exists.

7. Class Index

  • Zend_Ical
  • Zend_Ical_Exception
  • Zend_Ical_Parser
  • Zend_Ical_Parser_Exception
  • Zend_Ical_Parser_Component
  • 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

8. Use Cases


Fetching data

9. Class Skeletons


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.