compared with
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (9)

View Page History

* [Zend_Tool_Rpc|]
* [Zend_Tool_Rpc_Endpoint_Cli|]
* [Zend_Tool_Framework|]
* [Zend_Tool_Framework_Endpoint_Cli|]
* [Zend_Tool_Project|]
* [Zend_Tool_CodeGenerator|]
Taking the list of requirements, we have been able to deterministically break them down into 3 logical groups - or component proposals. These functional groups should be able to accommodate all of the requirements above while minimizing the cross dependencies they have with one another. This proposal breaks them down into these three groups:

* The Tooling Subsystem - (aka Zend_Tool_Rpc) Zend_Tool_Framework) - this system is responsible for creating a framework that will provide developers and consumers with easy to use interfaces for not only executing and dispatching "tooling requests" but also should make it easy for developers to enhance and extend the range of capabilities the system provides.
* The Project Management System - (aka Zend_Tool_Project) - this component is responsible for managing application projects. An application project would essentially be synonymous to a project inside your development environment.
* The Code Generator - (aka Zend_Tool_CodeGenerator) - this system is responsible for creating an API that will allow developers to create, modify and destroy blocks of code, be it Apache conf files, PHP, Javascript, etc.

Zend_Tool_Rpc Zend_Tool_Framework Requirements
* Ability of the "tooling system" to describe its full set of capabilities
* Ability to issue "tooling system" requests from multiple clients to interact with this "tooling system"
* Ability for this "tooling system" to be bootstrapped automatically by detecting "capabilities" inside the php include-path.

Zend_Tool_Rpc_Endpoint_Cli Zend_Tool_Framework_Endpoint_Cli Requirements
* Command Line Interface for tooling

As you can see, the majority of requirements "fit" within one of the sub proposals. The last one, is a requirements that can only be fulfilled by utilizing all of the components together (this creates the super dependency). To understand how these proposals attempt to fulfill these requirements lets now take a look at the actual propsoals: