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

Proposed Component Name Zend_Service_SecondLife
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Service_SecondLife
Proposers Lars Strojny
Alexander Veremyev (Zend Liaison)
Revision 0.1 - 10 March 2007: Initial submission
0.2 - 26 December: Added details (wiki revision: 24)

Table of Contents

1. Overview

Zend_Service_SecondLife provides a convenient way to access the Second Life API provided by Linden Labs. Second Life is a virtual reality game.
Currently the API just offers methods to create new accounts.

2. References

*Linden Labs PHP-lib (PHP4 only)
*Second Life API documentation
*Sources in the laboratory

3. Component Requirements, Constraints, and Acceptance Criteria

  • Zend_Service_SecondLife will abstract the access to the SecondLife API
  • Zend_Service_SecondLife will use Zend_Http_Client for HTTP communication
  • Zend_Service_SecondLife will wrap all existant SecondLife API calls
  • Zend_Service_SecondLife will not strictly expose the API calls in the reomte API in 1:1
  • Zend_Service_SecondLife will normalize API calls and paramater names

4. Dependencies on Other Framework Components

  • Zend_Exception

5. Theory of Operation

This component is used to call the Secondlife API. Until now only user registrations are possible. The proprietary SecondLife API protocol is similiar to XML/RPC and therefore a similiar design pattern is used (every value represented by an object).

6. Milestones / Tasks

  • Milestone 1: Get feedback
  • Milestone 2: Work on prototype in the laboratory
  • Milestone 3: [DONE] Working prototype supporting retrieval of valid SL last names, getting error codes, verifying names and creating users.
  • Milestone 4: Checkin to the incubator.
  • Milestone 5: Unit tests exist, work, and are checked into SVN.
  • Milestone 6: Initial documentation exists.

7. Class Index

  • Zend_Service_SecondLife
  • Zend_Service_SecondLife_Value_Array
  • Zend_Service_SecondLife_Value_Boolean
  • Zend_Service_SecondLife_Value_Collection
  • Zend_Service_SecondLife_Value_Integer
  • Zend_Service_SecondLife_Value_Key
  • Zend_Service_SecondLife_Value_Llsd
  • Zend_Service_SecondLife_Value_Map
  • Zend_Service_SecondLife_Value_Abstract
  • Zend_Service_SecondLife_Value_Scalar
  • Zend_Service_SecondLife_Value_String
  • Zend_Service_SecondLife_Exception

8. Use Cases

UC-01: Register at SecondLife
UC-02: Use Zend_Service_SecondLife::getLastNames() to retrieve last names for select box

9. Class Skeletons

See laboratory for a fully working prototype

]]></ac:plain-text-body></ac:macro>

]]></ac:plain-text-body></ac:macro>

