1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect1 id="zend.tool.framework.introduction">
4 <title>Introduction</title>
7 <classname>Zend_Tool_Framework</classname> is a framework for exposing common
8 functionalities such as the creation of project scaffolds, code
9 generation, search index generation, and much more. Functionality may be
10 written and exposed via <acronym>PHP</acronym> classes dropped into the
11 <acronym>PHP</acronym> <property>include_path</property>, providing incredible
12 flexibility of implementation. The functionality may then be consumed by writing
13 implementation and/or protocol-specific clients -- such as console
14 clients, <acronym>XML-RPC</acronym>, <acronym>SOAP</acronym>, and much more.
18 <classname>Zend_Tool_Framework</classname> provides the following:
24 <emphasis>Common interfaces and abstracts</emphasis> that allow
25 developers to create functionality and capabilities that are
26 dispatchable by tooling clients.
32 <emphasis>Base client functionality</emphasis> and a concrete
33 console implementation that connect external tools and
34 interfaces to the <classname>Zend_Tool_Framework</classname>. The Console
35 client may be used in <acronym>CLI</acronym> environments such as unix shells and
42 <emphasis>"Provider" and "Manifest" interfaces</emphasis> that
43 can be utilized by the tooling system. "Providers" represent the
44 functional aspect of the framework, and define the actions that
45 tooling clients may call. "Manifests" act as metadata registries
46 that provide additional context for the various defined
53 <emphasis>An introspective loading system</emphasis> that will
54 scan the environment for providers and determine what is
55 required to dispatch them.
61 <emphasis>A standard set of system providers</emphasis> that
62 allow the system to report what the full capabilities of the
63 system are as well as provide useful feedback. This also
64 includes a comprehensive "Help System".
70 Definitions that you should be aware of through this manual with respect
71 to <classname>Zend_Tool_Framework</classname> include:
77 <classname>Zend_Tool_Framework</classname> - The framework which exposes
84 <emphasis>Tooling Client</emphasis> - A developer tool that connects
85 to and consumes <classname>Zend_Tool_Framework</classname>.
91 <emphasis>Client</emphasis> - The subsystem of
92 <classname>Zend_Tool_Framework</classname> that exposes an interface such that
93 tooling clients can connect, query and execute commands.
99 <emphasis>Console Client / Command Line Interface /
100 <filename>zf.php</filename></emphasis> - The tooling client for the command line.
106 <emphasis>Provider</emphasis> - A subsystem and a collection of
107 built-in functionality that the framework exports.
113 <emphasis>Manifest</emphasis> - A subsystem for defining,
114 organizing, and disseminating provider requirement data.
120 <classname>Zend_Tool_Project</classname> Provider - A set of providers
121 specifically for creating and maintaining Zend Framework-based projects.