Added by Lars Strojny, last edited by Lars Strojny on Dec 25, 2007  (view change)

Labels

 
(None)
Under Construction

This proposal is under construction and is not ready for review.

Zend Framework: Zend_Config Refactoring Component Proposal

Proposed Component Name Zend_Config Refactoring
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Config Refactoring
Proposers Lars Strojny
Revision 0.1 - 26 December 2007: Initial version (wiki revision: 2)

Table of Contents

1. Overview

Zend_Config suffers from various problems. The current implementation does not distinguish between the storage of the configuration (the configuration source) and the representation in the object. Every config class is representation and adapter at the same time.
As the organisation in adapters cuts down the native possibilities the config formats already provide. XML already has xinclude, which is more mature than the Zend_Config extension mechanism.
Additionally the value representation of the configuration is "just strings". This could be done much better.
The actual targets of this proposal:

  • Better differentiation between source adapters and front representation to unify provided output
  • The built-in options of a format should tap the full potential
  • Keep the simple usage which is currently possible by providing more features

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • Zend_Config adapters must no longer extend Zend_Config
  • Zend_Config adapters must only read the configuration source
  • Zend_Config adapters must normalize the different input sources
  • Zend_Config_Adapter_Xml must capable of XIncludes
  • Zend_Config_Adapter_Ini must not use parse_ini_file() any longer
  • Zend_Config should represent configuration in the
  • Zend_Config should manage an abitrary number of configuration sources at the same time by merging it

4. Dependencies on Other Framework Components

  • Zend_Config

5. Theory of Operation

6. Milestones / Tasks

  • Milestone 1: Finish proposal
  • Milestone 2: Implement prototype in laboratory

7. Class Index

  • Zend_Config
  • Zend_Config_Adapter_Interface
  • Zend_Config_Adapter_Xml
  • Zend_Config_Adapter_Ini
  • Zend_Config_Adapter_Yaml
  • Zend_Config_Adapter_Db

8. Use Cases

UC-01

9. Class Skeletons

None yet