Programmer's Reference Guide

Programmer's Reference Guide

Zend Framework

2009-06-23


Table of Contents

1. Introduction to Zend Framework
1.1. Overview
1.2. Installation
2. Zend_Acl
2.1. Introduction
2.1.1. Resources
2.1.2. Roles
2.1.3. Creating the Access Control List
2.1.4. Registering Roles
2.1.5. Defining Access Controls
2.1.6. Querying an 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. Resources
3.2.6. Connecting to the Server from Flash
3.2.7. Authentication
4. Zend_Application
4.1. Introduction
4.2. Zend_Application Quick Start
4.2.1. Using Zend_Tool
4.2.2. Adding Zend_Application to your application
4.2.3. Adding and creating resources
4.2.4. Next steps with Zend_Application
4.3. Theory of Operation
4.3.1. Bootstrapping
4.3.1.1. Resource Methods
4.3.1.2. Bootstraps that use resource plugins
4.3.1.3. Resource Registry
4.3.1.4. Dependency Tracking
4.3.2. Resource Plugins
4.4. Examples
4.5. Core Functionality
4.5.1. Zend_Application
4.5.2. Zend_Application_Bootstrap_Bootstrapper
4.5.3. Zend_Application_Bootstrap_ResourceBootstrapper
4.5.4. Zend_Application_Bootstrap_BootstrapAbstract
4.5.5. Zend_Application_Bootstrap_Bootstrap
4.5.6. Zend_Application_Resource_Resource
4.5.7. Zend_Application_Resource_ResourceAbstract
4.5.7.1. Resource Names
4.6. Available Resource Plugins
4.6.1. Zend_Application_Resource_Db
4.6.2. Zend_Application_Resource_Frontcontroller
4.6.3. Zend_Application_Resource_Modules
4.6.4. Zend_Application_Resource_Session
4.6.5. Zend_Application_Resource_View
5. Zend_Auth
5.1. Introduction
5.1.1. Adapters
5.1.2. Results
5.1.3. Identity Persistence
5.1.3.1. Default Persistence in the PHP Session
5.1.3.2. Implementing Customized Storage
5.1.4. Usage
5.2. Database Table Authentication
5.2.1. Introduction
5.2.2. Advanced Usage: Persisting a DbTable Result Object
5.2.3. Advanced Usage By Example
5.3. Digest Authentication
5.3.1. Introduction
5.3.2. Specifics
5.3.3. Identity
5.4. HTTP Authentication Adapter
5.4.1. Introduction
5.4.2. Design Overview
5.4.3. Configuration Options
5.4.4. Resolvers
5.4.4.1. File Resolver
5.4.5. Basic Usage
5.5. LDAP Authentication
5.5.1. Introduction
5.5.2. Usage
5.5.3. The API
5.5.4. Server Options
5.5.5. Collecting Debugging Messages
5.5.6. Common Options for Specific Servers
5.5.6.1. Options for Active Directory
5.5.6.2. Options for OpenLDAP
5.6. Open ID Authentication
5.6.1. Introduction
5.6.2. Specifics
6. Zend_Cache
6.1. Introduction
6.2. The Theory of Caching
6.2.1. The Zend_Cache Factory Method
6.2.2. Tagging Records
6.2.3. Cleaning the Cache
6.3. Zend_Cache Frontends
6.3.1. Zend_Cache_Core
6.3.1.1. Introduction
6.3.1.2. Available options
6.3.1.3. Examples
6.3.2. Zend_Cache_Frontend_Output
6.3.2.1. Introduction
6.3.2.2. Available Options
6.3.2.3. Examples
6.3.3. Zend_Cache_Frontend_Function
6.3.3.1. Introduction
6.3.3.2. Available Options
6.3.3.3. Examples
6.3.4. Zend_Cache_Frontend_Class
6.3.4.1. Introduction
6.3.4.2. Available Options
6.3.4.3. Examples
6.3.5. Zend_Cache_Frontend_File
6.3.5.1. Introduction
6.3.5.2. Available Options
6.3.5.3. Examples
6.3.6. Zend_Cache_Frontend_Page
6.3.6.1. Introduction
6.3.6.2. Available Options
6.3.6.3. Examples
6.3.6.4. The Specific Cancel Method
6.4. Zend_Cache Backends
6.4.1. Zend_Cache_Backend_File
6.4.2. Zend_Cache_Backend_Sqlite
6.4.3. Zend_Cache_Backend_Memcached
6.4.4. Zend_Cache_Backend_Apc
6.4.5. Zend_Cache_Backend_Xcache
6.4.6. Zend_Cache_Backend_ZendPlatform
6.4.7. Zend_Cache_Backend_TwoLevels
6.4.8. Zend_Cache_Backend_ZendServer_Disk and Zend_Cache_Backend_ZendServer_ShMem
7. Zend_Captcha
7.1. Introduction
7.2. Captcha Operation
7.3. CAPTCHA Adapters
7.3.1. Zend_Captcha_Word
7.3.2. Zend_Captcha_Dumb
7.3.3. Zend_Captcha_Figlet
7.3.4. Zend_Captcha_Image
7.3.5. Zend_Captcha_ReCaptcha
8. Zend_CodeGenerator
8.1. Introduction
8.1.1. Theory of Operation
8.2. Zend_CodeGenerator Examples
8.3. Zend_CodeGenerator Reference
8.3.1. Abstract Classes and Interfaces
8.3.1.1. Zend_CodeGenerator_Abstract
8.3.1.2. Zend_CodeGenerator_Php_Abstract
8.3.1.3. Zend_CodeGenerator_Php_Member_Abstract
8.3.2. Concrete CodeGenerator Classes
8.3.2.1. Zend_CodeGenerator_Php_Body
8.3.2.2. Zend_CodeGenerator_Php_Class
8.3.2.3. Zend_CodeGenerator_Php_Docblock
8.3.2.4. Zend_CodeGenerator_Php_Docblock_Tag
8.3.2.5. Zend_CodeGenerator_Php_DocBlock_Tag_Param
8.3.2.6. Zend_CodeGenerator_Php_DocBlock_Tag_Return
8.3.2.7. Zend_CodeGenerator_Php_File
8.3.2.8. Zend_CodeGenerator_Php_Member_Container
8.3.2.9. Zend_CodeGenerator_Php_Method
8.3.2.10. Zend_CodeGenerator_Php_Parameter
8.3.2.11. Zend_CodeGenerator_Php_Property
9. Zend_Config
9.1. Introduction
9.2. Theory of Operation
9.3. Zend_Config_Ini
9.4. Zend_Config_Xml
10. Zend_Config_Writer
10.1. Zend_Config_Writer
11. Zend_Console_Getopt
11.1. Introduction
11.2. Declaring Getopt Rules
11.2.1. Declaring Options with the Short Syntax
11.2.2. Declaring Options with the Long Syntax
11.3. Fetching Options and Arguments
11.3.1. Handling Getopt Exceptions
11.3.2. Fetching Options by Name
11.3.3. Reporting Options
11.3.4. Fetching Non-option Arguments
11.4. Configuring Zend_Console_Getopt
11.4.1. Adding Option Rules
11.4.2. Adding Help Messages
11.4.3. Adding Option Aliases
11.4.4. Adding Argument Lists
11.4.5. Adding Configuration
12. Zend_Controller
12.1. Zend_Controller Quick Start
12.1.1. Introduction
12.1.2. Quick Start
12.1.2.1. Create the Filesystem Layout
12.1.2.2. Set the Document Root
12.1.2.3. Create the Rewrite Rules
12.1.2.4. Create the Bootstrap File
12.1.2.5. Create the Default Action Controller
12.1.2.6. Create the View Script
12.1.2.7. Create the Error Controller
12.1.2.8. View the Site!
12.2. Zend_Controller Basics
12.3. The Front Controller
12.3.1. Overview
12.3.2. Primary Methods
12.3.2.1. getInstance()
12.3.2.2. setControllerDirectory() and addControllerDirectory
12.3.2.3. addModuleDirectory() and getModuleDirectory()
12.3.2.4. dispatch()
12.3.2.5. run()
12.3.3. Environmental Accessor Methods
12.3.4. Front Controller Parameters
12.3.5. Extending the Front Controller
12.4. The Request Object
12.4.1. Introduction
12.4.2. HTTP Requests
12.4.2.1. Accessing Request Data
12.4.2.2. Base Url and Subdirectories
12.4.2.3. Determining the Request Method
12.4.2.4. Detecting AJAX Requests
12.4.3. Subclassing the Request Object
12.5. The Standard Router
12.5.1. Introduction
12.5.2. Using a Router
12.5.3. Basic Rewrite Router Operation
12.5.4. Default Routes
12.5.5. Base URL and Subdirectories
12.5.6. Global Parameters
12.5.7. Route Types
12.5.7.1. Zend_Controller_Router_Route
12.5.7.1.1. Variable Defaults
12.5.7.1.2. Variable Requirements
12.5.7.1.3. Translated segments
12.5.7.2. Zend_Controller_Router_Route_Static
12.5.7.3. Zend_Controller_Router_Route_Regex
12.5.7.4. Zend_Controller_Router_Route_Hostname
12.5.7.5. Zend_Controller_Router_Route_Chain
12.5.7.5.1. Chain Routes via Zend_Config
12.5.8. Using Zend_Config with the RewriteRouter
12.5.9. Subclassing the Router
12.6. The Dispatcher
12.6.1. Overview
12.6.2. Subclassing the Dispatcher
12.7. Action Controllers
12.7.1. Introduction
12.7.2. Object Initialization
12.7.3. Pre- and Post-Dispatch Hooks
12.7.4. Accessors
12.7.5. View Integration
12.7.5.1. View Initialization
12.7.5.2. Rendering Views
12.7.6. Utility Methods
12.7.7. Subclassing the Action Controller
12.8. Action Helpers
12.8.1. Introduction
12.8.2. Helper Initialization
12.8.3. The Helper Broker
12.8.4. Built-in Action Helpers
12.8.4.1. ActionStack
12.8.4.2. AutoComplete
12.8.4.2.1. AutoCompletion with Dojo
12.8.4.2.2. AutoCompletion with Scriptaculous
12.8.4.3. ContextSwitch and AjaxContext
12.8.4.3.1. Default Contexts Available
12.8.4.3.2. Creating Custom Contexts
12.8.4.3.3. Setting Contexts Per Action
12.8.4.3.4. Initializing Context Switching
12.8.4.3.5. Additional Functionality
12.8.4.3.6. AjaxContext Functionality
12.8.4.4. FlashMessenger
12.8.4.4.1. Introduction
12.8.4.4.2. Basic Usage Example
12.8.4.5. JSON
12.8.4.6. Redirector
12.8.4.6.1. Introduction
12.8.4.6.2. Basic Usage Examples
12.8.4.7. ViewRenderer
12.8.4.7.1. Introduction
12.8.4.7.2. API
12.8.4.7.3. Basic Usage Examples
12.8.4.7.4. Advanced Usage Examples
12.8.5. Writing Your Own Helpers
12.9. The Response Object
12.9.1. Usage
12.9.2. Manipulating Headers
12.9.3. Named Segments
12.9.4. Testing for Exceptions in the Response Object
12.9.5. Subclassing the Response Object
12.10. Plugins
12.10.1. Introduction
12.10.2. Writing Plugins
12.10.3. Using Plugins
12.10.4. Retrieving and Manipulating Plugins
12.10.5. Plugins Included in the Standard Distribution
12.10.5.1. ActionStack
12.10.5.2. Zend_Controller_Plugin_ErrorHandler
12.10.5.2.1. Using the ErrorHandler as a 404 Handler
12.10.5.2.2. Handling Previously Rendered Output
12.10.5.2.3. Plugin Usage Examples
12.10.5.2.4. Error Controller Example
12.11. Using a Conventional Modular Directory Structure
12.11.1. Introduction
12.11.2. Specifying Module Controller Directories
12.11.3. Routing to Modules
12.11.4. Module or Global Default Controller
12.12. MVC Exceptions
12.12.1. Introduction
12.12.2. Handling Exceptions
12.12.3. MVC Exceptions You May Encounter
12.13. Migrating from Previous Versions
12.13.1. Migrating from 1.7.x to 1.8.0 or newer
12.13.1.1. Standard Route Changes
12.13.2. Migrating from 1.6.x to 1.7.0 or newer
12.13.2.1. Dispatcher Interface Changes
12.13.3. Migrating from 1.5.x to 1.6.0 or Newer
12.13.3.1. Dispatcher Interface Changes
12.13.4. Migrating from 1.0.x to 1.5.0 or Newer
12.13.5. Migrating from 0.9.3 to 1.0.0RC1 or Newer
12.13.6. Migrating from 0.9.2 to 0.9.3 or Newer
12.13.7. Migrating from 0.6.0 to 0.8.0 or Newer
12.13.8. Migrating from 0.2.0 or before to 0.6.0
13. Zend_Currency
13.1. Introduction to Zend_Currency
13.1.1. Why use Zend_Currency?
13.2. How to Work with Currencies
13.2.1. Creating and Output String from a Currency
13.2.2. Changing the Format of a Currency
13.2.3. Reference Methods for Zend_Currency
13.2.4. Settings new default values
13.2.5. Zend_Currency Performance Optimization
13.3. Migrating from Previous Versions
13.3.1. Migrating from 1.0.2 to 1.0.3 or Newer
14. Zend_Date
14.1. Introduction
14.1.1. Always Set a Default Timezone
14.1.2. Why Use Zend_Date?
14.2. Theory of Operation
14.2.1. Internals
14.3. Basic Methods
14.3.1. Current Date
14.3.2. Zend_Date by Example
14.3.2.1. Output a Date
14.3.2.2. Setting a Date
14.3.2.3. Adding and Subtracting Dates
14.3.2.4. Comparison of Dates
14.4. Zend_Date API Overview
14.4.1. Zend_Date Options
14.4.1.1. Selecting the Date Format Type
14.4.1.2. DST and Date Math
14.4.1.3. Month Calculations
14.4.1.4. Speed up Date Localization and Normalization with Zend_Cache
14.4.1.5. Receiving Syncronised Timestamps with Zend_TimeSync
14.4.2. Working with Date Values
14.4.3. Basic Zend_Date Operations Common to Many Date Parts
14.4.3.1. List of Date Parts
14.4.3.2. List of Date Operations
14.4.4. Comparing Dates
14.4.5. Getting Dates and Date Parts
14.4.6. Working with Fractions of Seconds
14.4.7. Sunrise / Sunset
14.5. Creation of Dates
14.5.1. Create the Actual Date
14.5.2. Create a Date from Database
14.5.3. Create Dates from an Array
14.6. Constants for General Date Functions
14.6.1. Using Constants
14.6.2. List of All Constants
14.6.3. Self-Defined OUTPUT Formats with ISO
14.6.4. Self-Defined OUTPUT Formats Using PHP's date() Format Specifiers
14.7. Working Examples
14.7.1. Checking Dates
14.7.2. Sunrise and Sunset
14.7.3. Time Zones
15. Zend_Db
15.1. Zend_Db_Adapter
15.1.1. Connecting to a Database Using an Adapter
15.1.1.1. Using a Zend_Db Adapter Constructor
15.1.1.2. Using the Zend_Db Factory
15.1.1.3. Using Zend_Config with the Zend_Db Factory
15.1.1.4. Adapter Parameters
15.1.1.5. Managing Lazy Connections
15.1.2. Example Database
15.1.3. Reading Query Results
15.1.3.1. Fetching a Complete Result Set
15.1.3.2. Changing the Fetch Mode
15.1.3.3. Fetching a Result Set as an Associative Array
15.1.3.4. Fetching a Single Column from a Result Set
15.1.3.5. Fetching Key-Value Pairs from a Result Set
15.1.3.6. Fetching a Single Row from a Result Set
15.1.3.7. Fetching a Single Scalar from a Result Set
15.1.4. Writing Changes to the Database
15.1.4.1. Inserting Data
15.1.4.2. Retrieving a Generated Value
15.1.4.3. Updating Data
15.1.4.4. Deleting Data
15.1.5. Quoting Values and Identifiers
15.1.5.1. Using quote()
15.1.5.2. Using quoteInto()
15.1.5.3. Using quoteIdentifier()
15.1.6. Controlling Database Transactions
15.1.7. Listing and Describing Tables
15.1.8. Closing a Connection
15.1.9. Running Other Database Statements
15.1.10. Retrieving Server Version
15.1.11. Notes on Specific Adapters
15.1.11.1. IBM DB2
15.1.11.2. MySQLi
15.1.11.3. Oracle
15.1.11.4. PDO for IBM DB2 and Informix Dynamic Server (IDS)
15.1.11.5. PDO Microsoft SQL Server
15.1.11.6. PDO MySQL
15.1.11.7. PDO Oracle
15.1.11.8. PDO PostgreSQL
15.1.11.9. PDO SQLite
15.1.11.10. Firebird/Interbase
15.2. Zend_Db_Statement
15.2.1. Creating a Statement
15.2.2. Executing a Statement
15.2.3. Fetching Results from a SELECT Statement
15.2.3.1. Fetching a Single Row from a Result Set
15.2.3.2. Fetching a Complete Result Set
15.2.3.3. Changing the Fetch Mode
15.2.3.4. Fetching a Single Column from a Result Set
15.2.3.5. Fetching a Row as an Object
15.3. Zend_Db_Profiler
15.3.1. Introduction
15.3.2. Using the Profiler
15.3.3. Advanced Profiler Usage
15.3.3.1. Filter by query elapsed time
15.3.3.2. Filter by query type
15.3.3.3. Retrieve profiles by query type
15.3.4. Specialized Profilers
15.3.4.1. Profiling with Firebug
15.4. Zend_Db_Select
15.4.1. Introduction
15.4.2. Creating a Select Object
15.4.3. Building Select queries
15.4.3.1. Adding a FROM clause
15.4.3.2. Adding Columns
15.4.3.3. Adding Expression Columns
15.4.3.4. Adding columns to an existing FROM or JOIN table
15.4.3.5. Adding Another Table to the Query with JOIN
15.4.3.6. Adding a WHERE Clause
15.4.3.7. Adding a GROUP BY Clause
15.4.3.8. Adding a HAVING Clause
15.4.3.9. Adding an ORDER BY Clause
15.4.3.10. Adding a LIMIT Clause
15.4.3.11. Adding the DISTINCT Query Modifier
15.4.3.12. Adding the FOR UPDATE Query Modifier
15.4.4. Executing Select Queries
15.4.4.1. Executing Select Queries from the Db Adapter
15.4.4.2. Executing Select Queries from the Object
15.4.4.3. Converting a Select Object to a SQL String
15.4.5. Other methods
15.4.5.1. Retrieving Parts of the Select Object
15.4.5.2. Resetting Parts of the Select Object
15.5. Zend_Db_Table
15.5.1. Introduction
15.5.2. Defining a Table Class
15.5.2.1. Defining the Table Name and Schema
15.5.2.2. Defining the Table Primary Key
15.5.2.3. Overriding Table Setup Methods
15.5.2.4. Table initialization
15.5.3. Creating an Instance of a Table
15.5.3.1. Specifying a Database Adapter
15.5.3.2. Setting a Default Database Adapter
15.5.3.3. Storing a Database Adapter in the Registry
15.5.4. Inserting Rows to a Table
15.5.4.1. Using a Table with an Auto-incrementing Key
15.5.4.2. Using a Table with a Sequence
15.5.4.3. Using a Table with a Natural Key
15.5.5. Updating Rows in a Table
15.5.6. Deleting Rows from a Table
15.5.7. Finding Rows by Primary Key
15.5.8. Querying for a Set of Rows
15.5.8.1. Select API
15.5.8.2. Fetching a rowset
15.5.8.3. Advanced usage
15.5.9. Querying for a Single Row
15.5.10. Retrieving Table Metadata Information
15.5.11. Caching Table Metadata
15.5.11.1. Hardcoding Table Metadata
15.5.12. Customizing and Extending a Table Class
15.5.12.1. Using Custom Row or Rowset Classes
15.5.12.2. Defining Custom Logic for Insert, Update, and Delete
15.5.12.3. Define Custom Search Methods in Zend_Db_Table
15.5.12.4. Define Inflection in Zend_Db_Table
15.6. Zend_Db_Table_Row
15.6.1. Introduction
15.6.2. Fetching a Row
15.6.2.1. Reading column values from a row
15.6.2.2. Retrieving Row Data as an Array
15.6.2.3. Fetching data from related tables
15.6.3. Writing rows to the database
15.6.3.1. Changing column values in a row
15.6.3.2. Inserting a new row
15.6.3.3. Changing values in multiple columns
15.6.3.4. Deleting a row
15.6.4. Serializing and unserializing rows
15.6.4.1. Serializing a Row
15.6.4.2. Unserializing Row Data
15.6.4.3. Reactivating a Row as Live Data
15.6.5. Extending the Row class
15.6.5.1. Row initialization
15.6.5.2. Defining Custom Logic for Insert, Update, and Delete in Zend_Db_Table_Row
15.6.5.3. Define Inflection in Zend_Db_Table_Row
15.7. Zend_Db_Table_Rowset
15.7.1. Introduction
15.7.2. Fetching a Rowset
15.7.3. Retrieving Rows from a Rowset
15.7.4. Retrieving a Rowset as an Array
15.7.5. Serializing and Unserializing a Rowset
15.7.6. Extending the Rowset class
15.8. Zend_Db_Table Relationships
15.8.1. Introduction
15.8.2. Defining Relationships
15.8.3. Fetching a Dependent Rowset
15.8.4. Fetching a Parent Row
15.8.5. Fetching a Rowset via a Many-to-many Relationship
15.8.6. Cascading Write Operations
15.8.6.1. Notes Regarding Cascading Operations
16. Zend_Debug
16.1. Dumping Variables
17. Zend_Dojo
17.1. Introduction
17.2. Zend_Dojo_Data: dojo.data Envelopes
17.2.1. Zend_Dojo_Data Usage
17.2.2. Adding metadata to your containers
17.2.3. Advanced Use Cases
17.2.3.1. Available Methods
17.3. Dojo View Helpers
17.3.1. dojo() View Helper
17.3.1.1. Programmatic and Declarative Usage of Dojo
17.3.1.2. Themes
17.3.1.3. Using Layers (Custom Builds)
17.3.1.4. Methods Available
17.3.2. Dijit-Specific View Helpers
17.3.2.1. Dijit Layout Elements
17.3.2.2. Dijit Form Elements
17.3.2.3. Custom Dijits
17.4. Dojo Form Elements and Decorators
17.4.1. Dijit-Specific Form Decorators
17.4.1.1. DijitElement Decorator
17.4.1.2. DijitForm Decorator
17.4.1.3. DijitContainer-based Decorators
17.4.2. Dijit-Specific Form Elements
17.4.2.1. Button
17.4.2.2. CheckBox
17.4.2.3. ComboBox and FilteringSelect
17.4.2.4. CurrencyTextBox
17.4.2.5. DateTextBox
17.4.2.6. Editor
17.4.2.7. HorizontalSlider
17.4.2.8. NumberSpinner
17.4.2.9. NumberTextBox
17.4.2.10. PasswordTextBox
17.4.2.11. RadioButton
17.4.2.12. SimpleTextarea
17.4.2.13. Slider abstract element
17.4.2.14. SubmitButton
17.4.2.15. TextBox
17.4.2.16. Textarea
17.4.2.17. TimeTextBox
17.4.2.18. ValidationTextBox
17.4.2.19. VerticalSlider
17.4.3. Dojo Form Examples
18. Zend_Dom
18.1. Introduction
18.2. Zend_Dom_Query
18.2.1. Theory of Operation
18.2.2. Methods Available
18.2.2.1. Zend_Dom_Query
18.2.2.2. Zend_Dom_Query_Result
19. Zend_Exception
19.1. Using Exceptions
20. Zend_Feed
20.1. Introduction
20.2. Importing Feeds
20.2.1. Custom feeds
20.2.1.1. Importing a custom array
20.2.1.2. Importing a custom data source
20.2.1.3. Dumping the contents of a feed
20.3. Retrieving Feeds from Web Pages
20.4. Consuming an RSS Feed
20.5. Consuming an Atom Feed
20.6. Consuming a Single Atom Entry
20.7. Modifying Feed and Entry structures
20.8. Custom Feed and Entry Classes
21. Zend_File
21.1. Zend_File_Transfer
21.1.1. Supported Adapters for Zend_File_Transfer
21.1.2. Options for Zend_File_Transfer
21.1.3. Checking Files
21.1.4. Additional File Informations
21.1.5. Progress for file uploads
21.1.5.1. Using a progressbar adapter
21.1.5.2. Using getProgress() manually
21.2. Validators for Zend_File_Transfer
21.2.1. Using Validators with Zend_File_Transfer
21.2.2. Count Validator
21.2.3. Crc32 Validator
21.2.4. ExcludeExtension Validator
21.2.5. ExcludeMimeType Validator
21.2.6. Exists Validator
21.2.7. Extension Validator
21.2.8. FilesSize Validator
21.2.9. ImageSize Validator
21.2.10. IsCompressed Validator
21.2.11. IsImage Validator
21.2.12. Hash Validator
21.2.13. Md5 Validator
21.2.14. MimeType Validator
21.2.15. NotExists Validator
21.2.16. Sha1 Validator
21.2.17. Size Validator
21.2.18. WordCount Validator
21.3. Filters for Zend_File_Transfer
21.3.1. Using filters with Zend_File_Transfer
21.3.2. Decrypt filter
21.3.3. Encrypt filter
21.3.4. LowerCase filter
21.3.5. Rename filter
21.3.6. UpperCase filter
21.4. Migrating from previous versions
21.4.1. Migrating from 1.6 to 1.7 or newer
21.4.1.1. Changes when using filters and validators
21.4.1.1.1. Filter: Rename
21.4.1.1.2. Validator: Count
21.4.1.1.3. Validator:Extension
21.4.1.1.4. Validator: FilesSize
21.4.1.1.5. Validator: Hash
21.4.1.1.6. Validator: ImageSize
21.4.1.1.7. Validator: Size
21.4.2. Migrating from 1.6.1 to 1.6.2 or newer
21.4.2.1. Changes when using validators
22. Zend_Filter
22.1. Introduction
22.1.1. What is a filter?
22.1.2. Basic usage of filters
22.1.3. Using the static get() method
22.2. Standard Filter Classes
22.2.1. Alnum
22.2.2. Alpha
22.2.3. BaseName
22.2.4. Callback
22.2.5. Decrypt
22.2.5.1. Decryption with Mcrypt
22.2.5.2. Decryption with OpenSSL
22.2.6. Digits
22.2.7. Dir
22.2.8. Encrypt
22.2.8.1. Encryption with Mcrypt
22.2.8.2. Encryption with OpenSSL
22.2.9. HtmlEntities
22.2.10. Int
22.2.11. LocalizedToNormalized
22.2.11.1. Normalization for numbers
22.2.11.2. Normalization for date and time
22.2.12. NormalizedToLocalized
22.2.12.1. Localization for numbers
22.2.12.2. Localization for date and time
22.2.13. StripNewlines
22.2.14. RealPath
22.2.15. StringToLower
22.2.16. StringToUpper
22.2.17. StringTrim
22.2.18. StripTags
22.3. Filter Chains
22.4. Writing Filters
22.5. Zend_Filter_Input
22.5.1. Declaring Filter and Validator Rules
22.5.2. Creating the Filter and Validator Processor
22.5.3. Retrieving Validated Fields and other Reports
22.5.3.1. Querying if the input is valid
22.5.3.2. Getting Invalid, Missing, or Unknown Fields
22.5.3.3. Getting Valid Fields
22.5.4. Using Metacommands to Control Filter or Validator Rules
22.5.4.1. The FIELDS metacommand
22.5.4.2. The PRESENCE metacommand
22.5.4.3. The DEFAULT_VALUE metacommand
22.5.4.4. The ALLOW_EMPTY metacommand
22.5.4.5. The BREAK_CHAIN metacommand
22.5.4.6. The MESSAGES metacommand
22.5.4.7. Using options to set metacommands for all rules
22.5.5. Adding Filter Class Namespaces
22.6. Zend_Filter_Inflector
22.6.1. Operation
22.6.2. Setting Paths To Alternate Filters
22.6.3. Setting the Inflector Target
22.6.4. Inflection Rules
22.6.4.1. Static Rules
22.6.4.2. Filter Inflector Rules
22.6.4.3. Setting Many Rules At Once
22.6.5. Utility Methods
22.6.6. Using Zend_Config with Zend_Filter_Inflector
23. Zend_Form
23.1. Zend_Form
23.2. Zend_Form Quick Start
23.2.1. Create a form object
23.2.2. Add elements to the form
23.2.3. Render a form
23.2.4. Check if a form is valid
23.2.5. Get error status
23.2.6. Putting it together
23.2.7. Using a Zend_Config Object
23.2.8. Conclusion
23.3. Creating Form Elements Using Zend_Form_Element
23.3.1. Plugin Loaders
23.3.2. Filters
23.3.3. Validators
23.3.3.1. Custom Error Messages
23.3.4. Decorators
23.3.5. Metadata and Attributes
23.3.6. Standard Elements
23.3.7. Zend_Form_Element Methods
23.3.8. Configuration
23.3.9. Custom Elements
23.4. Creating Forms Using Zend_Form
23.4.1. Plugin Loaders
23.4.2. Elements
23.4.2.1. Populating and Retrieving Values
23.4.2.2. Global Operations
23.4.2.3. Methods For Interacting With Elements
23.4.3. Display Groups
23.4.3.1. Global Operations
23.4.3.2. Using Custom Display Group Classes
23.4.3.3. Methods for Interacting With Display Groups
23.4.3.4. Zend_Form_DisplayGroup Methods
23.4.4. Sub Forms
23.4.4.1. Global Operations
23.4.4.2. Methods for Interacting With Sub Forms
23.4.5. Metadata and Attributes
23.4.6. Decorators
23.4.7. Validation
23.4.7.1. Custom Error Messages
23.4.8. Methods
23.4.9. Configuration
23.4.10. Custom forms
23.5. Creating Custom Form Markup Using Zend_Form_Decorator
23.5.1. Operation
23.5.2. Standard Decorators
23.5.3. Custom Decorators
23.5.4. Rendering Individual Decorators
23.6. Standard Form Elements Shipped With Zend Framework
23.6.1. Zend_Form_Element_Button
23.6.2. Zend_Form_Element_Captcha
23.6.3. Zend_Form_Element_Checkbox
23.6.4. Zend_Form_Element_File
23.6.5. Zend_Form_Element_Hidden
23.6.6. Zend_Form_Element_Hash
23.6.7. Zend_Form_Element_Image
23.6.8. Zend_Form_Element_MultiCheckbox
23.6.9. Zend_Form_Element_Multiselect
23.6.10. Zend_Form_Element_Password
23.6.11. Zend_Form_Element_Radio
23.6.12. Zend_Form_Element_Reset
23.6.13. Zend_Form_Element_Select
23.6.14. Zend_Form_Element_Submit
23.6.15. Zend_Form_Element_Text
23.6.16. Zend_Form_Element_Textarea
23.7. Standard Form Decorators Shipped With Zend Framework
23.7.1. Zend_Form_Decorator_Callback
23.7.2. Zend_Form_Decorator_Captcha
23.7.3. Zend_Form_Decorator_Description
23.7.4. Zend_Form_Decorator_DtDdWrapper
23.7.5. Zend_Form_Decorator_Errors
23.7.6. Zend_Form_Decorator_Fieldset
23.7.7. Zend_Form_Decorator_File
23.7.8. Zend_Form_Decorator_Form
23.7.9. Zend_Form_Decorator_FormElements
23.7.10. Zend_Form_Decorator_FormErrors
23.7.11. Zend_Form_Decorator_HtmlTag
23.7.12. Zend_Form_Decorator_Image
23.7.13. Zend_Form_Decorator_Label
23.7.14. Zend_Form_Decorator_PrepareElements
23.7.15. Zend_Form_Decorator_ViewHelper
23.7.16. Zend_Form_Decorator_ViewScript
23.8. Internationalization of Zend_Form
23.8.1. Initializing I18n in Forms
23.8.2. Standard I18n Targets
23.9. Advanced Zend_Form Usage
23.9.1. Array Notation
23.9.2. Multi-Page Forms
24. Zend_Gdata
24.1. Introduction
24.1.1. Structure of Zend_Gdata
24.1.2. Interacting with Google Services
24.1.3. Obtaining instances of Zend_Gdata classes
24.1.4. Google Data Client Authentication
24.1.5. Dependencies
24.1.6. Creating a new Gdata client
24.1.7. Common Query Parameters
24.1.8. Fetching a Feed
24.1.9. Working with Multi-page Feeds
24.1.10. Working with Data in Feeds and Entries
24.1.11. Updating Entries
24.1.12. Posting Entries to Google Servers
24.1.13. Deleting Entries on Google Servers
24.2. Authenticating with AuthSub
24.2.1. Creating an AuthSub authenticated Http Client
24.2.2. Revoking AuthSub authentication
24.3. Using the Book Search Data API
24.3.1. Authenticating to the Book Search service