Changeset 182
- Timestamp:
- 04/17/07 14:37:01 (1 year ago)
- Files:
-
- trunk/docs/phing_guide/book/chapters/AboutThisBook.html (modified) (2 diffs)
- trunk/docs/phing_guide/book/chapters/BasicConcepts.html (modified) (6 diffs)
- trunk/docs/phing_guide/book/chapters/Bibliography.html (modified) (4 diffs)
- trunk/docs/phing_guide/book/chapters/GettingStarted.html (modified) (11 diffs)
- trunk/docs/phing_guide/book/chapters/Introduction.html (modified) (4 diffs)
- trunk/docs/phing_guide/book/chapters/ProjectComponents.html (modified) (1 diff)
- trunk/docs/phing_guide/book/chapters/Setup.html (modified) (12 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixA-FactSheet.html (modified) (1 diff)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html (modified) (4 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html (modified) (15 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixD-CoreTypes.html (modified) (2 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixE-ProjectComponents.html (modified) (1 diff)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixF-FileFormats.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/docs/phing_guide/book/chapters/AboutThisBook.html
r123 r182 13 13 <html xmlns="http://www.w3.org/1999/xhtml"> 14 14 <head> 15 <title> Phing Guide </title>15 <title>Phing Guide - About This Book</title> 16 16 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 17 17 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> 18 18 </head> 19 19 <body> 20 <h1>About this book</h1> <h2><a name="Authors"></a>Authors</h2> 20 <h1>About this book</h1> <h2><a name="Authors"></a>Authors</h2> 21 21 <ul> 22 22 <li>Andreas Aderhold, andi@binarycloud.com</li> … … 26 26 <li>Michiel Rook, michiel.rook@gmail.com</li> 27 27 </ul> 28 <p>Because Phing is based on Ant, parts of this manual are also adapted from the 28 <p>Because Phing is based on Ant, parts of this manual are also adapted from the 29 29 Ant manual (see <a href="Bibliography.html#ant">[ant]</a>).</p> 30 <h2><a name="CVS"></a>CVS</h2> 30 <h2><a name="CVS"></a>CVS</h2> 31 31 <p> 32 $Id$ 32 $Id$ 33 33 </p> 34 34 <p> 35 $Revision: 1.4 $ 35 $Revision: 1.4 $ 36 36 </p> 37 <h2><a name="Copyright"></a>Copyright</h2> 37 <h2><a name="Copyright"></a>Copyright</h2> 38 38 <p> Copyright 2003, turing and others. </p> 39 <h2><a name="License"></a>License</h2> 39 <h2><a name="License"></a>License</h2> 40 40 <p> 41 See the GNU FDL (<a href="Bibliography.html#gnu-fdl">[gnu-fdl]</a>, 42 which is included in this book. 41 See the GNU FDL (<a href="Bibliography.html#gnu-fdl">[gnu-fdl]</a>, 42 which is included in this book. 43 43 </p> 44 <pre>Copyright (c) 2002, turing<br />Permission is granted to copy, distribute and/or modify this document<br />under the terms of the GNU Free Documentation License, Version 1.1<br />or any later version published by the Free Software Foundation;<br />A copy of the license is included in the section entitled "License".</pre> 44 <pre>Copyright (c) 2002, turing<br />Permission is granted to copy, distribute and/or modify this document<br />under the terms of the GNU Free Documentation License, Version 1.1<br />or any later version published by the Free Software Foundation;<br />A copy of the license is included in the section entitled "License".</pre> 45 45 </body> 46 46 </html> trunk/docs/phing_guide/book/chapters/BasicConcepts.html
r123 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title>Phing Guide </title>10 <title>Phing Guide - Basic Concepts</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 17 17 <h1><a name="BasicConcepts"></a>Basic Concepts</h1> 18 18 19 <p> Technically Phing uses a layered model to perform its actions. The following 20 section briefly describes the layers used by Phing. If you're only a user who 21 does not want to extend Phing or are not interested in the interior of Phing 19 <p> Technically Phing uses a layered model to perform its actions. The following 20 section briefly describes the layers used by Phing. If you're only a user who 21 does not want to extend Phing or are not interested in the interior of Phing 22 22 you can safely skip this chapter.</p> 23 23 … … 30 30 different file located in different places:</p> 31 31 32 <p>The exact files and techniques used for the init process are not discussed 33 in this chapter. To get a brief idea simply browse the files mentioned above. 32 <p>The exact files and techniques used for the init process are not discussed 33 in this chapter. To get a brief idea simply browse the files mentioned above. 34 34 More detailed insights to the matter are given in: [REF].</p> 35 35 … … 40 40 throughout the system. First of all it determines the system 41 41 environment variables that have to be set during the installation 42 of Phing. See <a href="Setup.html">Setting up Phing</a> 43 for more information on setting up Phing. If this very essential 44 variables can not be found or guessed the program terminates with 45 a proper error message. We assume everything is set-up properly 42 of Phing. See <a href="Setup.html">Setting up Phing</a> 43 for more information on setting up Phing. If this very essential 44 variables can not be found or guessed the program terminates with 45 a proper error message. We assume everything is set-up properly 46 46 and the initialization of paths and constants went fine. 47 47 </p> … … 103 103 </p> 104 104 105 <p> Tasks are "pieces of code" that are executed. They are implemented 106 as classes. See <a href="ExtendingPhing.html">Extending Phing</a> for details. 107 Types are essentially the different type of variables that are available to 108 be used within tasks. These types may be complex (filesets, etc.) or simply 109 a wrapper for key/value pairs. Targets are "chunks of tasks and types" 105 <p> Tasks are "pieces of code" that are executed. They are implemented 106 as classes. See <a href="ExtendingPhing.html">Extending Phing</a> for details. 107 Types are essentially the different type of variables that are available to 108 be used within tasks. These types may be complex (filesets, etc.) or simply 109 a wrapper for key/value pairs. Targets are "chunks of tasks and types" 110 110 that have a unique name -- sorta like functions/methods. </p> 111 111 112 <p> Every project has a default target that is executed, if no target to execute 113 is given to Phing, but you can call other targets from the command line, too. 114 Targets may <em>depend</em> on each other, e.g. if Target A depends on Target 112 <p> Every project has a default target that is executed, if no target to execute 113 is given to Phing, but you can call other targets from the command line, too. 114 Targets may <em>depend</em> on each other, e.g. if Target A depends on Target 115 115 B, Phing will execute B before A. </p> 116 116 117 117 <h3><a name="BuildFileParser"></a>The Build File Parser</h3> 118 118 119 <p> So, but how to define these Projects and their components? Well, the answer 120 is: We define them within a <em>build file</em>. What format to chose? Because 121 build files have a hierarchical structure -- Projects containing targets, containing 119 <p> So, but how to define these Projects and their components? Well, the answer 120 is: We define them within a <em>build file</em>. What format to chose? Because 121 build files have a hierarchical structure -- Projects containing targets, containing 122 122 tasks etc. -- they are written in XML.</p> 123 123 … … 125 125 These XML files have to be parsed. For that, the Phing Layer provides 126 126 an XML parser that is give a list that maps tag names to classes. 127 So, for example, <em>ProjectParser</em> knows, the 127 So, for example, <em>ProjectParser</em> knows, the 128 128 <em><property></em> Tag and the information defined in it 129 129 is handled by <em>phing.tasks.system.PropertyTask</em>. trunk/docs/phing_guide/book/chapters/Bibliography.html
r123 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title> Phing Guide </title>10 <title>Phing Guide - Bibliography</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 15 15 <body> 16 16 17 <h1>Bibliography</h1> 17 <h1>Bibliography</h1> 18 18 19 19 <h2><a name="InternationalStandards"></a>International Standards</h2> … … 57 57 </ul> 58 58 </dd> 59 59 60 60 <dt><a name="gnu-fdl"></a>[gnu-fdl]</dt> 61 61 <dd> … … 129 129 </ul> 130 130 </dd> 131 131 132 132 <dt><a name="pollo"></a>[pollo]</dt> 133 133 <dd> trunk/docs/phing_guide/book/chapters/GettingStarted.html
r123 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title>Phing Guide </title>10 <title>Phing Guide - Getting Started</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 16 16 <h1><a name="GettingStarted"></a>Getting Started</h1> 17 17 18 <p> Phing buildfiles are written in XML, and so you will need to know at least 19 some basic things about XML to understand the following chapter. There is a 18 <p> Phing buildfiles are written in XML, and so you will need to know at least 19 some basic things about XML to understand the following chapter. There is a 20 20 lot of information available on the web: </p> 21 21 22 22 <ul> 23 <li>The Standard Recommendation of XML by the w3c 24 <a href="http://www.w3.org/TR/2000/REC-xml">http://www.w3.org/TR/2000/REC-xml</a>: 23 <li>The Standard Recommendation of XML by the w3c 24 <a href="http://www.w3.org/TR/2000/REC-xml">http://www.w3.org/TR/2000/REC-xml</a>: 25 25 very technical but exhaustive.</li> 26 <li><em>XML In 10 Points</em> 26 <li><em>XML In 10 Points</em> 27 27 <a href="http://www.w3.org/XML/1999/XML-in-10-points">http://www.w3.org/XML/1999/XML-in-10-points</a>: 28 28 Quick introduction into XML.</li> 29 <li><em>A technical introduction to XML</em> 29 <li><em>A technical introduction to XML</em> 30 30 <a href="http://www.xml.com/pub/a/98/10/guide0.html">http://www.xml.com/pub/a/98/10/guide0.html</a>: 31 31 Interesting article by the creator of DocBook. … … 41 41 <li>The document prolog</li> 42 42 <li>Exactly one root element called <em><project></em> .</li> 43 <li>Several Phing <em>type</em> elements (i.e. <em><property></em> , <em><fileset></em> 43 <li>Several Phing <em>type</em> elements (i.e. <em><property></em> , <em><fileset></em> 44 44 , <em><patternset></em> etc.)</li> 45 <li>One or more <em><target></em> elements containing built-in or user 46 defined Phing <em>task</em> elements (i.e. <em><install></em> , <em><bcc></em> 45 <li>One or more <em><target></em> elements containing built-in or user 46 defined Phing <em>task</em> elements (i.e. <em><install></em> , <em><bcc></em> 47 47 , etc).</li> 48 48 </ul> … … 50 50 <h2><a name="WritingASimpleBuildfile"></a>Writing A Simple Buildfile</h2> 51 51 52 <p>The Foobar project installs some PHP files from a source location to a target 53 location, creates an archive of this files and provides an optional clean-up 52 <p>The Foobar project installs some PHP files from a source location to a target 53 location, creates an archive of this files and provides an optional clean-up 54 54 of the build tree:</p> 55 55 … … 69 69 <copy file="./src/File2.php" to="./build/File2.php"/> 70 70 </target> 71 71 72 72 <target name="dist" depends="build"> 73 73 <echo message="Creating archive..." /> 74 74 <tar outfile="furbee.tar.gz" basedir="./build"/> 75 75 </target> 76 76 77 77 <target name="clean"> 78 78 <echo msg="Cleaning up..."/> … … 197 197 <tr> 198 198 <td>unless</td> 199 <td>The name of the <em>Property</em> that must <em>not</em> be set in 199 <td>The name of the <em>Property</em> that must <em>not</em> be set in 200 200 order for this target to be executed.</td> 201 201 <td></td> … … 223 223 attribute.</p> 224 224 225 <p>There is a set of core tasks (see <a href="appendixes/AppendixB-CoreTasks.html">Appendix 226 B</a>) along with a number of optional tasks. It is also very easy to write 225 <p>There is a set of core tasks (see <a href="appendixes/AppendixB-CoreTasks.html">Appendix 226 B</a>) along with a number of optional tasks. It is also very easy to write 227 227 your own tasks (see <a href="ExtendingPhing.html">Extending Phing</a>).</p> 228 228 … … 239 239 <h3><a name="PropertyElement"></a>Property Element</h3> 240 240 241 <p><em>Properties</em> are essentially variables that can be used in the buildfile. 242 These might be set in the buildfile by calling the <a href="appendixes/AppendixB-CoreTasks.html#PropertyTask">PropertyTask</a>, 243 or might be set outside Phing on the command line (properties set on the command 244 always line override the ones in the buildfile). A property has a name and a 245 value only. Properties may be used in the value of task attributes. This is 246 done by placing the property name between " <tt>${</tt> " and " 247 <tt>}</tt> " in the attribute value. For example, if there is a BC_BUILD_DIR 248 property with the value 'build', then this could be used in an attribute like 241 <p><em>Properties</em> are essentially variables that can be used in the buildfile. 242 These might be set in the buildfile by calling the <a href="appendixes/AppendixB-CoreTasks.html#PropertyTask">PropertyTask</a>, 243 or might be set outside Phing on the command line (properties set on the command 244 always line override the ones in the buildfile). A property has a name and a 245 value only. Properties may be used in the value of task attributes. This is 246 done by placing the property name between " <tt>${</tt> " and " 247 <tt>}</tt> " in the attribute value. For example, if there is a BC_BUILD_DIR 248 property with the value 'build', then this could be used in an attribute like 249 249 this: <em>${BC_BUILD_DIR}/en</em> . This is resolved to <em>build/en</em>.</p> 250 250 251 <p>It should be noted that if you use a property that is not defined via the property 252 task, the system environment table is searched for this name. For example, if 253 you would use the property <tt>${BCHOME}</tt> and you did not define this prior 254 in the buildfile or at the command line, Phing uses the environment variable 251 <p>It should be noted that if you use a property that is not defined via the property 252 task, the system environment table is searched for this name. For example, if 253 you would use the property <tt>${BCHOME}</tt> and you did not define this prior 254 in the buildfile or at the command line, Phing uses the environment variable 255 255 <tt>BCHOME</tt> if it exists.</p> 256 256 … … 260 260 defined using a <em><property></em> task. For example, 261 261 <em>${os.name}</em> expands to the name of the operating 262 system. See 262 system. See 263 263 <a href="appendixes/AppendixA-FactSheet.html#BuildInProperties">Appendix A</a> 264 264 for a complete list</p> … … 306 306 </p> 307 307 308 <p> The first five tags within the <em>project</em> tag define properties. They 308 <p> The first five tags within the <em>project</em> tag define properties. They 309 309 appear in the three ways this tag can occur: </p> 310 310 <ul> 311 <li>The first occurrence of the <em>property</em> tag only contains the <em>environment</em> 311 <li>The first occurrence of the <em>property</em> tag only contains the <em>environment</em> 312 312 tag. This way, it makes all environment variables available as "<em>env.VARIABLE_NAME</em>".</li> 313 <li>The second <em>property</em> tag contains only the <em>file</em> attribute. 314 The value has to be a relative or absolute path to a property file (for the 315 format, see <a href="appendixes/AppendixE-FileFormats.html">Appendix E</a>). 313 <li>The second <em>property</em> tag contains only the <em>file</em> attribute. 314 The value has to be a relative or absolute path to a property file (for the 315 format, see <a href="appendixes/AppendixE-FileFormats.html">Appendix E</a>). 316 316 </li> 317 <li>The other times, the tag has a <em>name</em> and a <em>value</em> attribute. 318 After the call, the value defined in the attribute <em>value</em> is available 317 <li>The other times, the tag has a <em>name</em> and a <em>value</em> attribute. 318 After the call, the value defined in the attribute <em>value</em> is available 319 319 through the key enclosed in "${" and "}". </li> 320 320 </ul> … … 329 329 330 330 <p> 331 The first task only contains a call to <em>CopyTask</em> via 332 <em><copy></em>. The interesting thing is within the 331 The first task only contains a call to <em>CopyTask</em> via 332 <em><copy></em>. The interesting thing is within the 333 333 <em>copy</em> tag. Here, a fileset task is not written out with 334 334 nested <em>include</em> or <em>exclude</em> elements, but 335 335 via the <em>refid</em>, the earlier create Fileset is referenced. 336 This way, you can use a once defined fileset multiple times in 336 This way, you can use a once defined fileset multiple times in 337 337 your build files. 338 338 </p> 339 339 340 <p> The only noticeable thing in the second target is the call to <em>PhingTask</em> 341 with the <em><phingcall></em> tag (see <a href="appendixes/AppendixB-CoreTasks.html#PhingCallTask">Appendix 342 B</a> for more information. The task executes a specified target within the 343 same build file. So, the second target removes the build directory and calls 344 <em>main</em> anew so the project is rebuilt. </p> 340 <p> The only noticeable thing in the second target is the call to <em>PhingTask</em> 341 with the <em><phingcall></em> tag (see <a href="appendixes/AppendixB-CoreTasks.html#PhingCallTask">Appendix 342 B</a> for more information. The task executes a specified target within the 343 same build file. So, the second target removes the build directory and calls 344 <em>main</em> anew so the project is rebuilt. </p> 345 345 346 346 </body> trunk/docs/phing_guide/book/chapters/Introduction.html
r123 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title>Phing Guide </title>10 <title>Phing Guide - Introduction</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" charset="iso-8859-1"/> … … 18 18 <h2><a name="WhatPhingIs"></a>What Phing Is</h2> 19 19 20 <p> Phing is a project build system based on Apache ant <a href="Bibliography.html#ant">[ant]</a>. 21 You can do anything with Phing that you could do with a traditional build system 22 like Gnu make <a href="Bibliography.html#gnumake">[gnumake]</a>, and Phing's 23 use of simple XML build files and extensible PHP "task" classes make 20 <p> Phing is a project build system based on Apache ant <a href="Bibliography.html#ant">[ant]</a>. 21 You can do anything with Phing that you could do with a traditional build system 22 like Gnu make <a href="Bibliography.html#gnumake">[gnumake]</a>, and Phing's 23 use of simple XML build files and extensible PHP "task" classes make 24 24 it an easy-to-use and highly flexible build framework.</p> 25 <p>Because Phing is based on Ant, parts of this manual are also adapted from the 26 ant manual (see <a href="Bibliography.html#ant">[ant]</a>). We are extremely 27 grateful to the folks in the Ant project for creating (and continuing to create) 28 such an inspiring build system model, and for the open-source licensing that 29 makes it possible for us to learn from each other and build increasingly better 25 <p>Because Phing is based on Ant, parts of this manual are also adapted from the 26 ant manual (see <a href="Bibliography.html#ant">[ant]</a>). We are extremely 27 grateful to the folks in the Ant project for creating (and continuing to create) 28 such an inspiring build system model, and for the open-source licensing that 29 makes it possible for us to learn from each other and build increasingly better 30 30 tools. </p> 31 <h2><a name="PhingAndBinarycloud"></a>Phing & Binarycloud: 31 <h2><a name="PhingAndBinarycloud"></a>Phing & Binarycloud: 32 32 History</h2> 33 33 34 <p> Phing was originally a subproject of Binarycloud. Binarycloud is a highly 35 engineered application framework, designed for use in enterprise environments. 36 Binarycloud uses XML extensively for storing metadata about a project (configuration, 37 nodes, widgets, site structure, etc.). Because Binarycloud is built for PHP, 38 performing extensive XML processing and transformations on each page request 39 is an unrealistic proposition. Phing is used to "compile" the XML 40 metadata into PHP arrays that can be processed without overhead by PHP scripts. 34 <p> Phing was originally a subproject of Binarycloud. Binarycloud is a highly 35 engineered application framework, designed for use in enterprise environments. 36 Binarycloud uses XML extensively for storing metadata about a project (configuration, 37 nodes, widgets, site structure, etc.). Because Binarycloud is built for PHP, 38 performing extensive XML processing and transformations on each page request 39 is an unrealistic proposition. Phing is used to "compile" the XML 40 metadata into PHP arrays that can be processed without overhead by PHP scripts. 41 41 </p> 42 <p>Of course, XML "compilation" is only one of many ways that Binarycloud 43 uses the Phing build system. The Phing build system makes it possible for you 42 <p>Of course, XML "compilation" is only one of many ways that Binarycloud 43 uses the Phing build system. The Phing build system makes it possible for you 44 44 to: </p> 45 45 <ul> 46 <li>Build multi language pages from one source tree (see binarycloud documentation 46 <li>Build multi language pages from one source tree (see binarycloud documentation 47 47 and [below in this document]), </li> 48 <li>Centralize metadata (e.g. your data model) in one XML file and generate 48 <li>Centralize metadata (e.g. your data model) in one XML file and generate 49 49 several files from that XML with different XSLT.</li> 50 50 </ul> 51 51 52 <p> It the beginning, Binarycloud used the GNU make system; however, this approach 53 had some drawbacks: The "space-before-tab"-problem in makefiles, the 54 fact that it is only natively available for Unix systems etc. So, the need for 55 a better build system arose. Apache Ant was a logical choice -- do to its use 56 of XML build files and modular design. The problem was that Ant is written in 57 Java, so you need to install a JVM on your computer to use it. Besides the need 58 for yet another interpreter (i.e. besides PHP), there was also legal/ideological 59 conflict in requiring a commercial JVM (there were problems with Ant on JVMs 52 <p> It the beginning, Binarycloud used the GNU make system; however, this approach 53 had some drawbacks: The "space-before-tab"-problem in makefiles, the 54 fact that it is only natively available for Unix systems etc. So, the need for 55 a better build system arose. Apache Ant was a logical choice -- do to its use 56 of XML build files and modular design. The problem was that Ant is written in 57 Java, so you need to install a JVM on your computer to use it. Besides the need 58 for yet another interpreter (i.e. besides PHP), there was also legal/ideological 59 conflict in requiring a commercial JVM (there were problems with Ant on JVMs 60 60 other than Sun's) for an LGPL'd Binarycloud.</p> 61 61 62 <p>So, the development of Phing began. Phing is a build system written in PHP 63 and uses the ideas of Ant. The first release was designed & developed simultaneously, 64 and thus not very sophisticated. This original system was quickly pushed to 65 its limits and the need for a better Phing became a priority. Andreas Anderhold, 66 who was responsible for Phing/r1, designed and wrote much of the Phing/r2 that 62 <p>So, the development of Phing began. Phing is a build system written in PHP 63 and uses the ideas of Ant. The first release was designed & developed simultaneously, 64 and thus not very sophisticated. This original system was quickly pushed to 65 its limits and the need for a better Phing became a priority. Andreas Anderhold, 66 who was responsible for Phing/r1, designed and wrote much of the Phing/r2 that 67 67 followed. Phing/r2 became the Phing-1.0 that exists today for PHP4.</p> 68 69 <p>The current development of Phing is focused on Phing 2, which has involved 70 a number of bugfixes, functionality enhancements, and most significantly a conversion 71 of the codebase to use new PHP5 features such as abstract classes, interfaces, 68 69 <p>The current development of Phing is focused on Phing 2, which has involved 70 a number of bugfixes, functionality enhancements, and most significantly a conversion 71 of the codebase to use new PHP5 features such as abstract classes, interfaces, 72 72 and try/catch/throw exception handling.</p> 73 73 … … 75 75 <p>Phing uses XML <em>buildfiles</em> that contain a description of the things to do. The buildfile 76 76 is structured into targets that contain the actual commands to perform (e.g. commands to copy a file, 77 delete a directory, perform a DB query, etc.). So, to use Phing, you would first write your buildfile 77 delete a directory, perform a DB query, etc.). So, to use Phing, you would first write your buildfile 78 78 and then you would run phing, specifying the target in your buildfile that you want to execute.</p> 79 79 <pre title="simple phing example">% phing -f mybuildfile.xml mytarget</pre> … … 84 84 <h2><a name="HowCanIHelp"></a>Cool, so how can I help?</h2> 85 85 86 <p>Phing is under active development and there are many things to be done. To 86 <p>Phing is under active development and there are many things to be done. To 87 87 get involved, you can start by doing the following:</p> 88 88 <ul> trunk/docs/phing_guide/book/chapters/ProjectComponents.html
r181 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title>Phing Guide </title>10 <title>Phing Guide - Project Components</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> trunk/docs/phing_guide/book/chapters/Setup.html
r123 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title>Phing Guide </title>11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>Phing Guide - Setup</title> 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> 13 13 </head> … … 16 16 <h1><a name="SettingUpPhing"></a>Setting-Up Phing</h1> 17 17 18 <p>The goal of this chapter is to help you obtain and correctly setup and execute 19 Phing on your operating system. Once you setup Phing properly you shouldn't 20 need to revisit this chapter, unless you're re-installing or moving your installation 18 <p>The goal of this chapter is to help you obtain and correctly setup and execute 19 Phing on your operating system. Once you setup Phing properly you shouldn't 20 need to revisit this chapter, unless you're re-installing or moving your installation 21 21 to another platform.</p> 22 22 23 23 <h2><a name="SystemRequirements"></a>System Requirements</h2> 24 24 25 <p> To use Phing you must have installed PHP version 5.0.0b1 or above compiled 26 --with-libxml2, as well as --with-xsl if you want to make use of advanced functionality. 27 At the time of writing PHP5.0.0b2-dev is currently unable to run Phing due to 25 <p> To use Phing you must have installed PHP version 5.0.0b1 or above compiled 26 --with-libxml2, as well as --with-xsl if you want to make use of advanced functionality. 27 At the time of writing PHP5.0.0b2-dev is currently unable to run Phing due to 28 28 segmentation faults arising somewhere in the XML parsing of the build file.</p> 29 29 30 <p> For more information on PHP and the required modules see the PHP <a href="Bibliography.html#php">[php]</a> 30 <p> For more information on PHP and the required modules see the PHP <a href="Bibliography.html#php">[php]</a> 31 31 website. For a brief list of software dependencies see below. </p> 32 32 33 33 <h3><a name="OperatingSystems"></a>Operating Systems</h3> 34 34 35 <p> Designed for portability from the get go, Phing runs on all platforms that 36 run PHP. However some advanced funcionality may not work properly or is simply 35 <p> Designed for portability from the get go, Phing runs on all platforms that 36 run PHP. However some advanced funcionality may not work properly or is simply 37 37 ignored on some platforms (i.e. chmod on the Windows platform). </p> 38 38 39 <p> To get the most out of Phing, a Unix style platform is recommended. Namely: 39 <p> To get the most out of Phing, a Unix style platform is recommended. Namely: 40 40 Linux, FreeBSD, OpenBSD, etc. </p> 41 41 … … 47 47 <table> 48 48 <caption> 49 Software Dependencies 49 Software Dependencies 50 50 </caption> 51 51 <thead> 52 <tr> 52 <tr> 53 53 <th>Software</th> 54 54 <th>Required for</th> … … 57 57 </thead> 58 58 <tbody> 59 <tr> 59 <tr> 60 60 <td>PHP 5.0.1+</td> 61 61 <td>Execution</td> 62 62 <td><a href="http://www.php.net">http://www.php.net</a></td> 63 63 </tr> 64 <tr> 64 <tr> 65 65 <td>PHPUnit2 2.2.0+</td> 66 66 <td>Additional functionality</td> 67 67 <td><a href="http://www.phpunit.de">http://www.phpunit.de</a></td> 68 68 </tr> 69 <tr> 69 <tr> 70 70 <td>Xdebug 2.0.0b2+</td> 71 71 <td>Additional functionality</td> 72 72 <td><a href="http://www.xdebug.org">http://www.xdebug.org</a></td> 73 73 </tr> 74 <tr> 74 <tr> 75 75 <td>PhpDocumentor 1.3.0RC3+</td> 76 76 <td>Additional functionality</td> … … 87 87 <h3><a name="DistributionFiles"></a>Distribution Files</h3> 88 88 89 <p> There are several ways to get a Phing distribution package. If you do not 90 want to participate in developing Phing itself it is recommended that you get 91 the latest snapshot or stable packaged distribution. If you are interested in 92 helping with Phing development, get a CVS revision of the files, as described 89 <p> There are several ways to get a Phing distribution package. If you do not 90 want to participate in developing Phing itself it is recommended that you get 91 the latest snapshot or stable packaged distribution. If you are interested in 92 helping with Phing development, get a CVS revision of the files, as described 93 93 below. </p> 94 94 95 <p> The easiest way to obtain the distribution package is to visit the Phing website 96 <a href="Bibliography.html#phing">[phing] </a>and download the current distribution 95 <p> The easiest way to obtain the distribution package is to visit the Phing website 96 <a href="Bibliography.html#phing">[phing] </a>and download the current distribution 97 97 package in the format you desire. </p> 98 <p>As of version 2.0.0b1, you have the option of downloading a PEAR-installable 99 package or the full phing distribution. If you wish to modify phing we suggestion 100 downloading the full version so that you can (e.g.) create your own PEAR package. 101 If you simply wish to use Phing for your own project or need it to build another 98 <p>As of version 2.0.0b1, you have the option of downloading a PEAR-installable 99 package or the full phing distribution. If you wish to modify phing we suggestion 100 downloading the full version so that you can (e.g.) create your own PEAR package. 101 If you simply wish to use Phing for your own project or need it to build another 102 102 package, download & install the PEAR package.</p> 103 103 … … 122 122 resources available on how to use CVS 123 123 <a href="Bibliography.html#cvs-howto">[cvs-howto]</a> and on CVS 124 speciaities on the Tigris project management platfrom 124 speciaities on the Tigris project management platfrom 125 125 <a href="Bibliography.html#cvs-tigris">[cvs-tigris]</a>.</p> 126 126 … … 155 155 files and make changes.</p> 156 156 157 <p>The top-level CVS module contains the Phing project website in addition to 157 <p>The top-level CVS module contains the Phing project website in addition to 158 158 the phing application; the Phing files, therefore, reside in the phing/ subdirectory:</p> 159 159 … … 162 162 </pre> 163 163 <h2><a name="Setup.PearInstall"></a>PEAR Install</h2> 164 <p>The easiest way to install Phing is using the PEAR installer. Provided that 165 the package you downloaded is a the PEAR-ready package, you can install Phing 164 <p>The easiest way to install Phing is using the PEAR installer. Provided that 165 the package you downloaded is a the PEAR-ready package, you can install Phing 166 166 simply from the command line (Unix or Windows):</p> 167 167 <pre>$> pear install phing-2.0.0b1-pear.tar.gz</pre> 168 <p>The pear installer will check any dependencies and place the phing script (phing 169 or phing.bat) into your PHP script directoy (i.e. where the "pear" 168 <p>The pear installer will check any dependencies and place the phing script (phing 169 or phing.bat) into your PHP script directoy (i.e. where the "pear" 170 170 script resides).</p> 171 171 172 172 <h2><a name="Setup.NonPearInstall"></a>Non-PEAR Install</h2> 173 173 174 <p>If you are not using the PEAR installer, you will need to setup your environment 175 in order to run Phing. The distribution of Phing consists of three directories: 176 <em>bin</em> , <em>docs</em> and <em>classes</em> . Only the <em>bin</em> and 177 <em>classes</em> directories are required to run Phing. To install Phing, choose 178 a directory and uncompress the distribution file in that directory (you may 179 already have done this in a prior step). This directory will be known as <em>PHING_HOME</em> 174 <p>If you are not using the PEAR installer, you will need to setup your environment 175 in order to run Phing. The distribution of Phing consists of three directories: 176 <em>bin</em> , <em>docs</em> and <em>classes</em> . Only the <em>bin</em> and 177 <em>classes</em> directories are required to run Phing. To install Phing, choose 178 a directory and uncompress the distribution file in that directory (you may 179 already have done this in a prior step). This directory will be known as <em>PHING_HOME</em> 180 180 .</p> 181 181 182 <p><strong>On Windows 95 and Windows 98, the script used to launch Phing will 183 have problems if PHING_HOME is a long filepath. This is due to limitations in 184 the OS's handling of the "for" batch-file statement. It is recommended, therefore, 182 <p><strong>On Windows 95 and Windows 98, the script used to launch Phing will 183 have problems if PHING_HOME is a long filepath. This is due to limitations in 184 the OS's handling of the "for" batch-file statement. It is recommended, therefore, 185 185 that Phing be installed in a short path, such as C:\opt\phing.</strong></p> 186 186 … … 197 197 Php binary is located (including the binary i.e. 198 198 PHP_COMMAND=/usr/bin/php).</li> 199 <li>Set the <em>PHP_CLASSPATH</em> environment variable (see the section below). 200 This should be set at least point to PHING_HOME/classes. Alternatively, you 201 can also just add the phing/classes directory to your PHP include_path ini 199 <li>Set the <em>PHP_CLASSPATH</em> environment variable (see the section below). 200 This should be set at least point to PHING_HOME/classes. Alternatively, you 201 can also just add the phing/classes directory to your PHP include_path ini 202 202 setting.</li> 203 203 <li>Check your php.ini file to make sure that you have the following settings: … … 209 209 </ul> 210 210 211 <p>If you are using Phing in conjunction with another application, you may need 211 <p>If you are using Phing in conjunction with another application, you may need 212 212 to add additional paths to PHP_CLASSPATH.</p> 213 213 … … 238 238 <h3>Advanced</h3> 239 239 240 <p>There are lots of variants that can be used to run/prepare Phing. You need 240 <p>There are lots of variants that can be used to run/prepare Phing. You need 241 241 at least the following:</p> 242 242 <ul> 243 <li>If you want Phing to be able to use other packages / classes, you can either 243 <li>If you want Phing to be able to use other packages / classes, you can either 244 244 add them to the PHP_CLASSPATH or to PHP's include_path.</li> 245 <li>Some Tasks in phing/tasks/ext may require 3rd party libraries to be installed. 246 Generally, tools with compatible license (and stable releases) are included 247 in phing/lib so that outside dependencies can be avoided. PEAR libs will not, 248 however, be bundled with Phing since they are generally bundled with PHP. 249 If you are using a 3rd party task, see the Task documentation to be aware 245 <li>Some Tasks in phing/tasks/ext may require 3rd party libraries to be installed. 246 Generally, tools with compatible license (and stable releases) are included 247 in phing/lib so that outside dependencies can be avoided. PEAR libs will not, 248 however, be bundled with Phing since they are generally bundled with PHP. 249 If you are using a 3rd party task, see the Task documentation to be aware 250 250 of any dependencies.</li> 251 251 </ul> 252 252 253 <p>You are now ready to use the <tt>phing</tt> command at your command prompt, 253 <p>You are now ready to use the <tt>phing</tt> command at your command prompt, 254 254 from everywhere in your directory tree.</p> 255 255 … … 271 271 <p>at the command line (where [targetname] is the target you 272 272 want to be executed). Optionally, you may specify command line 273 arguments as listed in 273 arguments as listed in 274 274 <a href="appendixes/AppendixA-FactSheet.html#CommandLineArguments">Appendix A</a>. 275 275 </p> trunk/docs/phing_guide/book/chapters/appendixes/AppendixA-FactSheet.html
r179 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title> Phing Guide</title>10 <title>Phing Guide - Fact Sheet</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> trunk/docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html
r170 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title> Phing Guide</title>10 <title>Phing Guide - Core Tasks</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 299 299 <h2><a name="ConditionTask"></a>ConditionTask</h2> 300 300 <p>Sets a property if a certain condition holds true - this is a 301 generalization of <a href="#AvailableTask">Available</a> and 301 generalization of <a href="#AvailableTask">Available</a> and 302 302 <a href="#UpToDateTask">UpToDate</a>.</p> 303 303 <p>If the condition holds true, the property value is set to true by … … 305 305 something other than the default by specifying the <code>value</code> 306 306 attribute.</p> 307 <p>Conditions are specified as nested elements, you must specify exactly 308 one condition - see the <a href="../ProjectComponents.html#Conditions">documentation</a> 307 <p>Conditions are specified as nested elements, you must specify exactly 308 one condition - see the <a href="../ProjectComponents.html#Conditions">documentation</a> 309 309 for a complete list of nested elements.</p> 310 310 <h3>Example</h3> … … 839 839 <p> 840 840 This task doesn't have any attributes, the condition to test is specified by a nested 841 element - see the <a href="../ProjectComponents.html#Conditions">documentation</a> 841 element - see the <a href="../ProjectComponents.html#Conditions">documentation</a> 842 842 for a complete list of nested elements.</p> 843 843 <p>Just like the <code><condition></code> task, only a trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html
r170 r182 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title> Phing Guide</title>10 <title>Phing Guide - Optional Tasks</title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 519 519 <td>No</td> 520 520 </tr> 521 521 522 522 <tr> 523 523 <td>destdir</td> … … 527 527 <td rowspan="2">Yes</td> 528 528 </tr> 529 529 530 530 <tr> 531 531 <td>target</td> … … 542 542 <td>Yes</td> 543 543 </tr> 544 544 545 545 <tr> 546 546 <td>sourcecode</td> … … 550 550 <td>No</td> 551 551 </tr> 552 552 553 553 <tr> 554 554 <td>examplesdir</td> … … 558 558 <td>No</td> 559 559 </tr> 560 560 561 561 <tr> 562 562 <td>parseprivate</td> … … 566 566 <td>No</td> 567 567 </tr> 568 568 569 569 <tr> 570 570 <td>javadocdesc</td> … … 574 574 <td>No</td> 575 575 </tr> 576 576 577 577 <tr> 578 578 <td>quiet</td> … … 582 582 <td>No</td> 583 583 </tr> 584 584 585 585 <tr> 586 586 <td>packageoutput</td> … … 590 590 <td>No</td> 591 591 </tr> 592 592 593 593 <tr> 594 594 <td>ignoretags</td> … … 598 598 <td>No</td> 599 599 </tr> 600 600 601 601 <tr> 602 602 <td>defaultpackagename</td> … … 606 606 <td>No</td> 607 607 </tr> 608 608 609 609 <tr> 610 610 <td>defaultcategoryname</td> … … 614 614 <td>No</td> 615 615 </tr> 616 616 617 617 <tr> 618 618 <td>pear</td> … … 622 622 <td>No</td> 623 623 </tr> 624 624 625 625 </tbody> 626 626 </table> … …
