Programmer's Reference Guide

Zend Framework

2008-12-02


Table of Contents

1. Introduction to Zend Framework
1.1. Overview
1.2. Installation
2. Zend_Acl
2.1. Introduction
2.1.1. About Resources
2.1.2. About Roles
2.1.3. Creating the Access Control List (ACL)
2.1.4. Registering Roles
2.1.5. Defining Access Controls
2.1.6. Querying the ACL
2.2. Refining Access Controls
2.2.1. Precise Access Controls
2.2.2. Removing Access Controls
2.3. Advanced Usage
2.3.1. Storing ACL Data for Persistence
2.3.2. Writing Conditional ACL Rules with Assertions
3. Zend_Amf
3.1. Introduction
3.2. Zend_Amf_Server
3.2.1. Connecting to the server from Flex
3.2.2. Error Handling
3.2.3. AMF Responses
3.2.4. Typed Objects
3.2.5. Connecting to the server from Flash
4. Zend_Auth
4.1. Introduction
4.1.1. Adapters
4.1.2. Results
4.1.3. Identity Persistence
4.1.3.1. Default Persistence in the PHP Session
4.1.3.2. Implementing Customized Storage
4.1.4. Using Zend_Auth
4.2. Database Table Authentication
4.2.1. Introduction
4.2.2. Advanced Use: Persisting a DbTable Result Object
4.2.3. Advanced Usage By Example
4.3. Digest Authentication
4.3.1. Introduction
4.3.2. Specifics
4.3.3. Identity
4.4. HTTP Authentication Adapter
4.4.1. Introduction
4.4.2. Design Overview
4.4.3. Configuration Options
4.4.4. Resolvers
4.4.4.1. File Resolver
4.4.5. Basic Usage
4.5. LDAP Authentication
4.5.1. Introduction
4.5.2. Usage
4.5.3. The API
4.5.4. Server Options
4.5.5. Collecting Debugging Messages
4.5.6. Common Options for Specific Servers
4.5.6.1. Options for Active Directory
4.5.6.2. Options for OpenLDAP
4.6. Open ID Authentication
4.6.1. Introduction
4.6.2. Specifics
5. Zend_Cache
5.1. Introduction
5.2. The theory of caching
5.2.1. The Zend_Cache factory method
5.2.2. Tagging records
5.2.3. Cleaning the cache
5.3. Zend_Cache frontends
5.3.1. Zend_Cache_Core
5.3.1.1. Introduction
5.3.1.2. Available options
5.3.1.3. Examples
5.3.2. Zend_Cache_Frontend_Output
5.3.2.1. Introduction
5.3.2.2. Available options
5.3.2.3. Examples
5.3.3. Zend_Cache_Frontend_Function
5.3.3.1. Introduction
5.3.3.2. Available options
5.3.3.3. Examples
5.3.4. Zend_Cache_Frontend_Class
5.3.4.1. Introduction
5.3.4.2. Available options
5.3.4.3. Examples
5.3.5. Zend_Cache_Frontend_File
5.3.5.1. Introduction
5.3.5.2. Available options
5.3.5.3. Examples
5.3.6. Zend_Cache_Frontend_Page
5.3.6.1. Introduction
5.3.6.2. Available options
5.3.6.3. Examples
5.3.6.4. The specific cancel method
5.4. Zend_Cache backends
5.4.1. Zend_Cache_Backend_File
5.4.2. Zend_Cache_Backend_Sqlite
5.4.3. Zend_Cache_Backend_Memcached
5.4.4. Zend_Cache_Backend_Apc
5.4.5. Zend_Cache_Backend_Xcache
5.4.6. Zend_Cache_Backend_ZendPlatform
5.4.7. Zend_Cache_Backend_TwoLevels
6. Zend_Captcha
6.1. Introduction
6.2. Captcha Operation
6.3. Captcha Adapters
6.3.1. Zend_Captcha_Word
6.3.2. Zend_Captcha_Dumb
6.3.3. Zend_Captcha_Figlet
6.3.4. Zend_Captcha_Image
6.3.5. Zend_Captcha_ReCaptcha
7. Zend_Config
7.1. Introduction
7.2. Theory of Operation
7.3. Zend_Config_Ini
7.4. Zend_Config_Xml
8. Zend_Config_Writer
8.1. Zend_Config_Writer
9. Zend_Console_Getopt
9.1. Introduction to Getopt
9.2. Declaring Getopt Rules
9.2.1. Declaring Options with the Short Syntax
9.2.2. Declaring Options with the Long Syntax
9.3. Fetching Options and Arguments
9.3.1. Handling Getopt Exceptions
9.3.2. Fetching Options by Name
9.3.3. Reporting Options
9.3.4. Fetching Non-option Arguments
9.4. Configuring Zend_Console_Getopt
9.4.1. Adding Option Rules
9.4.2. Adding Help Messages
9.4.3. Adding Option Aliases
9.4.4. Adding Argument Lists
9.4.5. Adding Configuration
10. Zend_Controller
10.1. Zend_Controller Quick Start
10.1.1. Introduction
10.1.2. Quick Start
10.1.2.1. Create your filesystem layout
10.1.2.2. Set your document root
10.1.2.3. Create your rewrite rules
10.1.2.4. Create your bootstrap file
10.1.2.5. Create your default action controller
10.1.2.6. Create your view script
10.1.2.7. Create your error controller
10.1.2.8. View the site!
10.2. Zend_Controller Basics
10.3. The Front Controller
10.3.1. Overview
10.3.2. Primary Methods
10.3.2.1. getInstance()
10.3.2.2. setControllerDirectory() and addControllerDirectory
10.3.2.3. addModuleDirectory() and getModuleDirectory()
10.3.2.4. dispatch()
10.3.2.5. run()
10.3.3. Environmental Accessor Methods
10.3.4. Front Controller Parameters
10.3.5. Subclassing the Front Controller
10.4. The Request Object
10.4.1. Introduction
10.4.2. HTTP Requests
10.4.2.1. Accessing Request Data
10.4.2.2. Base Url and Subdirectories
10.4.2.3. Determining the Request Method
10.4.2.4. Detecting AJAX Requests
10.4.3. Subclassing the Request Object
10.5. The Standard Router
10.5.1. Introduction
10.5.2. Using a router
10.5.3. Basic Rewrite Router operation
10.5.4. Default routes
10.5.5. Base URL and subdirectories
10.5.6. Global parameters
10.5.7. Route Types
10.5.7.1. Zend_Controller_Router_Route
10.5.7.1.1. Variable defaults
10.5.7.1.2. Variable requirements
10.5.7.2. Zend_Controller_Router_Route_Static
10.5.7.3. Zend_Controller_Router_Route_Regex
10.5.7.4. Zend_Controller_Router_Route_Hostname
10.5.7.4.1. Hostname routes via Zend_Config
10.5.8. Using Zend_Config with the RewriteRouter
10.5.9. Subclassing the Router
10.6. The Dispatcher
10.6.1. Overview
10.6.2. Subclassing the Dispatcher
10.7. Action Controllers
10.7.1. Introduction
10.7.2. Object initialization
10.7.3. Pre- and Post-Dispatch Hooks
10.7.4. Accessors
10.7.5. View Integration
10.7.5.1. View Initialization
10.7.5.2. Rendering Views
10.7.6. Utility Methods
10.7.7. Subclassing the Action Controller
10.8. Action Helpers
10.8.1. Introduction
10.8.2. Helper Initialization
10.8.3. The Helper Broker
10.8.4. Built-in Action Helpers
10.8.4.1. ActionStack
10.8.4.2. AutoComplete
10.8.4.2.1. AutoCompletion with Dojo
10.8.4.2.2. AutoCompletion with Scriptaculous
10.8.4.3. ContextSwitch and AjaxContext
10.8.4.3.1. Default Contexts Available
10.8.4.3.2. Creating Custom Contexts
10.8.4.3.3. Setting Contexts Per Action
10.8.4.3.4. Initializing Context Switching
10.8.4.3.5. Additional Functionality
10.8.4.3.6. AjaxContext Functionality
10.8.4.4. FlashMessenger
10.8.4.4.1. Introduction
10.8.4.4.2. Basic Usage Example
10.8.4.5. JSON
10.8.4.6. Redirector
10.8.4.6.1. Introduction
10.8.4.6.2. Basic Usage Examples
10.8.4.7. ViewRenderer
10.8.4.7.1. Introduction
10.8.4.7.2. API
10.8.4.7.3. Basic Usage Examples
10.8.4.7.4. Advanced Usage Examples
10.8.5. Writing Your Own Helpers
10.9. The Response Object
10.9.1. Usage
10.9.2. Manipulating Headers
10.9.3. Named Segments
10.9.4. Testing for Exceptions in the Response Object
10.9.5. Subclassing the Response Object
10.10. Plugins
10.10.1. Introduction
10.10.2. Writing Plugins
10.10.3. Using Plugins
10.10.4. Retrieving and Manipulating Plugins
10.10.5. Plugins Included in the Standard Distribution
10.10.5.1. ActionStack
10.10.5.2. Zend_Controller_Plugin_ErrorHandler
10.10.5.2.1. Using the ErrorHandler as a 404 Handler
10.10.5.2.2. Handling Previously Rendered Output
10.10.5.2.3. Plugin Usage Examples
10.10.5.2.4. Error Controller Example
10.11. Using a Conventional Modular Directory Structure
10.11.1. Introduction
10.11.2. Specifying Module Controller Directories
10.11.3. Routing to modules
10.11.4. Module or Global Default Controller
10.12. MVC Exceptions
10.12.1. Introduction
10.12.2. How can you handle exceptions?
10.12.3. MVC Exceptions You May Encounter
10.13. Migrating from Previous Versions
10.13.1. Migrating from 1.6.x to 1.7.0 or newer
10.13.1.1. Dispatcher Interface changes
10.13.2. Migrating from 1.5.x to 1.6.0 or newer
10.13.2.1. Dispatcher Interface changes
10.13.3. Migrating from 1.0.x to 1.5.0 or newer
10.13.4. Migrating from 0.9.3 to 1.0.0RC1 or newer
10.13.5. Migrating from 0.9.2 to 0.9.3 or newer
10.13.6. Migrating from 0.6.0 to 0.8.0 or newer
10.13.7. Migrating from 0.2.0 or before to 0.6.0
11. Zend_Currency
11.1. Introduction to Zend_Currency
11.1.1. Why use Zend_Currency?
11.2. How to Work with Currencies
11.2.1. Creating and Output String from a Currency
11.2.2. Changing the Format of a Currency
11.2.3. Reference Methods for Zend_Currency
11.2.4. Settings new default values
11.2.5. Zend_Currency Performance Optimization
11.3. Migrating from Previous Versions
11.3.1. Migrating from 1.0.2 to 1.0.3 or newer
12. Zend_Date
12.1. Introduction
12.1.1. Always Set a Default Timezone
12.1.2. Why Use Zend_Date?
12.2. Theory of Operation
12.2.1. Internals
12.3. Basic Methods
12.3.1. The current date
12.3.2. Zend_Date by Example
12.3.2.1. Output a Date
12.3.2.2. Setting a Date
12.3.2.3. Adding and Subtracting Dates
12.3.2.4. Comparison of dates
12.4. Zend_Date API Overview
12.4.1. Zend_Date Options
12.4.1.1. Selecting the date format type
12.4.1.2. DST and Date Math
12.4.1.3. Month Calculations
12.4.1.4. Speed up date localization and normalization with Zend_Cache
12.4.1.5. Receiving syncronised timestamps with Zend_TimeSync
12.4.2. Working with Date Values
12.4.3. Basic Zend_Date Operations Common to Many Date Parts
12.4.3.1. List of Date Parts
12.4.3.2. List of Date Operations
12.4.4. Comparing Dates
12.4.5. Getting Dates and Date Parts
12.4.6. Working with Fractions of Seconds
12.4.7. Sunrise / Sunset
12.5. Creation of dates
12.5.1. Create the actual date
12.5.2. Create a date from database
12.5.3. Create dates from an array
12.6. Constants for General Date Functions
12.6.1. Using Constants
12.6.2. List of All Constants
12.6.3. Self-Defined OUTPUT Formats with ISO
12.6.4. Self-defined OUTPUT formats using PHP's date() format specifiers
12.7. Working examples
12.7.1. Checking dates
12.7.2. Sunrise and Sunset
12.7.3. Timezones
13. Zend_Db
13.1. Zend_Db_Adapter
13.1.1. Connecting to a Database using an Adapter
13.1.1.1. Using a Zend_Db Adapter Constructor
13.1.1.2. Using the Zend_Db Factory
13.1.1.3. Using Zend_Config with the Zend_Db Factory
13.1.1.4. Adapter Parameters
13.1.1.5. Managing Lazy Connections
13.1.2. The example database
13.1.3. Reading Query Results
13.1.3.1. Fetching a Complete Result Set
13.1.3.2. Changing the Fetch Mode
13.1.3.3. Fetching a Result Set as an Associative Array
13.1.3.4. Fetching a Single Column from a Result Set
13.1.3.5. Fetching Key-Value Pairs from a Result Set
13.1.3.6. Fetching a Single Row from a Result Set
13.1.3.7. Fetching a Single Scalar from a Result Set
13.1.4. Writing Changes to the Database
13.1.4.1. Inserting Data
13.1.4.2. Retrieving a Generated Value
13.1.4.3. Updating Data
13.1.4.4. Deleting Data
13.1.5. Quoting Values and Identifiers
13.1.5.1. Using quote()
13.1.5.2. Using quoteInto()
13.1.5.3. Using quoteIdentifier()
13.1.6. Controlling Database Transactions
13.1.7. Listing and Describing Tables
13.1.8. Closing a Connection
13.1.9. Running Other Database Statements
13.1.10. Notes on Specific Adapters
13.1.10.1. IBM DB2
13.1.10.2. MySQLi
13.1.10.3. Oracle
13.1.10.4. PDO for IBM DB2 and Informix Dynamic Server (IDS)
13.1.10.5. PDO Microsoft SQL Server
13.1.10.6. PDO MySQL
13.1.10.7. PDO Oracle
13.1.10.8. PDO PostgreSQL
13.1.10.9. PDO SQLite
13.1.10.10. Firebird/Interbase
13.2. Zend_Db_Statement
13.2.1. Creating a Statement
13.2.2. Executing a Statement
13.2.3. Fetching Results from a SELECT Statement
13.2.3.1. Fetching a Single Row from a Result Set
13.2.3.2. Fetching a Complete Result Set
13.2.3.3. Changing the Fetch Mode
13.2.3.4. Fetching a Single Column from a Result Set
13.2.3.5. Fetching a Row as an Object
13.3. Zend_Db_Profiler
13.3.1. Introduction
13.3.2. Using the Profiler
13.3.3. Advanced Profiler Usage
13.3.3.1. Filter by query elapsed time
13.3.3.2. Filter by query type
13.3.3.3. Retrieve profiles by query type
13.3.4. Specialized Profilers
13.3.4.1. Profiling with Firebug
13.4. Zend_Db_Select
13.4.1. Overview of the Select Object
13.4.2. Creating a Select Object
13.4.3. Building Select queries
13.4.3.1. Adding a FROM clause
13.4.3.2. Adding Columns
13.4.3.3. Adding Expression Columns
13.4.3.4. Adding columns to an existing FROM or JOIN table
13.4.3.5. Adding Another Table to the Query with JOIN
13.4.3.6. Adding a WHERE Clause
13.4.3.7. Adding a GROUP BY Clause
13.4.3.8. Adding a HAVING Clause
13.4.3.9. Adding an ORDER BY Clause
13.4.3.10. Adding a LIMIT Clause
13.4.3.11. Adding the DISTINCT Query Modifier
13.4.3.12. Adding the FOR UPDATE Query Modifier
13.4.4. Executing Select Queries
13.4.4.1. Executing Select Queries from the Db Adapter
13.4.4.2. Executing Select Queries from the Object
13.4.4.3. Converting a Select Object to a SQL String
13.4.5. Other methods
13.4.5.1. Retrieving Parts of the Select Object
13.4.5.2. Resetting Parts of the Select Object
13.5. Zend_Db_Table
13.5.1. Introduction to Table Class
13.5.2. Defining a Table Class
13.5.2.1. Defining the Table Name and Schema
13.5.2.2. Defining the Table Primary Key
13.5.2.3. Overriding Table Setup Methods
13.5.2.4. Table initialization
13.5.3. Creating an Instance of a Table
13.5.3.1. Specifying a Database Adapter
13.5.3.2. Setting a Default Database Adapter
13.5.3.3. Storing a Database Adapter in the Registry
13.5.4. Inserting Rows to a Table
13.5.4.1. Using a Table with an Auto-incrementing Key
13.5.4.2. Using a Table with a Sequence
13.5.4.3. Using a Table with a Natural Key
13.5.5. Updating Rows in a Table
13.5.6. Deleting Rows from a Table
13.5.7. Finding Rows by Primary Key
13.5.8. Querying for a Set of Rows
13.5.8.1. Select API
13.5.8.2. Fetching a rowset
13.5.8.3. Advanced usage
13.5.9. Querying for a Single Row
13.5.10. Retrieving Table Metadata Information
13.5.11. Caching Table Metadata
13.5.11.1. Hardcoding Table Metadata
13.5.12. Customizing and Extending a Table Class
13.5.12.1. Using Custom Row or Rowset Classes
13.5.12.2. Defining Custom Logic for Insert, Update, and Delete
13.5.12.3. Define Custom Search Methods in Zend_Db_Table
13.5.12.4. Define Inflection in Zend_Db_Table
13.6. Zend_Db_Table_Row
13.6.1. Introduction
13.6.2. Fetching a Row
13.6.2.1. Reading column values from a row
13.6.2.2. Retrieving Row Data as an Array
13.6.2.3. Fetching data from related tables
13.6.3. Writing rows to the database
13.6.3.1. Changing column values in a row
13.6.3.2. Inserting a new row
13.6.3.3. Changing values in multiple columns
13.6.3.4. Deleting a row
13.6.4. Serializing and unserializing rows
13.6.4.1. Serializing a Row
13.6.4.2. Unserializing Row Data
13.6.4.3. Reactivating a Row as Live Data
13.6.5. Extending the Row class
13.6.5.1. Row initialization
13.6.5.2. Defining Custom Logic for Insert, Update, and Delete in Zend_Db_Table_Row
13.6.5.3. Define Inflection in Zend_Db_Table_Row
13.7. Zend_Db_Table_Rowset
13.7.1. Introduction
13.7.2. Fetching a Rowset
13.7.3. Retrieving Rows from a Rowset
13.7.4. Retrieving a Rowset as an Array
13.7.5. Serializing and Unserializing a Rowset
13.7.6. Extending the Rowset class
13.8. Zend_Db_Table Relationships
13.8.1. Introduction
13.8.2. Defining Relationships
13.8.3. Fetching a Dependent Rowset
13.8.4. Fetching a Parent Row
13.8.5. Fetching a Rowset via a Many-to-many Relationship
13.8.6. Cascading Write Operations
13.8.6.1. Notes Regarding Cascading Operations
14. Zend_Debug
14.1. Dumping Variables
15. Zend_Dojo
15.1. Introduction
15.2. Zend_Dojo_Data: dojo.data Envelopes
15.2.1. Zend_Dojo_Data Usage
15.2.2. Adding metadata to your containers
15.2.3. Advanced Use Cases
15.2.3.1. Available Methods
15.3. Dojo View Helpers
15.3.1. dojo() View Helper
15.3.1.1. Programmatic and Declarative Usage of Dojo
15.3.1.2. Themes
15.3.1.3. Using Layers (Custom Builds)
15.3.1.4. Methods Available
15.3.2. Dijit-Specific View Helpers
15.3.2.1. Dijit Layout Elements
15.3.2.2. Dijit Form Elements
15.4. Dojo Form Elements and Decorators
15.4.1. Dijit-Specific Form Decorators
15.4.1.1. DijitElement Decorator
15.4.1.2. DijitForm Decorator
15.4.1.3. DijitContainer-based Decorators
15.4.2. Dijit-Specific Form Elements
15.4.2.1. Button
15.4.2.2. CheckBox
15.4.2.3. ComboBox and FilteringSelect
15.4.2.4. CurrencyTextBox
15.4.2.5. DateTextBox
15.4.2.6. Editor
15.4.2.7. HorizontalSlider
15.4.2.8. NumberSpinner
15.4.2.9. NumberTextBox
15.4.2.10. PasswordTextBox
15.4.2.11. RadioButton
15.4.2.12. SimpleTextarea
15.4.2.13. Slider abstract element
15.4.2.14. SubmitButton
15.4.2.15. TextBox
15.4.2.16. Textarea
15.4.2.17. TimeTextBox
15.4.2.18. ValidationTextBox
15.4.2.19. VerticalSlider
15.4.3. Dojo Form Examples
16. Zend_Dom
16.1. Introduction
16.2. Zend_Dom_Query
16.2.1. Theory of Operation
16.2.2. Methods Available
16.2.2.1. Zend_Dom_Query
16.2.2.2. Zend_Dom_Query_Result
17. Zend_Exception
17.1. Using Exceptions
18. Zend_Feed
18.1. Introduction
18.2. Importing Feeds
18.2.1. Custom feeds
18.2.1.1. Importing a custom array
18.2.1.2. Importing a custom data source
18.2.1.3. Dumping the contents of a feed
18.3. Retrieving Feeds from Web Pages
18.4. Consuming an RSS Feed
18.5. Consuming an Atom Feed
18.6. Consuming a Single Atom Entry
18.7. Modifying Feed and Entry structures
18.8. Custom Feed and Entry Classes
19. Zend_File
19.1. Zend_File_Transfer
19.1.1. Supported adapters for Zend_File_Transfer
19.1.2. Options for Zend_File_Transfer
19.1.3. Checking files
19.1.4. Additional file informations
19.2. Validators for Zend_File_Transfer
19.2.1. Using validators with Zend_File_Transfer
19.2.2. Count validator
19.2.3. Crc32 validator
19.2.4. ExcludeExtension validator
19.2.5. ExcludeMimeType validator
19.2.6. Exists validator
19.2.7. Extension validator
19.2.8. FilesSize validator
19.2.9. ImageSize validator
19.2.10. IsCompressed validator
19.2.11. IsImage validator
19.2.12. Hash validator
19.2.13. Md5 validator
19.2.14. MimeType validator
19.2.15. NotExists validator
19.2.16. Sha1 validator
19.2.17. Size validator
19.3. Filters for Zend_File_Transfer
19.3.1. Using filters with Zend_File_Transfer
19.3.2. LowerCase filter
19.3.3. Rename filter
19.3.4. UpperCase filter
19.4. Migrating from previous versions
19.4.1. Migrating from 1.6 to 1.7 or newer
19.4.1.1. Changes when using filters and validators
19.4.1.1.1. Filter: Rename
19.4.1.1.2. Validator: Count
19.4.1.1.3. Validator: Extension
19.4.1.1.4. Validator: FilesSize
19.4.1.1.5. Validator: Hash
19.4.1.1.6. Validator: ImageSize
19.4.1.1.7. Validator: Size
19.4.2. Migrating from 1.6.1 to 1.6.2 or newer
19.4.2.1. Changes when using validators
20. Zend_Filter
20.1. Introduction
20.1.1. What is a filter?
20.1.2. Basic usage of filters
20.1.3. Using the static get() method
20.2. Standard Filter Classes
20.2.1. Alnum
20.2.2. Alpha
20.2.3. BaseName
20.2.4. Digits
20.2.5. Dir
20.2.6. HtmlEntities
20.2.7. Int
20.2.8. StripNewlines
20.2.9. RealPath
20.2.10. StringToLower
20.2.11. StringToUpper
20.2.12. StringTrim
20.2.13. StripTags
20.3. Filter Chains
20.4. Writing Filters
20.5. Zend_Filter_Input
20.5.1. Declaring Filter and Validator Rules
20.5.2. Creating the Filter and Validator Processor
20.5.3. Retrieving Validated Fields and other Reports
20.5.3.1. Querying if the input is valid
20.5.3.2. Getting Invalid, Missing, or Unknown Fields
20.5.3.3. Getting Valid Fields
20.5.4. Using Metacommands to Control Filter or Validator Rules
20.5.4.1. The FIELDS metacommand
20.5.4.2. The PRESENCE metacommand
20.5.4.3. The DEFAULT_VALUE metacommand
20.5.4.4. The ALLOW_EMPTY metacommand
20.5.4.5. The BREAK_CHAIN metacommand
20.5.4.6. The MESSAGES metacommand
20.5.4.7. Using options to set metacommands for all rules
20.5.5. Adding Filter Class Namespaces
20.6. Zend_Filter_Inflector
20.6.1. Operation
20.6.2. Setting Paths To Alternate Filters
20.6.3. Setting the Inflector Target
20.6.4. Inflection Rules
20.6.4.1. Static Rules
20.6.4.2. Filter Inflector Rules
20.6.4.3. Setting Many Rules At Once
20.6.5. Utility Methods
20.6.6. Using Zend_Config with Zend_Filter_Inflector
21. Zend_Form
21.1. Zend_Form
21.2. Zend_Form Quick Start
21.2.1. Create a form object
21.2.2. Add elements to the form
21.2.3. Render a form
21.2.4. Check if a form is valid
21.2.5. Get error status
21.2.6. Putting it together
21.2.7. Using a Zend_Config object
21.2.8. Conclusion
21.3. Creating Form Elements Using Zend_Form_Element
21.3.1. Plugin Loaders
21.3.2. Filters
21.3.3. Validators
21.3.3.1. Custom Error Messages
21.3.4. Decorators
21.3.5. Metadata and Attributes
21.3.6. Standard Elements
21.3.7. Zend_Form_Element Methods
21.3.8. Configuration
21.3.9. Custom Elements
21.4. Creating Forms Using Zend_Form
21.4.1. Plugin Loaders
21.4.2. Elements
21.4.2.1. Populating and Retrieving Values
21.4.2.2. Global Operations
21.4.2.3. Methods For Interacting With Elements
21.4.3. Display Groups
21.4.3.1. Global Operations
21.4.3.2. Using Custom Display Group Classes
21.4.3.3. Methods for Interacting With Display Groups
21.4.3.4. Zend_Form_DisplayGroup Methods
21.4.4. Sub Forms
21.4.4.1. Global Operations
21.4.4.2. Methods for Interacting With Sub Forms
21.4.5. Metadata and Attributes
21.4.6. Decorators
21.4.7. Validation
21.4.7.1. Custom Error Messages
21.4.8. Methods
21.4.9. Configuration
21.4.10. Custom forms
21.5. Creating Custom Form Markup Using Zend_Form_Decorator
21.5.1. Operation
21.5.2. Standard Decorators
21.5.3. Custom Decorators
21.5.4. Rendering Individual Decorators
21.6. Standard Form Elements Shipped With Zend Framework
21.6.1. Zend_Form_Element_Button
21.6.2. Zend_Form_Element_Captcha
21.6.3. Zend_Form_Element_Checkbox
21.6.4. Zend_Form_Element_File
21.6.5. Zend_Form_Element_Hidden
21.6.6. Zend_Form_Element_Hash
21.6.7. Zend_Form_Element_Image
21.6.8. Zend_Form_Element_MultiCheckbox
21.6.9. Zend_Form_Element_Multiselect
21.6.10. Zend_Form_Element_Password
21.6.11. Zend_Form_Element_Radio
21.6.12. Zend_Form_Element_Reset
21.6.13. Zend_Form_Element_Select
21.6.14. Zend_Form_Element_Submit
21.6.15. Zend_Form_Element_Text
21.6.16. Zend_Form_Element_Textarea
21.7. Standard Form Decorators Shipped With Zend Framework
21.7.1. Zend_Form_Decorator_Callback
21.7.2. Zend_Form_Decorator_Captcha
21.7.3. Zend_Form_Decorator_Description
21.7.4. Zend_Form_Decorator_DtDdWrapper
21.7.5. Zend_Form_Decorator_Errors
21.7.6. Zend_Form_Decorator_Fieldset
21.7.7. Zend_Form_Decorator_File
21.7.8. Zend_Form_Decorator_Form
21.7.9. Zend_Form_Decorator_FormElements
21.7.10. Zend_Form_Decorator_FormErrors
21.7.11. Zend_Form_Decorator_HtmlTag
21.7.12. Zend_Form_Decorator_Image
21.7.13. Zend_Form_Decorator_Label
21.7.14. Zend_Form_Decorator_PrepareElements
21.7.15. Zend_Form_Decorator_ViewHelper
21.7.16. Zend_Form_Decorator_ViewScript
21.8. Internationalization of Zend_Form
21.8.1. Initializing I18n in Forms
21.8.2. Standard I18n Targets
21.9. Advanced Zend_Form Usage
21.9.1. Array Notation
21.9.2. Multi-Page Forms
22. Zend_Gdata
22.1. Introduction to Gdata
22.1.1. Structure of Zend_Gdata
22.1.2. Interacting with Google Services
22.1.3. Obtaining instances of Zend_Gdata classes
22.1.4. Google Data Client Authentication
22.1.5. Dependencies
22.1.6. Creating a new Gdata client
22.1.7. Common query parameters
22.1.8. Fetching a feed
22.1.9. Working with multi-page feeds
22.1.10. Working with data in feeds and entries
22.1.11. Updating entries
22.1.12. Posting entries to Google servers
22.1.13. Deleting entries on Google servers
22.2. Authenticating with AuthSub
22.2.1. Creating an AuthSub authenticated Http Client
22.2.2. Revoking AuthSub authentication
22.3. Using the Book Search Data API
22.3.1. Authenticating to the Book Search service
22.3.2. Searching for books
22.3.2.1. Partner Co-Branded Search
22.3.3. Using community features
22.3.3.1. Adding a rating
22.3.3.2. Reviews
22.3.3.2.1. Adding a review
22.3.3.2.2. Editing a review
22.3.3.3. Labels
22.3.3.3.1. Submitting a set of labels
22.3.3.4. Retrieving annotations: reviews, ratings, and labels
22.3.3.5. Deleting Annotations
22.3.4. Book collections and My Library
22.3.4.1. Retrieving books in a user's library
22.3.4.1.1. Retrieving all books in a user's library
22.3.4.1.2. Searching for books in a user's library
22.3.4.2. Updating books in a user's library
22.3.4.2.1. Adding a book to a library
22.3.4.2.2. Removing a book from a library
22.4. Authenticating with ClientLogin
22.4.1. Creating a ClientLogin authenticated Http Client
22.4.2. Terminating a ClientLogin authenticated Http Client
22.5. Using Google Calendar
22.5.1. Connecting To The Calendar Service
22.5.1.1. Authentication
22.5.1.2. Creating A Service Instance
22.5.2. Retrieving A Calendar List
22.5.3. Retrieving Events
22.5.3.1. Queries
22.5.3.2. Retrieving Events In Order Of Start Time
22.5.3.3. Retrieving Events In A Specified Date Range
22.5.3.4. Retrieving Events By Fulltext Query
22.5.3.5. Retrieving Individual Events
22.5.4. Creating Events
22.5.4.1. Creating Single-Occurrence Events
22.5.4.2. Event Schedules and Reminders
22.5.4.3. Creating Recurring Events
22.5.4.4. Using QuickAdd
22.5.5. Modifying Events
22.5.6. Deleting Events
22.5.7. Accessing Event Comments
22.6. Using Google Documents List Data API
22.6.1. Get a List of Documents
22.6.2. Upload a Document
22.6.3. Searching the documents feed
22.6.3.1. Get a List of Word Processing Documents
22.6.3.2. Get a List of Spreadsheets
22.6.3.3. Performing a text query
22.7. Using Google Spreadsheets
22.7.1. Create a Spreadsheet
22.7.2. Get a List of Spreadsheets
22.7.3. Get a List of Worksheets
22.7.4. Interacting With List-based Feeds
22.7.4.1. Get a List-based Feed
22.7.4.2. Reverse-sort Rows
22.7.4.3. Send a Structured Query
22.7.4.4. Add a Row
22.7.4.5. Edit a Row
22.7.4.6. Delete a Row
22.7.5. Interacting With Cell-based Feeds
22.7.5.1. Get a Cell-based Feed
22.7.5.2. Send a Cell Range Query
22.7.5.3. Change Contents of a Cell
22.8. Using Google Apps Provisioning
22.8.1. Setting the current domain
22.8.1.1. Setting the domain for the service class
22.8.1.2. Setting the domain for query classes
22.8.2. Interacting with users
22.8.2.1. Creating a user account
22.8.2.2. Retrieving a user account
22.8.2.3. Retrieving all users in a domain
22.8.2.4. Updating a user account
22.8.2.4.1. Resetting a user's password
22.8.2.4.2. Forcing a user to change their password
22.8.2.4.3. Suspending a user account
22.8.2.4.4. Granting administrative rights
22.8.2.5. Deleting user accounts
22.8.3. Interacting with nicknames
22.8.3.1. Creating a nickname
22.8.3.2. Retrieving a nickname
22.8.3.3. Retrieving all nicknames for a user
22.8.3.4. Retrieving all nicknames in a domain
22.8.3.5. Deleting a nickname
22.8.4. Interacting with email lists
22.8.4.1. Creating an email list
22.8.4.2. Retrieving all email lists to which a recipient is subscribed
22.8.4.3. Retrieving all email lists in a domain
22.8.4.4. Deleting an email list
22.8.5. Interacting with email list recipients
22.8.5.1. Adding a recipient to an email list
22.8.5.2. Retrieving the list of subscribers to an email list
22.8.5.3. Removing a recipient from an email list
22.8.6. Handling errors
22.9. Using Google Base
22.9.1. Connect To The Base Service
22.9.1.1. Authentication
22.9.1.2. Create A Service Instance
22.9.2. Retrieve Items
22.9.2.1. Send a Structured Query
22.9.2.1.1. Query Customer Items Feed
22.9.2.1.2. Query Snippets Feed
22.9.2.2. Iterate through the Items
22.9.3. Insert, Update, and Delete Customer Items
22.9.3.1. Insert an Item
22.9.3.2. Modify an Item
22.9.3.3. Delete an Item
22.10. Using Picasa Web Albums
22.10.1. Connecting To The Service
22.10.1.1. Authentication
22.10.1.2. Creating A Service Instance
22.10.2. Understanding and Constructing Queries
22.10.3. Retrieving Feeds And Entries
22.10.3.1. Retrieving A User
22.10.3.2. Retrieving An Album
22.10.3.3. Retrieving A Photo
22.10.3.4. Retrieving A Comment
22.10.3.5. Retrieving A Tag
22.10.4. Creating Entries
22.10.4.1. Creating An Album
22.10.4.2. Creating A Photo
22.10.4.3. Creating A Comment
22.10.4.4. Creating A Tag
22.10.5. Deleting Entries
22.10.5.1. Deleting An Album
22.10.5.2. Deleting A Photo
22.10.5.3. Deleting A Comment
22.10.5.4. Deleting A Tag
22.10.5.5. Optimistic Concurrency (Notes On Deletion)
22.11. Using the YouTube Data API
22.11.1. Authentication
22.11.2. Developer Keys and Client ID
22.11.3. Retrieving public video feeds
22.11.3.1. Searching for videos by metadata
22.11.3.2. Searching for videos by categories and tags/keywords
22.11.3.3. Retrieving standard feeds
22.11.3.4. Retrieving videos uploaded by a user