Previous Next

Zend_Service_Technorati

Introduction

Zend_Service_Technorati provides an easy, intuitive and object-oriented interface for using the Technorati API. It provides access to all available » Technorati API queries and returns the original XML response as a friendly PHP object.

» Technorati is one of the most popular blog search engines. The API interface enables developers to retrieve information about a specific blog, search blogs matching a single tag or phrase and get information about a specific author (blogger). For a full list of available queries please see the » Technorati API documentation or the Available Technorati queries section of this document.

Getting Started

Technorati requires a valid API key for usage. To get your own API Key you first need to » create a new Technorati account, then visit the » API Key section.

Note: API Key limits

You can make up to 500 Technorati API calls per day, at no charge. Other usage limitations may apply, depending on the current Technorati API license.

Once you have a valid API key, you're ready to start using Zend_Service_Technorati.

Making Your First Query

In order to run a query, first you need a Zend_Service_Technorati instance with a valid API key. Then choose one of the available query methods, and call it providing required arguments.

Example #1 Sending your first query

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// search Technorati for PHP keyword
$resultSet = $technorati->search('PHP');

Each query method accepts an array of optional parameters that can be used to refine your query.

Example #2 Refining your query

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// filter your query including only results
// with some authority (Results from blogs with a handful of links)
$options = array('authority' => 'a4');

// search Technorati for PHP keyword
$resultSet = $technorati->search('PHP', $options);

A Zend_Service_Technorati instance is not a single-use object. That is, you don't need to create a new instance for each query call; simply use your current Zend_Service_Technorati object as long as you need it.

Example #3 Sending multiple queries with the same Zend_Service_Technorati instance

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// search Technorati for PHP keyword
$search = $technorati->search('PHP');

// get top tags indexed by Technorati
$topTags = $technorati->topTags();

Consuming Results

You can get one of two types of result object in response to a query.

The first group is represented by Zend_Service_Technorati_*ResultSet objects. A result set object is basically a collection of result objects. It extends the basic Zend_Service_Technorati_ResultSet class and implements the SeekableIterator PHP interface. The best way to consume a result set object is to loop over it with the PHP foreach statement.

Example #4 Consuming a result set object

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// search Technorati for PHP keyword
// $resultSet is an instance of Zend_Service_Technorati_SearchResultSet
$resultSet = $technorati->search('PHP');

// loop over all result objects
foreach ($resultSet as $result) {
    // $result is an instance of Zend_Service_Technorati_SearchResult
}

Because Zend_Service_Technorati_ResultSet implements the SeekableIterator interface, you can seek a specific result object using its position in the result collection.

Example #5 Seeking a specific result set object

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// search Technorati for PHP keyword
// $resultSet is an instance of Zend_Service_Technorati_SearchResultSet
$resultSet = $technorati->search('PHP');

// $result is an instance of Zend_Service_Technorati_SearchResult
$resultSet->seek(1);
$result = $resultSet->current();

Note:

SeekableIterator works as an array and counts positions starting from index 0. Fetching position number 1 means getting the second result in the collection.

The second group is represented by special standalone result objects. Zend_Service_Technorati_GetInfoResult, Zend_Service_Technorati_BlogInfoResult and Zend_Service_Technorati_KeyInfoResult act as wrappers for additional objects, such as Zend_Service_Technorati_Author and Zend_Service_Technorati_Weblog.

Example #6 Consuming a standalone result object

// create a new Zend_Service_Technorati
// with a valid API_KEY
$technorati = new Zend_Service_Technorati('VALID_API_KEY');

// get info about weppos author
$result = $technorati->getInfo('weppos');

$author = $result->getAuthor();
echo '

Blogs authored by ' . $author->getFirstName() . " " . $author->getLastName() . '

'; echo '
    '; foreach ($result->getWeblogs() as $weblog) { echo '
  1. ' . $weblog->getName() . '
  2. '; } echo "
";

