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_Service_Google Component Proposal

Proposed Component Name Zend_Service_Google
Developer Notes
Proposers aissam AT yahoo
Revision 0.1 - 8 June 2006: First Version (wiki revision: 20)

Table of Contents

1. Overview

Zend_Service_Google will offers a simple and standard interface for dealing with Google's Service

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • PHP 5.1.4 (with SOAP enabled)

4. Dependencies on Other Framework Components

  • Zend_Service_Exception
  • Zend_HttpClient
  • Zend_Feed

5. Theory of Operation

Zend_Service_Google will offer two simple methods (getService and callService).
It's organised by plugins-like system, so any additional service could be easily
added. Each plugin will be responsable for one specific Google API,
and will take care for dealing with a the google service :
connect, send query, get/parse result, and return it in an easy to use format
(object, array, string or XML)

6. Milestones / Tasks

zone: Missing {zone-data:milestones}

7. Class Index

For advanced users:

  • Zend_Service_Google
  • Zend_Service_Google_AGMailAtom
  • Zend_Service_Google_ASearch
  • Zend_Service_Google_AAnotherService
    (one classe for each API: format Zend_Service_Google_A<nameOfApi>)

For "no time to RTFM" users

  • Zend_Service_Google_Mail
  • Zend_Service_Google_Search
  • Zend_Service_Google_Spelling
  • Zend_Service_Google_Cache

8. Use Cases


Simplest Way


Unified Way


Advanced Way (need little knownledge for Google's API or Zend_Service_Google's API)

9. Class Skeletons



Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Aug 04, 2006

    <p>Unofficial Comments:</p>

    <p>I think it would be very beneficial and helpful for those reviewing this proposal, if there were more robust use cases and example, and a little more detail for the implementation.</p>

    <p>I think Zend_Service_Google should strive to keep things simple, and be careful to avoid making a more complex API / layer on top of the existing Google APIs. We want to avoid making it more complicated than just directly using their APIs.</p>

    <p>After these two concerns are addressed, the team will be ready to post a formal review. Many are eager to see support for Google's APIs in the ZF <ac:emoticon ac:name="smile" /></p>

  2. Aug 11, 2006

    <p>For example, if I'm just using a service, I like to use by simply instantiating and then using the instance directly, instead of more intermediate steps.</p>
    <ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
    $someService = new Zend_Service_Google_Translate('en','fr');
    $frenchText = $someService->translate('hello');

    <p>If there are several optional settings needed by the constructor, then we can use a $options array, and "pass by keyword".</p>

    1. Aug 15, 2006

      <p>yeah, good idea <ac:emoticon ac:name="smile" /><br />
      i was thinking of doing the same interface for all services, but why not, we could do both stuff.</p>

  3. Aug 25, 2006

    <ac:macro ac:name="note"><ac:parameter ac:name="title">Zend Feedback</ac:parameter><ac:rich-text-body>
    <p>Approved, subject to the Zend Framework coding standards for direct instantiation of objects and use of factory patterns. These standards will be published in our coding standards very soon:
    <a class="external-link" href=""></a></p></ac:rich-text-body></ac:macro>

  4. Oct 20, 2006

    <p>Here's a little of my view on this proposal and another one that is already under review: <a href="">Zend_Gdata</a> (read the comment at the bottom). I'm proposing <span style="text-decoration: underline;">Zend_Service_Google</span> for the component which will allow to communicate with the Google webservices. Perhaps everyone who's interested in developing a component for the Google webservices can workout on these 2 proposals and come out with one that is more suitable for the ZF since tertiary webservices related components are coming under Zend_Service_*. Cheers.</p>

  5. Dec 14, 2006

    <p>Is this even in development? It was approved for the incubator in August but nothing's been committed to the repository. I have misgivings about the class organization and API, but if this isn't happening I'll just submit my own Zend_Service_Google proposal.</p>

  6. Oct 01, 2007

    <p>(This is in response to an e-mail from Aissam.)</p>

    <p>Hi Aissam,</p>

    <p>I'm just a community member like yourself. I believe Darby ( is the Zend liaison for Zend_Service components.</p>

    <p>Unfortunately, whatever code you have already written is outdated now. Google has been deprecating their server-side services in favor of Ajax-based APIs. For instance, their SOAP search is gone (well, not gone--but no new keys are being issued). It's now Ajax-only. So that eliminates Search, Spelling, and Cache (scraping is against Google's terms of service).</p>

    <p>The only service therefore remaining in your proposal is Gmail, and that may also be against Gmail's user agreement. Under the program policies section, the following three prohibited items may apply:</p>

    <p>Users may not:</p>

    <li>Modify, adapt, translate, or reverse engineer any portion of the Gmail Service</li>
    <li>Remove any copyright, trademark or other proprietary rights notices contained in or on the Gmail Service</li>
    <li>Reformat or frame any portion of the web pages that are part of the Gmail Service</li>

    <p><ac:emoticon ac:name="sad" /></p>


  7. Oct 01, 2007


    <p>thanks for your comment, since my google's based application still works, i wasn't aware of this deprecating <ac:emoticon ac:name="sad" /> </p>

    <p>i hope that they are planing to move this services to gdata, this will offer at least a unique way to deal with google's services (Zend_Gdata).</p>

    <p>anyway, at least things are clear now, this porposal is obsolete <ac:emoticon ac:name="cheeky" /></p>