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.
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
<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>
<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>
<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>
<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>
<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>
7 Comments
comments.show.hideDec 27, 2007
Darby Felton
<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>
Dec 27, 2007
Lars Strojny
<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>
Dec 27, 2007
Darby Felton
<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>
Jan 03, 2008
Darby Felton
<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>
Dec 24, 2008
Alexander Veremyev
<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>
Mar 18, 2009
Wil Sinclair
<p>Lars, do you plan to continue working on this?</p>
Mar 21, 2009
Lars Strojny
<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>