Please read the Zend_Service_Technorati Classes section for further details about response classes.

Handling Errors

Each Zend_Service_Technorati query method throws a Zend_Service_Technorati_Exception exception on failure with a meaningful error message.

There are several reasons that may cause a Zend_Service_Technorati query to fail. Zend_Service_Technorati validates all parameters for any query request. If a parameter is invalid or it contains an invalid value, a new Zend_Service_Technorati_Exception exception is thrown. Additionally, the Technorati API interface could be temporally unavailable, or it could return a response that is not well formed.

You should always wrap a Technorati query with a try...catch block.

Example #7 Handling a Query Exception

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
try {
    $resultSet = $technorati->search('PHP');
} catch(Zend_Service_Technorati_Exception $e) {
    echo "An error occurred: " $e->getMessage();
}

Checking Your API Key Daily Usage

From time to time you probably will want to check your API key daily usage. By default Technorati limits your API usage to 500 calls per day, and an exception is returned by Zend_Service_Technorati if you try to use it beyond this limit. You can get information about your API key usage using the Zend_Service_Technorati::keyInfo() method.

Zend_Service_Technorati::keyInfo() returns a Zend_Service_Technorati_KeyInfoResult object. For full details please see the » API reference guide.

Example #8 Getting API key daily usage information

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
$key = $technorati->keyInfo();

echo "API Key: " . $key->getApiKey() . "
"; echo "Daily Usage: " . $key->getApiQueries() . "/" . $key->getMaxQueries() . "
";

Available Technorati Queries

Zend_Service_Technorati provides support for the following queries:

Technorati Cosmos

» Cosmos query lets you see what blogs are linking to a given URL. It returns a Zend_Service_Technorati_CosmosResultSet object. For full details please see Zend_Service_Technorati::cosmos() in the » API reference guide.

Example #9 Cosmos Query

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
$resultSet = $technorati->cosmos('http://devzone.zend.com/');

echo "

Reading " . $resultSet->totalResults() . " of " . $resultSet->totalResultsAvailable() . " available results

"; echo "
    "; foreach ($resultSet as $result) { echo "
  1. " . $result->getWeblog()->getName() . "
  2. "; } echo "
";

Technorati Search

The » Search query lets you see what blogs contain a given search string. It returns a Zend_Service_Technorati_SearchResultSet object. For full details please see Zend_Service_Technorati::search() in the » API reference guide.

Example #10 Search Query

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
$resultSet = $technorati->search('zend framework');

echo "

Reading " . $resultSet->totalResults() . " of " . $resultSet->totalResultsAvailable() . " available results

"; echo "
    "; foreach ($resultSet as $result) { echo "
  1. " . $result->getWeblog()->getName() . "
  2. "; } echo "
";

Technorati Tag

The » Tag query lets you see what posts are associated with a given tag. It returns a Zend_Service_Technorati_TagResultSet object. For full details please see Zend_Service_Technorati::tag() in the » API reference guide.

Example #11 Tag Query

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
$resultSet = $technorati->tag('php');

echo "

Reading " . $resultSet->totalResults() . " of " . $resultSet->totalResultsAvailable() . " available results

"; echo "
    "; foreach ($resultSet as $result) { echo "
  1. " . $result->getWeblog()->getName() . "
  2. "; } echo "
";

Technorati DailyCounts

The » DailyCounts query provides daily counts of posts containing the queried keyword. It returns a Zend_Service_Technorati_DailyCountsResultSet object. For full details please see Zend_Service_Technorati::dailyCounts() in the » API reference guide.

Example #12 DailyCounts Query

$technorati = new Zend_Service_Technorati('VALID_API_KEY');
$resultSet = $technorati->dailyCounts('php');