Labels:
secondlife secondlife Delete
zend_webservices zend_webservices Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 27, 2007

    <p>The proposal looks good, and I have some feedback to share.</p>

    <p>We should have some content for the section <em>3. Component Requirements, Constraints, and Acceptance Criteria</em>. Some lines to explain what the component must, should, must not, and should not do would be helpful.</p>

    <p>I'm a bit concerned with the relatively small scope of the SecondLife API, dealing only with registering new users. No announcements regarding the API since 8/30/06 does not seem to bode well, but perhaps I am simply not aware of the latest developments.</p>

    <p>Add "<code>@throws</code>" tags to method docblocks that throw exceptions.</p>

    <p>The <code>getNames()</code> method is illustrated in the use cases section, but is not included in the class skeleton for <code>Zend_Service_SecondLife</code>.</p>

    <p>The class skeletons section is incomplete.</p>

    <p>I attached the code you sent me to the proposal. If you would like, I can set you up to commit this work to the Zend Framework laboratory SVN repository.</p>

    <p>I notice that the Linden Labs code uses the curl extension. On which extensions does this component depend?</p>

    <p>The use cases section should demonstrate the use of most of the component's available features. Are there no other features besides those already shown worth illustrating?</p>

  2. Dec 27, 2007

    <p>>We should have some content for the section <em>3. Component Requirements, Constraints, and Acceptance Criteria</em>. Some lines to explain what the component must, should, must not, and should not do would be helpful.</p>

    <p>OK, added.</p>

    <p>>I'm a bit concerned with the relatively small scope of the SecondLife API, dealing only with registering new users. No announcements regarding the API since 8/30/06 does not seem to bode well, but perhaps I am simply not aware of the latest developments.</p>

    <p>Sadly it is exactly this way. But as the registration API is popular enough (the LWord TV series e.g. used it) to not be removed soon.</p>

    <p>>Add "@throws" tags to method docblocks that throw exceptions.</p>

    <p>Done.</p>

    <p>>The getNames() method is illustrated in the use cases section, but is not included in the class skeleton for Zend_Service_SecondLife.</p>

    <p>getNames() was wrong, I renamed it to getLastNames() to make it more clear. Fixed that.</p>

    <p>>The class skeletons section is incomplete.</p>

    <p>I will add the rest of the skeletons after adjusting my current code base in laboratory, if that is OK for you.</p>

    <p>>I attached the code you sent me to the proposal. If you would like, I can set you up to commit this work to the Zend Framework laboratory SVN repository.</p>

    <p>That would be really cool to have a playground there to adjust some things and make the code work.</p>

    <p>> I notice that the Linden Labs code uses the curl extension. On which extensions does this component depend?</p>

    <p>It is just HTTP GET and POST. So I will use Zend_Http_Client and I added that to the requirements section.</p>

    <p>> The use cases section should demonstrate the use of most of the component's available features. Are there no other features besides those already shown worth illustrating?</p>

    <p>Added another example, the only other USE case. There is just no more use of this component, it is just for registration. Do you think this is too special and out of scope of ZF?</p>

    1. Dec 27, 2007

      <blockquote><p>I will add the rest of the skeletons after adjusting my current code base in laboratory, if that is OK for you.</p></blockquote>

      <p>Works for me. <ac:emoticon ac:name="smile" /></p>

      <p>I've added the sources to the laboratory and sent your SVN credentials in a separate mailing so that you may develop this in the laboratory.</p>

      <blockquote><p>Added another example, the only other USE case. There is just no more use of this component, it is just for registration. Do you think this is too special and out of scope of ZF?</p></blockquote>

      <p>I'm not sure whether that will be the case. On the one hand, it simplifies the usage of the SecondLife API, and that is a good thing. Because it may be niche functionality, however, it seems that this component (as well as several others) would lend itself well to being an optional part of Zend Framework. Unfortunately, we do not have at this time the policies and processes and systems in place to realize such an idea, but we are aware of it and tossing around ideas such as having something like MySQLForge.</p>

  3. Jan 03, 2008

    <ac:macro ac:name="note"><ac:parameter ac:name="title">Zend Comments</ac:parameter><ac:rich-text-body>
    <p>The rest of the Zend team shares my concern about the limited scope of the component. We approve the proposed component for continued development and exposure to the community from within the laboratory, and may reconsider the component for the incubator at a later date, perhaps after the SecondLife API support has expanded (e.g., real-time statistics). Also, we suggest that you contact SecondLife to notify them that you have developed a PHP 5 client for their API. Perhaps they would link to [a package of] the sources on which you are working for Zend Framework.</p></ac:rich-text-body></ac:macro>

  4. Dec 24, 2008

    <ac:macro ac:name="note"><ac:parameter ac:name="title">Zend Comments</ac:parameter><ac:rich-text-body>
    <p>Proposal was reviewed by the Zend team and approved to the Extras Incubator with the following notices:</p>
    <ul>
    <li>Proposal should describe component API in more details while it's not done in the documentation.</li>
    <li>Component should be checked for corresponding to the actual version of SecondLife service API.</li>
    <li>Zend_... should be replaced with ZendX_... since it goes into Extras.</li>
    </ul>
    </ac:rich-text-body></ac:macro>

  5. Mar 18, 2009

    <p>Lars, do you plan to continue working on this?</p>

    1. Mar 21, 2009

      <p>I've contacted Alexander to discuss some details but never got a reply. So yes, I would like to continue working on it.</p>