Skip to end of metadata
Go to start of metadata

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Zend Framework: Zend_Gdata Component Proposal

Proposed Component Name Zend_Gdata
Developer Notes
Proposers Bill Karwin (lead)
John Herren (initial implementation)
Revision 1.1 - 20 August 2006: Initial proposal. (wiki revision: 11)

Table of Contents

1. Overview

Zend_Gdata is a set of classes to implement Google's GData protocol. It includes an interface for authentication as well as concrete interfaces to Google's Gdata enabled services such as Calendar, Google Base, Blogger, and Code Search

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • This component will follow Google's Data API Protocol.
  • This component will provide an authentication method per Google's AuthSub authentication scheme.
  • This component will provide an authentication method per Google's ClientLogin authentication scheme.
  • This component will throw exceptions when an authentication error is received.
  • The generic Gdata class will allow subclassing.

4. Dependencies on Other Framework Components

  • Zend_Exception
  • Zend_Feed (and subclasses)
  • Zend_Http_Client

5. Theory of Operation

The Gdata module leverages several existing framework modules to facilitate HTTP request/response and feed parsing. The Gdata module serves mainly to provide convenience methods to create queries against the Google webservices. Because Google requires a somewhat complicated authentication scheme, Gdata implements the simplest interface possible to provide authentication to the webservices.

6. Milestones / Tasks

  • Milestone 1: Working prototype checked into the incubator supporting use cases #1, #2, #3, #4
  • Milestone 2: Better API for return types and namespaced request fields.
  • Milestone 3: Unit tests exist, work, provide at least 80% code coverage, and are checked into SVN.
  • Milestone 4: Initial API documentation exists.
  • Milestone 5: Support for additional Google services: Blogger, Code Search
  • Milestone 6: Initial manual documentation exists.

7. Class Index

  • Zend_Gdata
  • Zend_Gdata_Exception
  • Zend_Gdata_AuthSub
  • Zend_Gdata_ClientLogin
  • Zend_Gdata_Base
  • Zend_Gdata_Blogger
  • Zend_Gdata_Calendar
  • Zend_Gdata_CodeSearch

8. Use Cases

UC-01: manual Google Calendar query/write using Gdata class
UC-02: manual Google Base query using Gdata class
UC-03: Google Calendar query/write using Gdata_Calendar class
UC-04: Google Base query using Gdata_Base class

9. Class Skeletons



proposal proposal Delete
zend_gdata zend_gdata Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Oct 20, 2006

    <p>Since this component is geared towards consuming the Google webservices API called GData, and the fact that how the current web services components are categorized, it is irrelevant to just name it Zend_Gdata_*. Atleast that's what I think. There is an incubator proposal titled Zend_Service_Google which I'm also proposing to be more tied in to the ZF categorizing and naming scheme.</p>

    <p>Both are basically aimed at accomplishing the same goal by utilizing the Google webservices. If what I'm proposing sounds more rigid to the philosophy of the framework, then John Herren and Aissam can discuss their view points on what naming will be more appropriate for this. And I would love to contribute to it either way, once a proposal is finalized. Cheers.</p>

  2. Nov 07, 2006

    <p>Here are the outstanding items to do on Zend_Gdata:</p>

    <ul class="alternate">
    <li>Test with the new refactored Zend_Http_Client in the incubator.</li>
    <li>Integrate with new Http Client once it is reasonably stable.</li>
    <li>Integrate the Google ClientLogin authentication mechanism.</li>
    <li>Write helper classes for Calendar, Blogger, Base, and CodeSearch.</li>
    <li>Write fuller API reference docs.</li>
    <li>Write ZF manual docs in the DocBook format.</li>
    <li>Create a test suite solution. It's understood that testing is tricky since it requires contacting a remote service.</li>

    <p>The Gdata component is currently checked into the Laboratory subversion repository. The reason it isn't in the incubator yet is that the version of Zend_Gdata bundles an implementaiton of Zend_Http_Client that has a distinct interface from both the core and incubator implementations. Once Zend_Gdata is adapted to use the latest Zend_Http_Client interface, we can move Zend_Gdata to the incubator.</p>

  3. Nov 27, 2006

    <p>ClientLogin class committed to repository. Developers can now create an authenticated Zend_Http_Client object class using Either Zend_Gdata_AuthSub or Zend_Gdata_ClientLogin.</p>

  4. Dec 16, 2006

    <ac:macro ac:name="note"><ac:parameter ac:name="title">"Component moved to Core."</ac:parameter><ac:rich-text-body>
    <p>This component is a special case that has been given authorization to move<br />
    directly to Core in a fast-track manner.</p></ac:rich-text-body></ac:macro>