foreach ($resultSet as $result) {
    echo "
  • " . $result->getDate() . "(" . $result->getCount() . ")
  • "; } echo "";

    Technorati TopTags

    The » TopTags query provides information on top tags indexed by Technorati. It returns a Zend_Service_Technorati_TagsResultSet object. For full details please see Zend_Service_Technorati::topTags() in the » API reference guide.

    Example #13 TopTags Query

    $technorati = new Zend_Service_Technorati('VALID_API_KEY');
    $resultSet = $technorati->topTags();
    
    echo "

    Reading " . $resultSet->totalResults() . " of " . $resultSet->totalResultsAvailable() . " available results

    "; echo "
      "; foreach ($resultSet as $result) { echo "
    1. " . $result->getTag() . "
    2. "; } echo "
    ";

    Technorati BlogInfo

    The » BlogInfo query provides information on what blog, if any, is associated with a given URL. It returns a Zend_Service_Technorati_BlogInfoResult object. For full details please see Zend_Service_Technorati::blogInfo() in the » API reference guide.

    Example #14 BlogInfo Query

    $technorati = new Zend_Service_Technorati('VALID_API_KEY');
    $result = $technorati->blogInfo('http://devzone.zend.com/');
    
    echo '

    ' . $result->getWeblog()->getName() . '

    ';

    Technorati BlogPostTags

    The » BlogPostTags query provides information on the top tags used by a specific blog. It returns a Zend_Service_Technorati_TagsResultSet object. For full details please see Zend_Service_Technorati::blogPostTags() in the » API reference guide.

    Example #15 BlogPostTags Query

    $technorati = new Zend_Service_Technorati('VALID_API_KEY');
    $resultSet = $technorati->blogPostTags('http://devzone.zend.com/');
    
    echo "

    Reading " . $resultSet->totalResults() . " of " . $resultSet->totalResultsAvailable() . " available results

    "; echo "
      "; foreach ($resultSet as $result) { echo "
    1. " . $result->getTag() . "
    2. "; } echo "
    ";

    Technorati GetInfo

    The » GetInfo query tells you things that Technorati knows about a member. It returns a Zend_Service_Technorati_GetInfoResult object. For full details please see Zend_Service_Technorati::getInfo() in the » API reference guide.

    Example #16 GetInfo Query

    $technorati = new Zend_Service_Technorati('VALID_API_KEY');
    $result = $technorati->getInfo('weppos');
    
    $author = $result->getAuthor();
    echo "

    Blogs authored by " . $author->getFirstName() . " " . $author->getLastName() . "

    "; echo "
      "; foreach ($result->getWeblogs() as $weblog) { echo "
    1. " . $weblog->getName() . "
    2. "; } echo "
    ";

    Technorati KeyInfo

    The KeyInfo query provides information on daily usage of an API key. It returns a Zend_Service_Technorati_KeyInfoResult object. For full details please see Zend_Service_Technorati::keyInfo() in the » API reference guide.

    Zend_Service_Technorati Classes

    The following classes are returned by the various Technorati queries. Each Zend_Service_Technorati_*ResultSet class holds a type-specific result set which can be easily iterated, with each result being contained in a type result object. All result set classes extend Zend_Service_Technorati_ResultSet class and implement the SeekableIterator interface, allowing for easy iteration and seeking to a specific result.

    Note:

    Zend_Service_Technorati_GetInfoResult, Zend_Service_Technorati_BlogInfoResult and Zend_Service_Technorati_KeyInfoResult represent exceptions to the above because they don't belong to a result set and they don't implement any interface. They represent a single response object and they act as a wrapper for additional Zend_Service_Technorati objects, such as Zend_Service_Technorati_Author and Zend_Service_Technorati_Weblog.

    The Zend_Service_Technorati library includes additional convenient classes representing specific response objects. Zend_Service_Technorati_Author represents a single Technorati account, also known as a blog author or blogger. Zend_Service_Technorati_Weblog represents a single weblog object, along with all specific weblog properties such as feed URLs or blog name. For full details please see Zend_Service_Technorati in the » API reference guide.

    Zend_Service_Technorati_ResultSet

    Zend_Service_Technorati_ResultSet is the most essential result set. The scope of this class is to be extended by a query-specific child result set class, and it should never be used to initialize a standalone object. Each of the specific result sets represents a collection of query-specific Zend_Service_Technorati_Result objects.

    Zend_Service_Technorati_ResultSet implements the PHP SeekableIterator interface, and you can iterate all result objects via the PHP foreach statement.

    Example #17 Iterating result objects from a resultset collection

    // run a simple query
    $technorati = new Zend_Service_Technorati('VALID_API_KEY');
    $resultSet = $technorati->search('php');
    
    // $resultSet is now an instance of
    // Zend_Service_Technorati_SearchResultSet
    // it extends Zend_Service_Technorati_ResultSet
    foreach ($resultSet as $result) {
        // do something with your
        // Zend_Service_Technorati_SearchResult object
    }

    Zend_Service_Technorati_CosmosResultSet

    Zend_Service_Technorati_CosmosResultSet represents a Technorati Cosmos query result set.

    Note:

    Zend_Service_Technorati_CosmosResultSet extends Zend_Service_Technorati_ResultSet.

    Zend_Service_Technorati_SearchResultSet

    Zend_Service_Technorati_SearchResultSet represents a Technorati Search query result set.

    Note:

    Zend_Service_Technorati_SearchResultSet extends Zend_Service_Technorati_ResultSet.

    Zend_Service_Technorati_TagResultSet

    Zend_Service_Technorati_TagResultSet represents a Technorati Tag query result set.

    Note:

    Zend_Service_Technorati_TagResultSet extends Zend_Service_Technorati_ResultSet.

    Zend_Service_Technorati_DailyCountsResultSet

    Zend_Service_Technorati_DailyCountsResultSet represents a Technorati DailyCounts query result set.

    Note:

    Zend_Service_Technorati_DailyCountsResultSet extends Zend_Service_Technorati_ResultSet.

    Zend_Service_Technorati_TagsResultSet

    Zend_Service_Technorati_TagsResultSet represents a Technorati TopTags or BlogPostTags queries result set.

    Note:

    Zend_Service_Technorati_TagsResultSet extends Zend_Service_Technorati_ResultSet.

    Zend_Service_Technorati_Result

    Zend_Service_Technorati_Result is the most essential result object. The scope of this class is to be extended by a query specific child result class, and it should never be used to initialize a standalone object.

    Zend_Service_Technorati_CosmosResult

    Zend_Service_Technorati_CosmosResult represents a single Technorati Cosmos query result object. It is never returned as a standalone object, but it always belongs to a valid Zend_Service_Technorati_CosmosResultSet object.

    Note:

    Zend_Service_Technorati_CosmosResult extends Zend_Service_Technorati_Result.

    Zend_Service_Technorati_SearchResult

    Zend_Service_Technorati_SearchResult represents a single Technorati Search query result object. It is never returned as a standalone object, but it always belongs to a valid Zend_Service_Technorati_SearchResultSet object.

    Note:

    Zend_Service_Technorati_SearchResult extends Zend_Service_Technorati_Result.

    Zend_Service_Technorati_TagResult

    Zend_Service_Technorati_TagResult represents a single Technorati Tag query result object. It is never returned as a standalone object, but it always belongs to a valid Zend_Service_Technorati_TagResultSet object.

    Note:

    Zend_Service_Technorati_TagResult extends Zend_Service_Technorati_Result.

    Zend_Service_Technorati_DailyCountsResult

    Zend_Service_Technorati_DailyCountsResult represents a single Technorati DailyCounts query result object. It is never returned as a standalone object, but it always belongs to a valid Zend_Service_Technorati_DailyCountsResultSet object.

    Note:

    Zend_Service_Technorati_DailyCountsResult extends Zend_Service_Technorati_Result.

    Zend_Service_Technorati_TagsResult

    Zend_Service_Technorati_TagsResult represents a single Technorati TopTags or BlogPostTags query result object. It is never returned as a standalone object, but it always belongs to a valid Zend_Service_Technorati_TagsResultSet object.

    Note:

    Zend_Service_Technorati_TagsResult extends Zend_Service_Technorati_Result.

    Zend_Service_Technorati_GetInfoResult

    Zend_Service_Technorati_GetInfoResult represents a single Technorati GetInfo query result object.

    Zend_Service_Technorati_BlogInfoResult

    Zend_Service_Technorati_BlogInfoResult represents a single Technorati BlogInfo query result object.

    Zend_Service_Technorati_KeyInfoResult

    Zend_Service_Technorati_KeyInfoResult represents a single Technorati KeyInfo query result object. It provides information about your Technorati API Key daily usage.

    Previous Next
    Introduction to Zend Framework
    Overview
    Installation
    Zend_Acl
    Introduction
    Refining Access Controls
    Advanced Usage
    Zend_Amf
    Introduction
    Zend_Amf_Server
    Zend_Application
    Introduction
    Zend_Application Quick Start
    Theory of Operation
    Examples
    Core Functionality
    Available Resource Plugins
    Zend_Auth
    Introduction
    Database Table Authentication
    Digest Authentication
    HTTP Authentication Adapter
    LDAP Authentication
    Open ID Authentication
    Zend_Cache
    Introduction
    The Theory of Caching
    Zend_Cache Frontends
    Zend_Cache Backends
    Zend_Captcha
    Introduction
    Captcha Operation
    CAPTCHA Adapters
    Zend_CodeGenerator
    Introduction
    Zend_CodeGenerator Examples
    Zend_CodeGenerator Reference
    Zend_Config
    Introduction
    Theory of Operation
    Zend_Config_Ini
    Zend_Config_Xml
    Zend_Config_Writer
    Zend_Config_Writer
    Zend_Console_Getopt
    Introduction
    Declaring Getopt Rules
    Fetching Options and Arguments
    Configuring Zend_Console_Getopt
    Zend_Controller
    Zend_Controller Quick Start
    Zend_Controller Basics
    The Front Controller
    The Request Object
    The Standard Router
    The Dispatcher
    Action Controllers
    Action Helpers
    The Response Object
    Plugins
    Using a Conventional Modular Directory Structure
    MVC Exceptions
    Migrating from Previous Versions
    Zend_Currency
    Introduction to Zend_Currency
    How to Work with Currencies
    Migrating from Previous Versions
    Zend_Date
    Introduction
    Theory of Operation
    Basic Methods
    Zend_Date API Overview
    Creation of Dates
    Constants for General Date Functions
    Working Examples
    Zend_Db
    Zend_Db_Adapter
    Zend_Db_Statement
    Zend_Db_Profiler
    Zend_Db_Select
    Zend_Db_Table
    Zend_Db_Table_Row
    Zend_Db_Table_Rowset
    Zend_Db_Table Relationships
    Zend_Db_Table_Definition
    Zend_Debug
    Dumping Variables
    Zend_Dojo
    Introduction
    Zend_Dojo_Data: dojo.data Envelopes
    Dojo View Helpers
    Dojo Form Elements and Decorators
    Zend_Dojo build layer support
    Zend_Dom
    Introduction
    Zend_Dom_Query
    Zend_Exception
    Using Exceptions
    Zend_Feed
    Introduction
    Importing Feeds
    Retrieving Feeds from Web Pages
    Consuming an RSS Feed
    Consuming an Atom Feed
    Consuming a Single Atom Entry
    Modifying Feed and Entry structures
    Custom Feed and Entry Classes
    Zend_Feed_Reader
    Zend_File
    Zend_File_Transfer
    Validators for Zend_File_Transfer
    Filters for Zend_File_Transfer
    Migrating from previous versions
    Zend_Filter
    Introduction
    Standard Filter Classes
    Filter Chains
    Writing Filters
    Zend_Filter_Input
    Zend_Filter_Inflector
    Migrating from Previous Versions
    Zend_Form
    Zend_Form
    Zend_Form Quick Start
    Creating Form Elements Using Zend_Form_Element
    Creating Forms Using Zend_Form
    Creating Custom Form Markup Using Zend_Form_Decorator
    Standard Form Elements Shipped With Zend Framework
    Standard Form Decorators Shipped With Zend Framework
    Internationalization of Zend_Form
    Advanced Zend_Form Usage
    Zend_Gdata
    Introduction
    Authenticating with AuthSub
    Using the Book Search Data API
    Authenticating with ClientLogin
    Using Google Calendar
    Using Google Documents List Data API
    Using Google Health
    Using Google Spreadsheets
    Using Google Apps Provisioning
    Using Google Base
    Using Picasa Web Albums
    Using the YouTube Data API
    Catching Gdata Exceptions
    Zend_Http
    Introduction
    Zend_Http_Client - Advanced Usage
    Zend_Http_Client - Connection Adapters
    Migrating from previous versions
    Zend_Http_Cookie and Zend_Http_CookieJar
    Zend_Http_Response
    Zend_InfoCard
    Introduction
    Zend_Json
    Introduction
    Basic Usage
    Advanced Usage of Zend_Json
    XML to JSON conversion
    Zend_Json_Server - JSON-RPC server
    Zend_Layout
    Introduction
    Zend_Layout Quick Start
    Zend_Layout Configuration Options
    Zend_Layout Advanced Usage
    Zend_Ldap
    Introduction
    API overview
    Usage Scenarios
    Tools
    Object oriented access to the LDAP tree using Zend_Ldap_Node
    Getting information from the LDAP server
    Serializing LDAP data to and from LDIF
    Zend_Loader
    Loading Files and Classes Dynamically
    The Autoloader
    Resource Autoloaders
    Loading Plugins
    Zend_Locale
    Introduction
    Using Zend_Locale
    Normalization and Localization
    Working with Dates and Times
    Supported locales
    Migrating from previous versions
    Zend_Log
    Overview
    Writers
    Formatters
    Filters
    Zend_Mail
    Introduction
    Sending via SMTP
    Sending Multiple Mails per SMTP Connection
    Using Different Transports
    HTML E-Mail
    Attachments
    Adding Recipients
    Controlling the MIME Boundary
    Additional Headers
    Character Sets
    Encoding
    SMTP Authentication
    Securing SMTP Transport
    Reading Mail Messages
    Zend_Measure
    Introduction
    Creation of Measurements
    Outputting measurements
    Manipulating Measurements
    Types of measurements
    Zend_Memory
    Overview
    Memory Manager
    Memory Objects
    Zend_Mime
    Zend_Mime
    Zend_Mime_Message
    Zend_Mime_Part
    Zend_Navigation
    Introduction
    Pages
    Containers
    Migrating from Previous Versions
    Zend_OpenId
    Introduction
    Zend_OpenId_Consumer Basics
    Zend_OpenId_Provider
    Zend_Paginator
    Introduction
    Usage
    Configuration
    Advanced usage
    Zend_Pdf
    Introduction
    Creating and Loading PDF Documents
    Save Changes to PDF Documents
    Working with Pages
    Drawing
    Interactive Features
    Document Info and Metadata
    Zend_Pdf module usage example
    Zend_ProgressBar
    Zend_ProgressBar
    Zend_Queue
    Introduction
    Example usage
    Framework
    Adapters
    Customizing Zend_Queue
    Stomp
    Zend_Reflection
    Introduction
    Zend_Reflection Examples
    Zend_Reflection Reference
    Zend_Registry
    Using the Registry
    Zend_Rest
    Introduction
    Zend_Rest_Client
    Zend_Rest_Server
    Zend_Search_Lucene
    Overview
    Building Indexes
    Searching an Index
    Query Language
    Query Construction API
    Character Set
    Extensibility
    Interoperating with Java Lucene
    Advanced
    Best Practices
    Zend_Server
    Introduction
    Zend_Server_Reflection
    Zend_Service
    Introduction
    Zend_Service_Akismet
    Zend_Service_Amazon
    Zend_Service_Amazon_Ec2
    Zend_Service_Amazon_Ec2: Instances
    Zend_Service_Amazon_Ec2: Windows Instances
    Zend_Service_Amazon_Ec2: Reserved Instances
    Zend_Service_Amazon_Ec2: CloudWatch Monitoring
    Zend_Service_Amazon_Ec2: Amazon Machine Images (AMI)
    Zend_Service_Amazon_Ec2: Elastic Block Stroage (EBS)
    Zend_Service_Amazon_Ec2: Elastic IP Addresses
    Zend_Service_Amazon_Ec2: Keypairs
    Zend_Service_Amazon_Ec2: Regions and Availability Zones
    Zend_Service_Amazon_Ec2: Security Groups
    Zend_Service_Amazon_S3
    Zend_Service_Amazon_Sqs
    Zend_Service_Audioscrobbler
    Zend_Service_Delicious
    Zend_Service_Flickr
    Zend_Service_Nirvanix
    Zend_Service_ReCaptcha
    Zend_Service_Simpy
    Introduction
    Zend_Service_StrikeIron
    Zend_Service_StrikeIron: Bundled Services
    Zend_Service_StrikeIron: Advanced Uses
    Zend_Service_Technorati
    Zend_Service_Twitter
    Zend_Service_Yahoo
    Zend_Session
    Introduction
    Basic Usage
    Advanced Usage
    Global Session Management
    Zend_Session_SaveHandler_DbTable
    Zend_Soap
    Zend_Soap_Server
    Zend_Soap_Client
    WSDL Accessor
    AutoDiscovery
    Zend_Tag
    Introduction
    Zend_Tag_Cloud
    Zend_Test
    Introduction
    Zend_Test_PHPUnit
    Zend_Test_PHPUnit_Db
    Zend_Text
    Zend_Text_Figlet
    Zend_Text_Table
    Zend_TimeSync
    Introduction
    Working with Zend_TimeSync
    Zend_Tool_Framework
    Introduction
    Using the CLI Tool
    Architecture
    Creating Providers to use with Zend_Tool_Framework
    Shipped System Providers
    Extending and Configuring Zend_Tool_Framework
    Zend_Tool_Project
    Introduction
    Create A Project
    Zend Tool Project Providers
    Zend_Translate
    Introduction
    Adapters for Zend_Translate
    Using Translation Adapters
    Creating source files
    Additional features for translation
    Plural notations for Translation
    Migrating from previous versions
    Zend_Uri
    Zend_Uri
    Zend_Validate
    Introduction
    Standard Validation Classes
    Validator Chains
    Writing Validators
    Validation Messages
    Zend_Version
    Getting the Zend Framework Version
    Zend_View
    Introduction
    Controller Scripts
    View Scripts
    View Helpers
    Zend_View_Abstract
    Migrating from Previous Versions
    Zend_Wildfire
    Zend_Wildfire
    Zend_XmlRpc
    Introduction
    Zend_XmlRpc_Client
    Zend_XmlRpc_Server
    Zend Framework Requirements
    Introduction
    Zend Framework Coding Standard for PHP
    Overview
    PHP File Formatting
    Naming Conventions
    Coding Style
    Zend Framework Documentation Standard
    Overview
    Documentation File Formatting
    Recommendations
    Recommended Project Structure for Zend Framework MVC Applications
    Overview
    Recommended Project Directory Structure
    Module Structure
    Rewrite Configuration Guide
    Zend Framework Performance Guide
    Introduction
    Class Loading
    Zend_Db Performance
    Internationalization (i18n) and Localization (l10n)
    View Rendering
    Copyright Information