Browse Source

ZF-7260
- Documentation added for Zend_Tool_Framework new features

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@17272 44c647ce-9c0f-0410-b52a-842ac1e357ba

ralph 16 years ago
parent
commit
5e0165eda7

+ 1 - 0
documentation/manual/en/manual.xml.in

@@ -527,6 +527,7 @@
         <xi:include href="module_specs/Zend_Tool_Framework-Architecture.xml" />
         <xi:include href="module_specs/Zend_Tool_Framework-WritingProviders.xml" />
         <xi:include href="module_specs/Zend_Tool_Framework-SystemProviders.xml" />
+        <xi:include href="module_specs/Zend_Tool_Framework-Extending.xml" />
     </chapter>
 
     <chapter id="zend.tool.project">

+ 198 - 0
documentation/manual/en/module_specs/Zend_Tool_Framework-Extending.xml

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<sect1 id="zend.tool.framework.extending">
+
+    <title>Extending and Configuring Zend_Tool_Framework</title>
+
+    <sect2 id="zend.tool.framework.console-client">
+        <title>Customizing Zend_Tool Console Client</title>
+    
+        <para>
+			As of ZF 1.9, Zend_Tool_Framework allows developers to
+			store information, provider specific configuration values,
+			and custom files in a special location on the developers 
+			machine.  These configuration values and files can be used 
+			by providers to extend functionality, customize
+			functionality, or any other reasons a provider sees fit.
+	    </para>
+	    
+	    <para>
+			The primary purpose, and the purpose most immediately
+			used by existing providers is to allow developers to
+			customize the way the "out of the box" providers do work.
+	    </para>
+
+        <para>
+			One of the more commonly requested features is to be able 
+			to provide custom project profiles to Zend_Tool_Project's 
+			Project Provider.  This would allow developers to store a 
+			custom profile in a special place that can be used repeatedly 
+			by the Zend_Tool system in order to build custom profiles.
+			Another commonly requested feature is to be able to configure
+			the behavior of providers with a configuration setting.  In
+			order to achieve this, not only do we have to have a 
+			Zend_Tool configuration file, but we also have to have a place
+			to find this configuration file. 
+        </para>
+
+        <sect3 id="zend.tool.framework.console-client.home-directory">
+            <title>The Home Directory</title>
+            
+            <para>
+				Before the Console Client can start searching for a Zend_Tool
+				configuration file or a local storage directory, it must
+				first be able to identify where the "home directory" is
+				located.
+		    </para>
+				
+		    <para>
+				On *nix-based machines, PHP will be populated with an environment
+				variable named HOME with a path to the current users
+				home directory.  Typically, this path will be very similar
+				to /home/myusername.
+			</para>
+				
+			<para>
+				On Windows-based machines, PHP will typically be populated with
+				an environment variable named HOMEPATH with the current
+				users home directory.  This directory is usually found
+				in either C:\Documents and Settings\Username\ or, in Vista:
+				C:\Users\Username.
+			</para>
+			
+			<para>
+				If either a home directory cannot be found, or you wish to
+				change the location of where Zend_Tool_Frameworks Console
+				Client finds the home directory, you can provide an environment
+				variable named ZF_HOME to specify where to find the home
+				directory.
+            </para>
+        
+        
+        </sect3>
+
+
+        <sect3 id="zend.tool.framework.console-client.local-storage">
+            <title>Local Storage</title>
+            
+            <para>
+				Once a home directory can be located, Zend_Tool_Framework's 
+				Console Client can either autodiscover the local storage
+				directory, or it can be told where to expect the local
+				storage directory.
+            </para>
+            
+            <para>
+				Assuming the home directory has been found (here noted 
+				as $HOME), the Console Client will then look for the
+				local storage directory in $HOME/.zf/.  If found, it will
+				set the local storage directory to this location.
+            </para>
+            
+            <para>
+				If the directory cannot be found, or the developer wishes
+				to override this location, that can be done via setting
+				and environment variable.  Regardless if $HOME has been
+				previously set or not, the developer may supply the 
+				environment variable ZF_STORAGE_DIRECTORY.  
+            </para>
+            
+            <para>
+				Once the path to a local storage directory is found, the
+				directory MUST exist for it to be passed into the
+				Zend_Tool_Framework runtime, as it will not be created
+				for you.
+            </para>
+            
+        </sect3>
+
+        <sect3 id="zend.tool.framework.console-client.configuration-file">
+            <title>User Configuration</title>
+
+
+            <para>
+				Like local storage, once a home directory can be located,
+				Zend_Tool_Framework's Console Client can then either
+				attempt to autodiscover the path to a configuration
+				file, or it can be told specifically where to find
+				the configuration file.
+            </para>
+            
+            <para>
+				Assuming the home directory has been found (here noted
+				as $HOME), the Console Client will then attempt to
+				look for the existence of a configuration file located
+				at $HOME/.zf.ini.  This file, if found, will be used
+				as the configuration file for Zend_Tool_Framework.
+            </para>
+            
+            <para>
+				If that location does not exist, but a local storage 
+				directory does, then the Console Client will then
+				attempt to locate the configuration file within the
+				local storage directory.  Assuming the local storage
+				directory exists in $LOCAL_STORAGE, then if a file
+				exists as $LOCAL_STORAGE/zf.ini, it will be found
+				by the Console Client and utilized as the 
+				Zend_Tool_Framework configuration file.
+			</para>
+
+            <para>
+				If the file cannot be autodiscovered or the developer
+				wishes to specify the location of location of the
+				configuration file, the developer can do so by
+				setting an evironment variable.  If the environment
+				variable ZF_CONFIG_FILE is set, then its value will
+				be used as the location of the configuration file
+				to use with the Console Client.
+            </para>
+
+            <para>
+				If the file does not exist in either the autodiscovered
+				or the provided location, it will not be used as 
+				Zend_Tool_Framework does not attempt to create the
+				file automatically.
+			</para>
+        
+        </sect3>
+
+        <sect3 id="zend.tool.framework.console-client.configuration-content">
+            <title>User Configuration File Content</title>
+            
+            <para>
+				The configuration file should be structured as 
+				a Zend_Config configuration file, in ini format, and
+				without any sections being defined.  First level
+				keys should be used by the provider searching for
+				a specific value.  For example, if the "Project"
+				provider is expecting a "profiles" directory, 
+				then it should typically be understood that
+				it will search for the following ini key value pair:
+            </para>
+            
+            <programlisting language="php"><![CDATA[
+project.profile = some/path/to/some-directory
+]]></programlisting>
+        
+            <para>
+				The only reserved ini prefix is the value "php".
+				The "php" prefix to values will be reserved to
+				store names and values of runtime settable php values,
+				such as: include_path or error_reporting.  To override
+				the include_path and error_reporting with an ini value, 
+				a developer would set:
+            </para>
+            
+            <programlisting language="php"><![CDATA[
+php.include_path = "/path/to/includes1:/path/to/includes2"
+php.error_reporting = 1
+]]></programlisting>
+
+        </sect3>
+	    
+    </sect2>
+    
+    
+
+
+</sect1>