[ZF-10089] Zend_Log
[zend.git] / documentation / manual / en / module_specs / Zend_Tool_Framework-Introduction.xml
blob8ef798a1f055d0df3948dd4557c01d7fe76d1da4
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect1 id="zend.tool.framework.introduction">
4     <title>Introduction</title>
6     <para>
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.
15     </para>
17     <para>
18         <classname>Zend_Tool_Framework</classname> provides the following:
19     </para>
21     <itemizedlist>
22         <listitem>
23             <para>
24                 <emphasis>Common interfaces and abstracts</emphasis> that allow
25                 developers to create functionality and capabilities that are
26                 dispatchable by tooling clients.
27             </para>
28         </listitem>
30         <listitem>
31             <para>
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
36                 the Windows console.
37             </para>
38         </listitem>
40         <listitem>
41             <para>
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
47                 providers.
48             </para>
49         </listitem>
51         <listitem>
52             <para>
53                 <emphasis>An introspective loading system</emphasis> that will
54                 scan the environment for providers and determine what is
55                 required to dispatch them.
56             </para>
57         </listitem>
59         <listitem>
60             <para>
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".
65             </para>
66         </listitem>
67     </itemizedlist>
69     <para>
70         Definitions that you should be aware of through this manual with respect
71         to <classname>Zend_Tool_Framework</classname> include:
72     </para>
74     <itemizedlist>
75         <listitem>
76             <para>
77                 <classname>Zend_Tool_Framework</classname> - The framework which exposes
78                 tooling capabilities.
79             </para>
80         </listitem>
82         <listitem>
83             <para>
84                 <emphasis>Tooling Client</emphasis> - A developer tool that connects
85                 to and consumes <classname>Zend_Tool_Framework</classname>.
86             </para>
87         </listitem>
89         <listitem>
90             <para>
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.
94             </para>
95         </listitem>
97         <listitem>
98             <para>
99                 <emphasis>Console Client / Command Line Interface /
100                 <filename>zf.php</filename></emphasis> - The tooling client for the command line.
101             </para>
102         </listitem>
104         <listitem>
105             <para>
106                 <emphasis>Provider</emphasis> - A subsystem and a collection of
107                 built-in functionality that the framework exports.
108             </para>
109         </listitem>
111         <listitem>
112             <para>
113                 <emphasis>Manifest</emphasis> - A subsystem for defining,
114                 organizing, and disseminating provider requirement data.
115             </para>
116         </listitem>
118         <listitem>
119             <para>
120                 <classname>Zend_Tool_Project</classname> Provider - A set of providers
121                 specifically for creating and maintaining Zend Framework-based projects.
122             </para>
123         </listitem>
124     </itemizedlist>
125 </sect1>