Zend Framework, while a relatively new framework to the PHP space, has quickly become the de facto standard of enterprise PHP development. This is due in no small part to Zend Technologies, which has used its considerable resources to research, develop, and actively grow the framework into the powerhouse it is today. Philosophically, Zend Framework is quite different than most other PHP-based frameworks in the sense that your commitment to using the framework is left entirely to you. Where most frameworks force you into a specific coding practice or impose on you a specific way the framework must be used to be effective, Zend Framework is based on the notion that each component can be used completely independently of the rest of the framework. This not only makes each component a more interesting piece of technology on its own but also allows you to cherry-pick those pieces of the framework that solve your development problems without committing to an entire way of development. In fact, Zend Framework can be used piecemeal in existing PHP applications to accomplish development tasks as easily as it can be used to develop incredibly complex applications from the ground up.
Looking at the framework itself, its component nature is reflected in its organizational structure and class-naming conventions. Let's take a look at an abbreviated directory and file listing (showing only the Zend Acl component) for the framework (see Listing 1-1).
Listing 1-1. The Zend_Acl Component File Structure Acl
'-- Interface.php Resource.php | Role
Digest.php Exception.php I I |-Http
Exception.php File.php '-- Interface.php | | Http.php
InfoCard.php Interface.php Ldap.php '-- Openld.php Exception.php Result.php '-- Storage
Exception.php Interface.php NonPersistent.php '-- Session.php Acl.php
Being an entirely object-oriented framework, Zend Framework classes follow naming conventions that reflect their location in the file system. For example, the primary class for the Zend Acl component is found in the top-level Acl.php file within the file structure, where the interface that defines the ACL data store object Zend_Acl_Storage_Interface can be found in the Acl/Storage/Interface.php file.
Was this article helpful?