| Under Construction This proposal is under construction and is not ready for review. |
<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
Zend_DI is a dependency injector component, similar in concept to PicoContainer, but smaller and easier to use. The architecture of the Zend_DI component is based on the following concepts:
Zend Framework: Zend_DI Component Proposal
Proposed Component Name
Zend_DI
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_DI
Proposers
My E-mail Address
Revision
0.1 - 21 November 2007: Initial Proposal. (wiki revision: 9)
Table of Contents
1. Overview
2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will use ReflectionClass.
- This component will not use external configuration files, such as XML files.
4. Dependencies on Other Framework Components
- Zend_Exception
5. Theory of Operation
The purpose of Zend_DI is to provide and easier way to test atomic units of code in isolation, and to mock dependencies which one component may refer to. Zend_DI minimizes coupling between groups of classes, makes unit testing much simpler, and provides an easy way to re-configure a library to use custom implementations of components.
Zend_DI provides generic factory classes that instantiate instances of classes. These instances are then configured by the container, allowing construction logic to be reused on a broader level. Typically, responsibility for object management is taken over by whatever container is being used to manage those objects.
6. Milestones / Tasks
- Milestone 1: Proposal finished
- Milestone 2: Proposal accepted
- Milestone 3: Working release
- Milestone 4: Unit tests
- Milestone 5: Documentation
- Milestone 6: Future enhancements
7. Class Index
- Zend_DI_Container
- Zend_DI_Exception
- Zend_DI_Container_Manager
- Zend_DI_Container_Exception
- Zend_DI_Container_Registry
- Zend_DI_Container_Registry_Interface
- Zend_DI_Component_Factory
- Zend_DI_Component_Exception
8. Use Cases
- Foo.php
- DynamicInjectionsExample.php