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

Proposed Component Name Zend_Microformat_Xfn
Developer Notes
Proposers Pádraic Brady
Matthew Weier O'Phinney (Zend Liaison)
Revision 1.0 - Awaiting Community Comment (wiki revision: 6)

Table of Contents

1. Overview

The XHTML Friends Network (XFN) Microformat was designed to enable users classify their relationships with other individuals and entities they have linked to. This is the sort of data which can be used in a social networking application to promote individuals you have linked to into categories based on your personal relationships.

A simple example is that of two individuals, Bob and Ann. Bob views Ann as a remote friend, and creates a link as follows:

The rel attributes indicate personal relationships. In this case Bob views Ann as a friend he has met in person. Ann might have slightly different ideas:

This time Ann indicates that only does she consider Bob as a friend she has met in person, but that she also has a crush on him!

The simplicity of the format enables social application platforms to potentially generate a graph of all relationships any individual has, and their inverse linkage - something Google has recently announced... But also, it's a simple means of collecting any individuals contacts, friends and acquantances which is already usable on some platforms for allowing a new member to invite and import their networks from other social apps.

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • This component will parse XFN data from any given URL.
  • This component will parse XFN data from any given HTML/XHTML source.
  • This component will generate XFN enabled hyperlinks for embedding in HTML.
  • This component will present and accept data using an iterable and countable OO API.

4. Dependencies on Other Framework Components

  • Zend_Microformat
  • Zend_Microformat_Exception

5. Theory of Operation

The operation of this component is covered in the related Zend_Microformat proposal. In short, when supplied with a URL or HTML source, this component will parse out XFN data into a results object for use. It will also generate similar embeddable output.

Although this component can be used directly for specific purposes, or for implementing custom XFN forms, the majority of use cases work perfectly fine using the API supplied with Zend_Microformat.

The use cases below present this component's specific usage, a Zend_Microformat preferred alternative, and a generation example.

As with all Microformats, this component is subject to legal usage as defined in the relevant XFN 1.1 specification. Where an attempt to add data to an XFN Entity breach the specification, the error will raise an Exception.

6. Milestones / Tasks

  • Milestone 1: Assemble some initial use cases to explore desired API
  • Milestone 2: Commence proof-of-concept coding (will discard after)
  • Milestone 3: Pending review, complete initial development using TDD
  • Milestone 4: Complete acceptance testing, verify unit test coverage
  • Milestone 5: Let's assume documentation is written during development

7. Class Index

  • Zend_Microformat_Xfn
  • Zend_Microformat_Xfn_Entity
  • Zend_Microformat_Xfn_Result
  • Zend_Microformat_Xfn_Exception

8. Use Cases

Given XFN's simplistic data model, it is likely the steps needed to generate XFN links will also be abbreviated to a single new() method containing all three required parameters.


Fetch XFN data using default Zend_Microformat API


Fetch XFN data using XFN class directly


Generating XFN embeddable output

9. Class Skeletons

Please see the above use cases. Based on these, source code will be developed following Test-Driven Development and therefore class skeletons will not be presented in this proposal prematurely. The TDD process will implement Zend_Microformat specifically to enable the use cases presented above.



Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jun 02, 2008

    <ac:macro ac:name="note"><ac:parameter ac:name="title">Zend Comments</ac:parameter><ac:rich-text-body>
    <p>The Zend Framework team accepts this proposal for immediate development in the extras incubator. Please see <a href="">the comment on the main Zend_Microformat proposal</a> for further acceptance criteria and suggestions.</p></ac:rich-text-body></ac:macro>

  2. Mar 18, 2009

    <p>Paddy, status?</p>