source: docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html @ 7e969e3

Last change on this file since 7e969e3 was 7e969e3, checked in by Michiel Rook <mrook@…>, 3 years ago

Add parallel and trycatch to docs

  • Property mode set to 100755
File size: 236.2 KB
Line 
1<!--
2-File         $Id$
3-License      GNU FDL (http://www.gnu.org/copyleft/fdl.html)
4-Copyright    2002, turing
5-Author       alex black, enigma@turingstudio.com
6-->
7<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
8   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9<html xmlns="http://www.w3.org/1999/xhtml">
10<head>
11<title>Phing Guide - Optional Tasks</title>
12<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
13<link rel="Stylesheet" rev="Stylesheet"
14        href="../../css/Documentation.css" type="text/css" media="All"
15        charset="iso-8859-1" />
16</head>
17<body>
18                <h1>
19                        <a name="AppendixC-OptionalTasks"></a>Appendix C: Optional Tasks </h1>
20                <p>This appendix contains a reference of all optional tasks, i.e. tasks that are not
21                        directly needed for building projects, but can assist in various aspects of development
22                        and deployment.</p>
23                <p> This reference lists the tasks alphabetically by the name of the classes that implement
24                        the tasks. So if you are searching for the reference to the <code>&lt;phplint&gt;</code>
25                        tag, for example, you will want to look at the reference of PhpLintTask. </p>
26                       
27                <h2>
28                        <a name="ApiGenTask"></a>ApiGenTask
29                </h2>
30                <p>
31                        This task runs <a href="http://apigen.org/" target="_blank">ApiGen</a>,
32                        a tool for creating professional API documentation from PHP source code,
33                        similar to discontinued phpDocumentor/phpDoc.
34                </p>
35                <h3>Attributes</h3>
36                <table>
37                        <thead>
38                                <tr>
39                                        <th>Name</th>
40                                        <th>Type</th>
41                                        <th>Description</th>
42                                        <th>Default</th>
43                                        <th>Required</th>
44                                </tr>
45                        </thead>
46                        <tbody>
47                                <tr>
48                                        <td>executable</td>
49                                        <td>String</td>
50                                        <td>ApiGen executable name.</td>
51                                        <td>apigen</td>
52                                        <td>No</td>
53                                </tr>
54                                <tr>
55                                        <td>config</td>
56                                        <td>String</td>
57                                        <td>Config file name.</td>
58                                        <td>n/a</td>
59                                        <td rowspan="2">Source and destination are required - either set explicitly
60                                                or using a config file. Attribute values set explicitly have precedence
61                                                over values from a config file.</td>
62                                </tr>
63                                <tr>
64                                        <td>source</td>
65                                        <td>String</td>
66                                        <td>List of source files or directories.</td>
67                                        <td>n/a</td>
68                                </tr>
69                                <tr>
70                                        <td>destination</td>
71                                        <td>String</td>
72                                        <td>Destination directory.</td>
73                                        <td>n/a</td>
74                                </tr>
75                                <tr>
76                                        <td>extensions</td>
77                                        <td>String</td>
78                                        <td>List of allowed file extensions.</td>
79                                        <td>php</td>
80                                        <td>No</td>
81                                </tr>
82                                <tr>
83                                        <td>exclude</td>
84                                        <td>String</td>
85                                        <td>List of masks (case sensitive) to exclude files or directories from processing.</td>
86                                        <td>n/a</td>
87                                        <td>No</td>
88                                </tr>
89                                <tr>
90                                        <td>skipdocpath</td>
91                                        <td>String</td>
92                                        <td>List of masks (case sensitive) to exclude elements from documentation generating.</td>
93                                        <td>n/a</td>
94                                        <td>No</td>
95                                </tr>
96                                <tr>
97                                        <td>skipdocprefix</td>
98                                        <td>String</td>
99                                        <td>Name prefix (case sensitive) to exclude elements from documentation generating.</td>
100                                        <td>n/a</td>
101                                        <td>No</td>
102                                </tr>
103                                <tr>
104                                        <td>charset</td>
105                                        <td>String</td>
106                                        <td>Character set of source files.</td>
107                                        <td>auto</td>
108                                        <td>No</td>
109                                </tr>
110                                <tr>
111                                        <td>main</td>
112                                        <td>String</td>
113                                        <td>Main project name prefix.</td>
114                                        <td>n/a</td>
115                                        <td>No</td>
116                                </tr>
117                                <tr>
118                                        <td>title</td>
119                                        <td>String</td>
120                                        <td>Title of generated documentation.</td>
121                                        <td>n/a</td>
122                                        <td>No</td>
123                                </tr>
124                                <tr>
125                                        <td>baseurl</td>
126                                        <td>String</td>
127                                        <td>Documentation base URL.</td>
128                                        <td>n/a</td>
129                                        <td>No</td>
130                                </tr>
131                                <tr>
132                                        <td>googlecseid</td>
133                                        <td>String</td>
134                                        <td>Google Custom Search ID.</td>
135                                        <td>n/a</td>
136                                        <td>No</td>
137                                </tr>
138                                <tr>
139                                        <td>googlecselabel</td>
140                                        <td>String</td>
141                                        <td>Google Custom Search label.</td>
142                                        <td>n/a</td>
143                                        <td>No</td>
144                                </tr>
145                                <tr>
146                                        <td>googleanalytics</td>
147                                        <td>String</td>
148                                        <td>Google Analytics tracking code.</td>
149                                        <td>n/a</td>
150                                        <td>No</td>
151                                </tr>
152                                <tr>
153                                        <td>templateconfig</td>
154                                        <td>String</td>
155                                        <td>Template config file name.</td>
156                                        <td>n/a</td>
157                                        <td>If not set the default template is used.</td>
158                                </tr>
159                                <tr>
160                                        <td>allowedhtml</td>
161                                        <td>String</td>
162                                        <td>List of HTML tags allowed in the documentation.</td>
163                                        <td>b,i,a,ul,ol,li,p,br,var,samp,kbd,tt</td>
164                                        <td>No</td>
165                                </tr>
166                                <tr>
167                                        <td>groups</td>
168                                        <td>String</td>
169                                        <td>How should elements be grouped in the menu.</td>
170                                        <td>auto</td>
171                                        <td>No</td>
172                                </tr>
173                                <tr>
174                                        <td>autocomplete</td>
175                                        <td>String</td>
176                                        <td>Element types for search input autocomplete.</td>
177                                        <td>classes,constants,functions</td>
178                                        <td>No</td>
179                                </tr>
180                                <tr>
181                                        <td>accesslevels</td>
182                                        <td>String</td>
183                                        <td>Element access levels. Documentation only for methods and properties
184                                                with the given access level will be generated.</td>
185                                        <td>public,protected</td>
186                                        <td>No</td>
187                                </tr>
188                                <tr>
189                                        <td>internal</td>
190                                        <td>Boolean</td>
191                                        <td>Whether to generate documentation for elements marked as internal
192                                                and internal documentation parts or not.</td>
193                                        <td>No</td>
194                                        <td>No</td>
195                                </tr>
196                                <tr>
197                                        <td>php</td>
198                                        <td>Boolean</td>
199                                        <td>Whether to generate documentation for PHP internal classes or not.</td>
200                                        <td>Yes</td>
201                                        <td>No</td>
202                                </tr>
203                                <tr>
204                                        <td>tree</td>
205                                        <td>Boolean</td>
206                                        <td>Whether to generate tree view of classes, interfaces, traits
207                                                and exceptions or not.</td>
208                                        <td>Yes</td>
209                                        <td>No</td>
210                                </tr>
211                                <tr>
212                                        <td>deprecated</td>
213                                        <td>Boolean</td>
214                                        <td>Whether to generate documentation for deprecated elements or not.</td>
215                                        <td>No</td>
216                                        <td>No</td>
217                                </tr>
218                                <tr>
219                                        <td>todo</td>
220                                        <td>Boolean</td>
221                                        <td>Whether to generate documentation of tasks or not.</td>
222                                        <td>No</td>
223                                        <td>No</td>
224                                </tr>
225                                <tr>
226                                        <td>sourcecode</td>
227                                        <td>Boolean</td>
228                                        <td>Whether to generate highlighted source code files or not.</td>
229                                        <td>Yes</td>
230                                        <td>No</td>
231                                </tr>
232                                <tr>
233                                        <td>download</td>
234                                        <td>Boolean</td>
235                                        <td>Whether to generate a link to download documentation as a ZIP archive or not.</td>
236                                        <td>No</td>
237                                        <td>No</td>
238                                </tr>
239                                <tr>
240                                        <td>report</td>
241                                        <td>String</td>
242                                        <td>File name for checkstyle report of poorly documented elements.</td>
243                                        <td>n/a</td>
244                                        <td>No</td>
245                                </tr>
246                                <tr>
247                                        <td>wipeout</td>
248                                        <td>Boolean</td>
249                                        <td>Whether to wipe out the destination directory first or not.</td>
250                                        <td>Yes</td>
251                                        <td>No</td>
252                                </tr>
253                                <tr>
254                                        <td>quiet</td>
255                                        <td>Boolean</td>
256                                        <td>Whether to enable scaning and generating messages or not.</td>
257                                        <td>No</td>
258                                        <td>No</td>
259                                </tr>
260                                <tr>
261                                        <td>updatecheck</td>
262                                        <td>Boolean</td>
263                                        <td>Whether to check for ApiGen updates or not.</td>
264                                        <td>No</td>
265                                        <td>No</td>
266                                </tr>
267                                <tr>
268                                        <td>debug</td>
269                                        <td>Boolean</td>
270                                        <td>Whether to enable the debug mode or not.</td>
271                                        <td>No</td>
272                                        <td>No</td>
273                                </tr>
274                        </tbody>
275                </table>
276                <h3>Examples</h3>
277                <pre>
278&lt;apigen
279&nbsp;&nbsp;source=&quot;classes&quot;
280&nbsp;&nbsp;destination=&quot;api&quot;
281&nbsp;&nbsp;exclude=&quot;*/tests/*&quot;
282&nbsp;&nbsp;title=&quot;My Project API Documentation&quot;
283&nbsp;&nbsp;deprecated=&quot;true&quot;
284&nbsp;&nbsp;todo="true"/&gt;
285</pre>
286                <h2>
287                        <a name="CoverageMergerTask"></a>CoverageMergerTask </h2>
288                <p>The CoverageMergerTask merges code coverage information from external sources with an
289                        existing code coverage database.</p>
290                <p>The format of the code coverage files is expected to be identical to:</p>
291                <pre>
292file_put_contents('/www/live/testcases/coverage.data', serialize(xdebug_get_code_coverage));
293</pre>
294                <h3>Supported Nested Tags</h3>
295                <ul>
296                        <li>fileset</li>
297                </ul>
298                <h3>Example</h3>
299                <pre>
300&lt;coverage-merger&gt;
301&nbsp;&nbsp;&lt;fileset dir=&quot;/www/live/testcases&quot;&gt;
302&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.data"/&gt;
303&nbsp;&nbsp;&lt;/fileset&gt;
304&lt;/coverage-merger&gt;
305</pre>
306                <h2>
307                        <a name="CoverageReportTask"></a>CoverageReportTask </h2>
308                <p>The CoverageReportTask formats a coverage database into a framed HTML report using XSLT.
309                        The report can optionally make use of the <b>Ge</b>neric <b>S</b>yntax
310                        <b>Hi</b>ghlighting library, <em>GeSHi</em> (See <a href="http://qbnz.com/highlighter/"
311                                >GeSHi Homepage</a>) library to mark up source code. The path to the library (if not
312                        in the default path) can be specified as an attribute.</p>
313                <h3>Attributes</h3>
314                <table>
315                        <thead>
316                                <tr>
317                                        <th>Name</th>
318                                        <th>Type</th>
319                                        <th>Description</th>
320                                        <th>Default</th>
321                                        <th>Required</th>
322                                </tr>
323                        </thead>
324                        <tbody>
325                                <tr>
326                                        <td>outfile</td>
327                                        <td>String</td>
328                                        <td>The location for the intermediate XML file.</td>
329                                        <td>coverage.db</td>
330                                        <td>Yes</td>
331                                </tr>
332                                <tr>
333                                        <td>classpath</td>
334                                        <td>String</td>
335                                        <td>Additional classpath to locate source referenced in the report</td>
336                                        <td>n/a</td>
337                                        <td>No</td>
338                                </tr>
339                                <tr>
340                                        <td>geshipath</td>
341                                        <td>String</td>
342                                        <td>Path to GeSHi highlighting library</td>
343                                        <td>n/a</td>
344                                        <td>No/Yes* If syntax highlighting si to be enabled</td>
345                                </tr>
346                                <tr>
347                                        <td>geshilanguagespath</td>
348                                        <td>String</td>
349                                        <td>Language to use with GeSHi</td>
350                                        <td>n/a</td>
351                                        <td>No</td>
352                                </tr>
353                        </tbody>
354                </table>
355                <h3>Supported Nested Tags</h3>
356                <ul>
357                        <li>report <h3>Attributes</h3>
358                                <table>
359                                        <thead>
360                                                <tr>
361                                                        <th>Name</th>
362                                                        <th>Type</th>
363                                                        <th>Description</th>
364                                                        <th>Default</th>
365                                                        <th>Required</th>
366                                                </tr>
367                                        </thead>
368                                        <tbody>
369                                                <tr>
370                                                        <td>styledir</td>
371                                                        <td>String</td>
372                                                        <td>The directory where the stylesheets are located.</td>
373                                                        <td>n/a</td>
374                                                        <td>Yes</td>
375                                                </tr>
376                                                <tr>
377                                                        <td>todir</td>
378                                                        <td>String</td>
379                                                        <td>The directory where the files resulting from the transformation
380                                                                should be written to.</td>
381                                                        <td></td>
382                                                        <td>Yes</td>
383                                                </tr>
384                                                <tr>
385                                                        <td>title</td>
386                                                        <td>String</td>
387                                                        <td>Title of the project (used in the generated document(s))</td>
388                                                        <td></td>
389                                                        <td>No</td>
390                                                </tr>
391                                                <tr>
392                                                        <td>usesorttable</td>
393                                                        <td>boolean</td>
394                                                        <td>Whether to use the sorttable JavaScript library (see <a
395                                                                        href="http://www.kryogenix.org/code/browser/sorttable/"
396                                                                        >http://www.kryogenix.org/code/browser/sorttable/</a>)</td>
397                                                        <td>false</td>
398                                                        <td>No</td>
399                                                </tr>
400                                        </tbody>
401                                </table></li>
402                </ul>
403                <h3>Example</h3>
404                <pre>
405&lt;coverage-report outfile=&quot;reports/coverage.xml&quot;&gt;
406&nbsp;&nbsp;&lt;report todir=&quot;reports/coverage&quot; styledir=&quot;/home/phing/etc&quot;/&gt;
407&lt;/coverage-report&gt;
408</pre>
409                <h2>
410                        <a name="CoverageSetupTask"></a>CoverageSetupTask </h2>
411                <p>The CoverageSetupTask prepares a database which can be used to gather code coverage
412                        information for unit tests.</p>
413                <h3>Attributes</h3>
414                <table>
415                        <thead>
416                                <tr>
417                                        <th>Name</th>
418                                        <th>Type</th>
419                                        <th>Description</th>
420                                        <th>Default</th>
421                                        <th>Required</th>
422                                </tr>
423                        </thead>
424                        <tbody>
425                                <tr>
426                                        <td>database</td>
427                                        <td>String</td>
428                                        <td>The location for the coverage database.</td>
429                                        <td>coverage.db</td>
430                                        <td>Yes</td>
431                                </tr>
432                        </tbody>
433                </table>
434                <h3>Supported Nested Tags</h3>
435                <ul>
436                        <li>classpath</li>
437                        <li>fileset</li>
438                        <li>filelist</li>
439                </ul>
440                <h3>Example</h3>
441                <pre>
442&lt;coverage-setup database=&quot;./reports/coverage.db&quot;&gt;
443&nbsp;&nbsp;&lt;fileset dir=&quot;classes&quot;&gt;
444&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.php"/&gt;
445&nbsp;&nbsp;&lt;/fileset&gt;
446&lt;/coverage-setup&gt;
447&lt;phpunit codecoverage=&quot;true&quot;&gt;
448&nbsp;&nbsp;&lt;batchtest&gt;
449&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir=&quot;src&quot;&gt;
450&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name=&quot;*Test.php&quot;/&gt;
451&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;
452&nbsp;&nbsp;&lt;/batchtest&gt;
453&lt;/phpunit&gt;
454</pre>
455                <h2>
456                        <a name="CoverageThresholdTask"></a>CoverageThresholdTask </h2>
457                <p>This task validates the code coverage database and will stop the build cycle if any class
458                        or method or entire project's coverage is lower than the specified threshold.</p>
459                <h3>Attributes</h3>
460                <table>
461                        <thead>
462                                <tr>
463                                        <th>Name</th>
464                                        <th>Type</th>
465                                        <th>Description</th>
466                                        <th>Default</th>
467                                        <th>Required</th>
468                                </tr>
469                        </thead>
470                        <tbody>
471                                <tr>
472                                        <td>database</td>
473                                        <td>String</td>
474                                        <td>The location of the coverage database. (This is optional if
475                                                        <em>CoverageSetupTask</em> has run before)</td>
476                                        <td>n/a</td>
477                                        <td>No</td>
478                                </tr>
479                                <tr>
480                                        <td>perProject</td>
481                                        <td>Integer</td>
482                                        <td>The minimum code coverage for the entire project.</td>
483                                        <td>25</td>
484                                        <td>No</td>
485                                </tr>
486                                <tr>
487                                        <td>perClass</td>
488                                        <td>Integer</td>
489                                        <td>The minimum code coverage for any class.</td>
490                                        <td>25</td>
491                                        <td>No</td>
492                                </tr>
493                                <tr>
494                                        <td>perMethod</td>
495                                        <td>Integer</td>
496                                        <td>The minimum code coverage for any method.</td>
497                                        <td>25</td>
498                                        <td>No</td>
499                                </tr>
500                                <tr>
501                                        <td>verbose</td>
502                                        <td>Boolean</td>
503                                        <td>Whether to enable detailed logging or not.</td>
504                                        <td>false</td>
505                                        <td>No</td>
506                                </tr>
507                        </tbody>
508                </table>
509                <h3>Supported Nested Tags</h3>
510                <ul>
511                        <li>classpath</li>
512                        <li>excludes</li>
513                </ul>
514                <h3>Example</h3>
515                <pre>
516&lt;coverage-threshold database=&quot;./reports/coverage.db&quot;/&gt;
517</pre>
518                <p>Validates an optional code coverage database against the default thresholds.</p>
519                <pre>
520&lt;coverage-threshold
521    perProject=&quot;50&quot;
522    perClass=&quot;60&quot;
523    perMethod=&quot;70&quot;/&gt;
524</pre>
525                <p>Validates the code coverage database (from CoverageSetupTask) against the specified
526                        thresholds.</p>
527                <pre>
528&lt;coverage-threshold
529    perProject=&quot;50&quot;
530    perClass=&quot;60&quot;
531    perMethod=&quot;70&quot;/&gt;
532    &lt;excludes&gt;
533        &lt;file&gt;**/*Processor.php&lt;/file&gt;
534        &lt;class&gt;Model_Filter_Windows&lt;/class&gt;
535        &lt;method&gt;Model_System::execute()&lt;/method&gt;
536    &lt;/excludes&gt;
537</pre>
538                <p>Validates the code coverage database (from CoverageSetupTask) against the specified
539                        thresholds and excludes the given file, class and method from threshold validation. The
540                        filename is relative to the project basedir. A Method can be named either
541                        "Model_System::execute()" or "Model_System::execute". The method name is considered only
542                        for the given class "Model_System".</p>
543                <h2>
544                        <a name="DbDeployTask"></a>DbDeployTask </h2>
545                <p> The <em>DbDeployTask</em> creates .sql files for making revisions to a database, based
546                        on dbdeploy conventions centering around a changelog table in the database. See <a
547                                href="http://dbdeploy.com/documentation/getting-started/rules-for-using-dbdeploy/"
548                                >rules for using dbdeploy</a> for more information. You will need a changelog table
549                        like so: </p>
550                <pre>CREATE TABLE changelog (
551  change_number BIGINT NOT NULL,
552  delta_set VARCHAR(10) NOT NULL,
553  start_dt TIMESTAMP NOT NULL,
554  complete_dt TIMESTAMP NULL,
555  applied_by VARCHAR(100) NOT NULL,
556  description VARCHAR(500) NOT NULL
557)</pre>
558                <h3>Example</h3>
559                <pre>
560&lt;dbdeploy
561  url=&quot;sqlite:${project.basedir}/data/db.sqlite&quot;
562  userid=&quot;dbdeploy&quot;
563  password=&quot;dbdeploy&quot;
564  dir=&quot;${project.basedir}/data/dbdeploy/deltas&quot;
565/&gt;
566</pre>
567                <p>The above example uses a sqlite database and delta scripts located in dbdeploy/deltas in
568                        the project base dir.</p>
569                <h3>Attributes</h3>
570                <table>
571                        <thead>
572                                <tr>
573                                        <th>Name</th>
574                                        <th>Type</th>
575                                        <th>Description</th>
576                                        <th>Default</th>
577                                        <th>Required</th>
578                                </tr>
579                        </thead>
580                        <tbody>
581                                <tr>
582                                        <td>url</td>
583                                        <td>String</td>
584                                        <td>PDO connection url</td>
585                                        <td>n/a</td>
586                                        <td>Yes</td>
587                                </tr>
588                                <tr>
589                                        <td>userid</td>
590                                        <td>String</td>
591                                        <td>DB userid to use for accessing the changelog table</td>
592                                        <td>none</td>
593                                        <td>As required by db</td>
594                                </tr>
595                                <tr>
596                                        <td>password</td>
597                                        <td>String</td>
598                                        <td>DB password to use for accessing the changelog table</td>
599                                        <td>none</td>
600                                        <td>As required by db</td>
601                                </tr>
602                                <tr>
603                                        <td>dir</td>
604                                        <td>String</td>
605                                        <td>Directory containing dbdeploy delta scripts</td>
606                                        <td>none</td>
607                                        <td>Yes</td>
608                                </tr>
609                                <tr>
610                                        <td>outputfile</td>
611                                        <td>String</td>
612                                        <td>Filename in which deployment SQL will be generated</td>
613                                        <td>dbdeploy_deploy.sql</td>
614                                        <td>No</td>
615                                </tr>
616                                <tr>
617                                        <td>undooutputfile</td>
618                                        <td>String</td>
619                                        <td>Filename in which undo SQL will be generated</td>
620                                        <td>dbdeploy_undo.sql</td>
621                                        <td>No</td>
622                                </tr>
623                                <tr>
624                                        <td>deltaset</td>
625                                        <td>String</td>
626                                        <td>deltaset to check within db</td>
627                                        <td>Main</td>
628                                        <td>No</td>
629                                </tr>
630                                <tr>
631                                        <td>lastchangetoapply</td>
632                                        <td>Integer</td>
633                                        <td>Highest-numbered delta script to apply to db</td>
634                                        <td>999</td>
635                                        <td>No</td>
636                                </tr>
637                        </tbody>
638                </table>
639                <h2>
640                        <a name="DocBloxTask"></a>DocBloxTask </h2>
641                <p> This task runs <a href="http://www.docblox-project.org/" target="_blank">DocBlox</a>, a
642                        PHP 5.3-compatible API documentation tool. </p>
643                <h3>Attributes</h3>
644                <table>
645                        <thead>
646                                <tr>
647                                        <th>Name</th>
648                                        <th>Type</th>
649                                        <th>Description</th>
650                                        <th>Default</th>
651                                        <th>Required</th>
652                                </tr>
653                        </thead>
654                        <tbody>
655                                <tr>
656                                        <td>title</td>
657                                        <td>String</td>
658                                        <td>Title of the project.</td>
659                                        <td>n/a</td>
660                                        <td>No</td>
661                                </tr>
662                                <tr>
663                                        <td>destdir</td>
664                                        <td>String</td>
665                                        <td>Destination directory for output files.</td>
666                                        <td>n/a</td>
667                                        <td>Yes</td>
668                                </tr>
669                <tr>
670                                        <td>template</td>
671                                        <td>String</td>
672                                        <td>Name of the DocBlox template to use.</td>
673                                        <td>default</td>
674                                        <td>No</td>
675                                </tr>
676                                <tr>
677                                        <td>quiet</td>
678                                        <td>Boolean</td>
679                                        <td>Suppress DocBlox chatter.</td>
680                                        <td>true</td>
681                                        <td>No</td>
682                                </tr>
683                        </tbody>
684                </table>
685                <h3>Supported Nested Tags</h3>
686                <ul>
687                        <li>fileset - Files that should be included for parsing</li>
688                </ul>
689                <h3>Examples</h3>
690                <pre>
691&lt;docblox title=&quot;API Documentation&quot;
692  destdir=&quot;apidocs&quot;&gt;
693  template=&quot;new_black&quot;&gt;
694   &lt;fileset dir=&quot;./classes&quot;&gt;
695      &lt;include name=&quot;**/*.php&quot; /&gt;
696   &lt;/fileset&gt;
697&lt;/docblox&gt;
698</pre>
699                <h2>
700                        <a name="ExportPropertiesTask"></a>ExportPropertiesTask </h2>
701                <p>Exports all defined properties to a specified file.</p>
702                <h3>Example</h3>
703                <pre>
704&lt;exportproperties targetfile="output.props" /&gt;
705</pre>
706                <h3>Attributes</h3>
707                <table>
708                        <thead>
709                                <tr>
710                                        <th>Name</th>
711                                        <th>Type</th>
712                                        <th>Description</th>
713                                        <th>Default</th>
714                                        <th>Required</th>
715                                </tr>
716                        </thead>
717                        <tbody>
718                                <tr>
719                                        <td>targetfile</td>
720                                        <td>String</td>
721                                        <td>Target file for saved properties</td>
722                                        <td>n/a</td>
723                                        <td>Yes</td>
724                                </tr>
725                                <tr>
726                                        <td>disallowedPropertyPrefixes</td>
727                                        <td>String</td>
728                                        <td>Exclude properties starting with these prefixes (separated by
729                                                <em>,</em></td>
730                                        <td><em>'host.'</em>, <em>'phing.'</em>, <em>'os.'</em>, <em>'php.'</em>,
731                                                        <em>'line.'</em>, <em>'env.'</em>, <em>'user.'</em></td>
732                                        <td>No</td>
733                                </tr>
734                        </tbody>
735                </table>
736                <h2>
737                        <a name="FileHashTask"></a>FileHashTask </h2>
738                <p>Calculates either MD5 or SHA1 hash value of a file and stores the value as a hex string
739                        in a property.</p>
740                <h3>Example</h3>
741                <pre>
742&lt;filehash file="${builddir}/${tarball}.tar.${compression}" /&gt;
743&lt;echo "Hashvalue is; ${filehashvalue}" /&gt;
744</pre>
745                <h3>Attributes</h3>
746                <table>
747                        <thead>
748                                <tr>
749                                        <th>Name</th>
750                                        <th>Type</th>
751                                        <th>Description</th>
752                                        <th>Default</th>
753                                        <th>Required</th>
754                                </tr>
755                        </thead>
756                        <tbody>
757                                <tr>
758                                        <td>file</td>
759                                        <td>String</td>
760                                        <td>Filename</td>
761                                        <td>n/a</td>
762                                        <td>Yes</td>
763                                </tr>
764                                <tr>
765                                        <td>hashtype</td>
766                                        <td>Integer</td>
767                                        <td>Specifies what hash algorithm to use. 0=MD5, 1=SHA1</td>
768                                        <td>0</td>
769                                        <td>No</td>
770                                </tr>
771                                <tr>
772                                        <td>propertyname</td>
773                                        <td>String</td>
774                                        <td>Name of property where the hash value is stored</td>
775                                        <td>filehashvalue</td>
776                                        <td>No</td>
777                                </tr>
778                        </tbody>
779                </table>
780                <h2>
781                        <a name="FileSizeTask"></a>FileSizeTask </h2>
782                <p>Stores the size of a specified file in a property. The file size is returned in
783                        bytes.</p>
784                <h3>Example</h3>
785                <pre>
786&lt;filesize file="${builddir}/${tarball}.tar.${compression}" /&gt;
787&lt;php expression="floor(${filesize}/1024)" returnProperty="ksize" /&gt;
788&lt;php expression="floor(${filesize}/1024/1024)" returnProperty="msize" /&gt;
789&lt;echo msg="Filesize is: ${ksize} kB"/&gt;
790&lt;echo msg="Filesize is: ${msize} MB"/&gt;
791</pre>
792                <h3>Attributes</h3>
793                <table>
794                        <thead>
795                                <tr>
796                                        <th>Name</th>
797                                        <th>Type</th>
798                                        <th>Description</th>
799                                        <th>Default</th>
800                                        <th>Required</th>
801                                </tr>
802                        </thead>
803                        <tbody>
804                                <tr>
805                                        <td>file</td>
806                                        <td>String</td>
807                                        <td>Filename</td>
808                                        <td>n/a</td>
809                                        <td>Yes</td>
810                                </tr>
811                                <tr>
812                                        <td>propertyname</td>
813                                        <td>String</td>
814                                        <td>Name of property where the file size is stored</td>
815                                        <td>filesize</td>
816                                        <td>No</td>
817                                </tr>
818                        </tbody>
819                </table>
820                <h2>
821                        <a name="FtpDeployTask"></a>FtpDeployTask </h2>
822                <p>Deploys a set of files to a remote FTP server.</p>
823                <h3>Example</h3>
824                <pre>&lt;ftpdeploy
825  host="${ftp.host}"
826  port="${ftp.port}"
827  username="${ftp.username}"
828  password="${ftp.password}"
829  dir="${ftp.dir}"
830  passive=&quot;false&quot;
831  mode="${ftp.mode}"&gt;
832  &lt;fileset dir=&quot;.&quot;&gt;
833    &lt;include name=&quot;**&quot;/&gt;
834    &lt;exclude name=&quot;phing&quot;/&gt;
835    &lt;exclude name=&quot;build.xml&quot;/&gt;
836    &lt;exclude name=&quot;images/**.png&quot;/&gt;
837    &lt;exclude name=&quot;images/**.gif&quot;/&gt;
838    &lt;exclude name=&quot;images/**.jpg&quot;/&gt;
839  &lt;/fileset&gt;
840&lt;/ftpdeploy&gt;
841</pre>
842                <h3>Attributes</h3>
843                <table>
844                        <thead>
845                                <tr>
846                                        <th>Name</th>
847                                        <th>Type</th>
848                                        <th>Description</th>
849                                        <th>Default</th>
850                                        <th>Required</th>
851                                </tr>
852                        </thead>
853                        <tbody>
854                                <tr>
855                                        <td>host</td>
856                                        <td>String</td>
857                                        <td>The hostname of the remote server.</td>
858                                        <td>none</td>
859                                        <td>Yes</td>
860                                </tr>
861                                <tr>
862                                        <td>port</td>
863                                        <td>Integer</td>
864                                        <td>The port of the remote server.</td>
865                                        <td>21</td>
866                                        <td>No</td>
867                                </tr>
868                                <tr>
869                                        <td>username</td>
870                                        <td>String</td>
871                                        <td>The username to use when logging in to the remote server.</td>
872                                        <td>none</td>
873                                        <td>Yes</td>
874                                </tr>
875                                <tr>
876                                        <td>password</td>
877                                        <td>String</td>
878                                        <td>The password to use when logging in to the remote server</td>
879                                        <td>none</td>
880                                        <td>Yes</td>
881                                </tr>
882                                <tr>
883                                        <td>dir</td>
884                                        <td>String</td>
885                                        <td>Directory on the remote server.</td>
886                                        <td>none</td>
887                                        <td>No</td>
888                                </tr>
889                                <tr>
890                                        <td>mode</td>
891                                        <td>String</td>
892                                        <td>The transfer mode to use, either <em>ascii</em> or <em>binary</em>.</td>
893                                        <td>binary</td>
894                                        <td>No</td>
895                                </tr>
896                                <tr>
897                                        <td>clearfirst</td>
898                                        <td>Boolean</td>
899                                        <td>Delete all files in the remote directory before uploading</td>
900                                        <td>false</td>
901                                        <td>No</td>
902                                </tr>
903                                <tr>
904                                        <td>passive</td>
905                                        <td>Boolean</td>
906                                        <td>Open connection in passive mode</td>
907                                        <td>false</td>
908                                        <td>No</td>
909                                </tr>
910                                <tr>
911                                        <td>level</td>
912                                        <td>String</td>
913                                        <td>Control the level at which the task reports status messages. One of
914                                                        <em>error</em>, <em>warning</em>, <em>info</em>, <em>verbose</em>,
915                                                        <em>debug</em>.</td>
916                                        <td><em>verbose</em></td>
917                                        <td>No</td>
918                                </tr>
919                        </tbody>
920                </table>
921                <h3>Supported Nested Tags</h3>
922                <ul>
923                        <li>fileset <p>The files to deploy</p></li>
924                </ul>
925                <h2>
926                        <a name="GitInitTask"></a>GitInitTask </h2>
927                <p>Create an empty git repository or reinitialize an existing one.</p>
928                <h3>Attributes</h3>
929                <table>
930                        <thead>
931                                <tr>
932                                        <th>Name</th>
933                                        <th>Type</th>
934                                        <th>Description</th>
935                                        <th>Default</th>
936                                        <th>Required</th>
937                                </tr>
938                        </thead>
939                        <tbody>
940                                <tr>
941                                        <td>gitPath</td>
942                                        <td>String</td>
943                                        <td>Path to Git binary</td>
944                                        <td>/usr/bin/git</td>
945                                        <td>No</td>
946                                </tr>
947                                <tr>
948                                        <td>repository</td>
949                                        <td>String</td>
950                                        <td>Path to Git repository</td>
951                                        <td>n/a</td>
952                                        <td>Yes</td>
953                                </tr>
954                                <tr>
955                                        <td>bare</td>
956                                        <td>Boolean</td>
957                                        <td>Create bare repository. See --bare option of <a
958                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-init.html"
959                                                        >git-init</a>.</td>
960                                        <td>false</td>
961                                        <td>No</td>
962                                </tr>
963                        </tbody>
964                </table>
965                <h3>Example</h3>
966                <pre>
967&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
968&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
969
970&lt;!-- Initialize normal repository --&gt;
971&lt;gitinit repository="${repo.dir.resolved}" /&gt;
972
973&lt;!-- Initialize bare repository --&gt;
974&lt;gitinit bare="true" repository="${repo.dir.resolved}" /&gt;
975</pre>
976                <h2>
977                        <a name="GitCloneTask"></a>GitCloneTask </h2>
978                <p>Clone a repository into a new directory.</p>
979                <h3>Attributes</h3>
980                <table>
981                        <thead>
982                                <tr>
983                                        <th>Name</th>
984                                        <th>Type</th>
985                                        <th>Description</th>
986                                        <th>Default</th>
987                                        <th>Required</th>
988                                </tr>
989                        </thead>
990                        <tbody>
991                                <tr>
992                                        <td>gitPath</td>
993                                        <td>String</td>
994                                        <td>Path to Git binary</td>
995                                        <td>/usr/bin/git</td>
996                                        <td>No</td>
997                                </tr>
998                                <tr>
999                                        <td>repository</td>
1000                                        <td>String</td>
1001                                        <td>The (possibly remote) repository to clone from.</td>
1002                                        <td>n/a</td>
1003                                        <td>Yes</td>
1004                                </tr>
1005                                <tr>
1006                                        <td>targetPath</td>
1007                                        <td>String</td>
1008                                        <td>The name of a new directory to clone into. Cloning into an existing
1009                                                directory is only allowed if the directory is empty.</td>
1010                                        <td>n/a</td>
1011                                        <td>Yes</td>
1012                                </tr>
1013                                <tr>
1014                                        <td>bare</td>
1015                                        <td>Boolean</td>
1016                                        <td>Create bare repository. See --bare option of <a
1017                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html"
1018                                                        >git-clone</a>.</td>
1019                                        <td>false</td>
1020                                        <td>No</td>
1021                                </tr>
1022                        </tbody>
1023                </table>
1024                <h3>Example</h3>
1025                <pre>
1026&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1027&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1028
1029&lt;!-- Clone repository --&gt;
1030&lt;gitclone
1031    repository="git://github.com/path/to/repo/repo.git"
1032    targetPath="${repo.dir.resolved}" /&gt;
1033
1034&lt;!-- Clone bare repository --&gt;
1035&lt;gitclone
1036    repository="git://github.com/path/to/repo/repo.git"
1037    targetPath="${repo.dir.resolved}"
1038    bare="true" /&gt;
1039</pre>
1040                <h2>
1041                        <a name="GitGcTask"></a>GitGcTask </h2>
1042                <p>Cleanup unnecessary files and optimize the local repository.</p>
1043                <h3>Attributes</h3>
1044                <table>
1045                        <thead>
1046                                <tr>
1047                                        <th>Name</th>
1048                                        <th>Type</th>
1049                                        <th>Description</th>
1050                                        <th>Default</th>
1051                                        <th>Required</th>
1052                                </tr>
1053                        </thead>
1054                        <tbody>
1055                                <tr>
1056                                        <td>gitPath</td>
1057                                        <td>String</td>
1058                                        <td>Path to Git binary</td>
1059                                        <td>/usr/bin/git</td>
1060                                        <td>No</td>
1061                                </tr>
1062                                <tr>
1063                                        <td>repository</td>
1064                                        <td>String</td>
1065                                        <td>The repository to cleanup.</td>
1066                                        <td>n/a</td>
1067                                        <td>Yes</td>
1068                                </tr>
1069                                <tr>
1070                                        <td>aggressive</td>
1071                                        <td>Boolean</td>
1072                                        <td>This option will cause git gc to more aggressively optimize the repository
1073                                                at the expense of taking much more time. See --aggressive option of <a
1074                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html"
1075                                                        >git-gc</a>.</td>
1076                                        <td>false</td>
1077                                        <td>No</td>
1078                                </tr>
1079                                <tr>
1080                                        <td>auto</td>
1081                                        <td>Boolean</td>
1082                                        <td>With this option, git gc checks whether any housekeeping is required; if
1083                                                not, it exits without performing any work. See --auto option of <a
1084                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html"
1085                                                        >git-gc</a>.</td>
1086                                        <td>false</td>
1087                                        <td>No</td>
1088                                </tr>
1089                                <tr>
1090                                        <td>noprune</td>
1091                                        <td>Boolean</td>
1092                                        <td>Do not prune any loose objects. See --no-prune option of <a
1093                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html"
1094                                                        >git-gc</a>.</td>
1095                                        <td>false</td>
1096                                        <td>No</td>
1097                                </tr>
1098                                <tr>
1099                                        <td>prune</td>
1100                                        <td>string</td>
1101                                        <td>Prune loose objects older than date. See --prune option of <a
1102                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-gc.html"
1103                                                        >git-gc</a>.</td>
1104                                        <td>2.weeks.ago</td>
1105                                        <td>No</td>
1106                                </tr>
1107                        </tbody>
1108                </table>
1109                <h3>Example</h3>
1110                <pre>
1111&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1112&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1113
1114&lt;!-- Clone repository --&gt;
1115&lt;gitclone
1116    repository="git://github.com/path/to/repo/repo.git"
1117    targetPath="${repo.dir.resolved}" /&gt;
1118
1119&lt;!-- Cleanup repository--&gt;
1120&lt;gitgc
1121    repository="${repo.dir.resolved}"
1122    aggressive="true"
1123    prune="1.week.ago" /&gt;
1124</pre>
1125                <h2>
1126                        <a name="GitBranchTask"></a>GitBranchTask </h2>
1127                <p> Create, move or delete repository branches. See official <a
1128                                href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html"
1129                                >documentation</a> (branch listing functionality is omitted in current
1130                        implementation). </p>
1131                <h3>Attributes</h3>
1132                <table>
1133                        <thead>
1134                                <tr>
1135                                        <th>Name</th>
1136                                        <th>Type</th>
1137                                        <th>Description</th>
1138                                        <th>Default</th>
1139                                        <th>Required</th>
1140                                </tr>
1141                        </thead>
1142                        <tbody>
1143                                <tr>
1144                                        <td>gitPath</td>
1145                                        <td>String</td>
1146                                        <td>Path to Git binary</td>
1147                                        <td>/usr/bin/git</td>
1148                                        <td>No</td>
1149                                </tr>
1150                                <tr>
1151                                        <td>repository</td>
1152                                        <td>String</td>
1153                                        <td>Path to Git repository</td>
1154                                        <td>n/a</td>
1155                                        <td>Yes</td>
1156                                </tr>
1157                                <tr>
1158                                        <td>branchname</td>
1159                                        <td>String</td>
1160                                        <td>The name of the branch to create or delete.</td>
1161                                        <td>n/a</td>
1162                                        <td>Yes</td>
1163                                </tr>
1164                                <tr>
1165                                        <td>newbranch</td>
1166                                        <td>String</td>
1167                                        <td>The new name for an existing branch.</td>
1168                                        <td>n/a</td>
1169                                        <td>Yes, if branch move invoked</td>
1170                                </tr>
1171                                <tr>
1172                                        <td>startpoint</td>
1173                                        <td>String</td>
1174                                        <td>The new branch head will point to this commit. It may be given as a branch
1175                                                name, a commit-id, or a tag. If this option is omitted, the current HEAD
1176                                                will be used instead. See &lt;start-point&gt; argument of <a
1177                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html"
1178                                                        >git-branch</a>.</td>
1179                                        <td></td>
1180                                        <td>No</td>
1181                                </tr>
1182                                <tr>
1183                                        <td>setupstream</td>
1184                                        <td>String</td>
1185                                        <td>If specified branch does not exist yet or if --force has been given, acts
1186                                                exactly like --track. Otherwise sets up configuration like --track would
1187                                                when creating the branch, except that where branch points to is not changed.
1188                                                See --set-upstream option of <a
1189                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html"
1190                                                        >git-branch</a>.</td>
1191                                        <td></td>
1192                                        <td>No</td>
1193                                </tr>
1194                                <tr>
1195                                        <td>track</td>
1196                                        <td>Boolean</td>
1197                                        <td>See --track option of <a
1198                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html"
1199                                                        >git-branch</a>.</td>
1200                                        <td>false</td>
1201                                        <td>No</td>
1202                                </tr>
1203                                <tr>
1204                                        <td>notrack</td>
1205                                        <td>Boolean</td>
1206                                        <td>See --no-track option of <a
1207                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html"
1208                                                        >git-branch</a>.</td>
1209                                        <td>false</td>
1210                                        <td>No</td>
1211                                </tr>
1212                                <tr>
1213                                        <td>force</td>
1214                                        <td>Boolean</td>
1215                                        <td>Reset &lt;branchname&gt; to &lt;startpoint&gt; if &lt;branchname&gt; exists
1216                                                already. Without -f git branch refuses to change an existing branch.</td>
1217                                        <td>false</td>
1218                                        <td>No</td>
1219                                </tr>
1220                                <tr>
1221                                        <td>move</td>
1222                                        <td>Boolean</td>
1223                                        <td>Move/rename a branch and the corresponding reflog.</td>
1224                                        <td>false</td>
1225                                        <td>No</td>
1226                                </tr>
1227                                <tr>
1228                                        <td>forcemove</td>
1229                                        <td>Boolean</td>
1230                                        <td>Move/rename a branch even if the new branch name already exists.</td>
1231                                        <td>false</td>
1232                                        <td>No</td>
1233                                </tr>
1234                                <tr>
1235                                        <td>delete</td>
1236                                        <td>Boolean</td>
1237                                        <td>Delete a branch. The branch must be fully merged in its upstream branch, or
1238                                                in HEAD if no upstream was set with --track or --set-upstream.</td>
1239                                        <td>false</td>
1240                                        <td>No</td>
1241                                </tr>
1242                                <tr>
1243                                        <td>forcedelete</td>
1244                                        <td>Boolean</td>
1245                                        <td>Delete a branch irrespective of its merged status.</td>
1246                                        <td>false</td>
1247                                        <td>No</td>
1248                                </tr>
1249                        </tbody>
1250                </table>
1251                <h3>Example</h3>
1252                <pre>
1253&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1254&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1255
1256&lt;!-- Initialize normal repository --&gt;
1257&lt;gitinit repository="${repo.dir.resolved}" /&gt;
1258
1259&lt;!-- Create branch "sample-branch" tracking current HEAD --&gt;
1260&lt;gitbranch
1261    repository="${repo.dir.resolved}"
1262    branchname="sample-branch" /&gt;
1263
1264&lt;!--
1265Create branch "sample-branch" tracking origin/master
1266Note that you can omit both startpoint and track attributes in this case
1267--&gt;
1268&lt;gitbranch
1269    repository="${repo.dir.resolved}"
1270    branchname="sample-branch"
1271    startpoint="origin/master"
1272    track="true" /&gt;
1273
1274&lt;!-- Delete fully merged branch "sample-branch" --&gt;
1275&lt;gitbranch
1276    repository="${repo.dir.resolved}"
1277    branchname="sample-branch"
1278    delete="true" /&gt;
1279
1280&lt;!-- Force delete even unmerged branch "sample-branch" --&gt;
1281&lt;gitbranch
1282    repository="${repo.dir.resolved}"
1283    branchname="sample-branch"
1284    forcedelete="true" /&gt;
1285
1286&lt;!-- Renabe "branch1" to "branch2" --&gt;
1287&lt;gitbranch
1288    repository="${repo.dir.resolved}"
1289    branchname="branch1"
1290    newbranch="branch2"
1291    move="true" /&gt;
1292
1293</pre>
1294                <h2>
1295                        <a name="GitFetchTask"></a>GitFetchTask </h2>
1296                <p> Download objects and refs from another repository. See official <a
1297                                href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1298                                >documentation</a>. </p>
1299                <h3>Attributes</h3>
1300                <table>
1301                        <thead>
1302                                <tr>
1303                                        <th>Name</th>
1304                                        <th>Type</th>
1305                                        <th>Description</th>
1306                                        <th>Default</th>
1307                                        <th>Required</th>
1308                                </tr>
1309                        </thead>
1310                        <tbody>
1311                                <tr>
1312                                        <td>gitPath</td>
1313                                        <td>String</td>
1314                                        <td>Path to Git binary</td>
1315                                        <td>/usr/bin/git</td>
1316                                        <td>No</td>
1317                                </tr>
1318                                <tr>
1319                                        <td>repository</td>
1320                                        <td>String</td>
1321                                        <td>Path to Git repository</td>
1322                                        <td>n/a</td>
1323                                        <td>Yes</td>
1324                                </tr>
1325                                <tr>
1326                                        <td>source</td>
1327                                        <td>String</td>
1328                                        <td>The "remote" repository that is the source of a fetch or pull operation. See
1329                                                &lt;repository&gt; in <a
1330                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1331                                                        >git-fetch</a>.</td>
1332                                        <td>origin</td>
1333                                        <td>No</td>
1334                                </tr>
1335                                <tr>
1336                                        <td>refspec</td>
1337                                        <td>String</td>
1338                                        <td>See &lt;refspec&gt; in <a
1339                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1340                                                        >git-fetch</a>.</td>
1341                                        <td></td>
1342                                        <td>No</td>
1343                                </tr>
1344                                <tr>
1345                                        <td>group</td>
1346                                        <td>String</td>
1347                                        <td>A name referring to a list of repositories as the value of
1348                                                remotes.&lt;group&gt; in the configuration file. See &lt;group&gt; in <a
1349                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1350                                                        >git-fetch</a>.</td>
1351                                        <td></td>
1352                                        <td>No</td>
1353                                </tr>
1354                                <tr>
1355                                        <td>quiet</td>
1356                                        <td>Boolean</td>
1357                                        <td>Silence any internally used git commands. Progress is not reported to the
1358                                                standard error stream. See --quiet in <a
1359                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1360                                                        >git-fetch</a>.</td>
1361                                        <td>false</td>
1362                                        <td>No</td>
1363                                </tr>
1364                                <tr>
1365                                        <td>all</td>
1366                                        <td>Boolean</td>
1367                                        <td>Fetch all remotes. See --all in <a
1368                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1369                                                        >git-fetch</a>.</td>
1370                                        <td>false</td>
1371                                        <td>No</td>
1372                                </tr>
1373                                <tr>
1374                                        <td>keep</td>
1375                                        <td>Boolean</td>
1376                                        <td>Keep downloaded pack. See --keep in <a
1377                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1378                                                        >git-fetch</a>.</td>
1379                                        <td>false</td>
1380                                        <td>No</td>
1381                                </tr>
1382                                <tr>
1383                                        <td>prune</td>
1384                                        <td>Boolean</td>
1385                                        <td>After fetching, remove any remote tracking branches which no longer exist on
1386                                                the remote. See --prune in <a
1387                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1388                                                        >git-fetch</a>.</td>
1389                                        <td>false</td>
1390                                        <td>No</td>
1391                                </tr>
1392                                <tr>
1393                                        <td>tags</td>
1394                                        <td>Boolean</td>
1395                                        <td>See --tags in <a
1396                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1397                                                        >git-fetch</a>.</td>
1398                                        <td>false</td>
1399                                        <td>No</td>
1400                                </tr>
1401                                <tr>
1402                                        <td>notags</td>
1403                                        <td>Boolean</td>
1404                                        <td>See --no-tags in <a
1405                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1406                                                        >git-fetch</a>.</td>
1407                                        <td>false</td>
1408                                        <td>No</td>
1409                                </tr>
1410                                <tr>
1411                                        <td>force</td>
1412                                        <td>Boolean</td>
1413                                        <td>When git fetch is used with &lt;rbranch&gt;:&lt;lbranch&gt; refspec, it
1414                                                refuses to update the local branch &lt;lbranch&gt; unless the remote branch
1415                                                &lt;rbranch&gt; it fetches is a descendant of &lt;lbranch&gt;. This option
1416                                                overrides that check. See --force in <a
1417                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html"
1418                                                        >git-fetch</a>.</td>
1419                                        <td>false</td>
1420                                        <td>No</td>
1421                                </tr>
1422                        </tbody>
1423                </table>
1424                <h3>Example</h3>
1425                <pre>
1426&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1427&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1428
1429&lt;!-- Initialize normal repository --&gt;
1430&lt;gitinit repository="${repo.dir.resolved}" /&gt;
1431
1432&lt;!-- Fetch objects from all remotes --&gt;
1433&lt;gitfetch
1434    repository="${repo.dir.resolved}" all="true" /&gt;
1435
1436&lt;!-- Fetch from origin/master to "refspec-branch" local branch --&gt;
1437&lt;gitfetch
1438    repository="${repo.dir.resolved}"
1439    source="origin"
1440    refspec="master:refspec-branch"
1441    quiet="true" /&gt;
1442</pre>
1443                <h2>
1444                        <a name="GitCheckoutTask"></a>GitCheckoutTask </h2>
1445                <p> Checkout a branch or paths to the working tree. See official <a
1446                                href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1447                                >documentation</a>. </p>
1448                <h3>Attributes</h3>
1449                <table>
1450                        <thead>
1451                                <tr>
1452                                        <th>Name</th>
1453                                        <th>Type</th>
1454                                        <th>Description</th>
1455                                        <th>Default</th>
1456                                        <th>Required</th>
1457                                </tr>
1458                        </thead>
1459                        <tbody>
1460                                <tr>
1461                                        <td>gitPath</td>
1462                                        <td>String</td>
1463                                        <td>Path to Git binary</td>
1464                                        <td>/usr/bin/git</td>
1465                                        <td>No</td>
1466                                </tr>
1467                                <tr>
1468                                        <td>repository</td>
1469                                        <td>String</td>
1470                                        <td>Path to Git repository</td>
1471                                        <td>n/a</td>
1472                                        <td>Yes</td>
1473                                </tr>
1474                                <tr>
1475                                        <td>branchname</td>
1476                                        <td>String</td>
1477                                        <td>Branch to checkout. See &lt;branch&gt; in <a
1478                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1479                                                        >git-checkout</a>.</td>
1480                                        <td>origin</td>
1481                                        <td>No</td>
1482                                </tr>
1483                                <tr>
1484                                        <td>startpoint</td>
1485                                        <td>String</td>
1486                                        <td>The name of a commit at which to start the new branch; Defaults to HEAD. See
1487                                                &lt;start_point&gt; in <a
1488                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1489                                                        >git-checkout</a>.</td>
1490                                        <td></td>
1491                                        <td>No</td>
1492                                </tr>
1493                                <tr>
1494                                        <td>create</td>
1495                                        <td>Boolean</td>
1496                                        <td>Create a new branch named &lt;branchname&gt; and start it at
1497                                                &lt;startpoint&gt;</td>
1498                                        <td>false</td>
1499                                        <td>No</td>
1500                                </tr>
1501                                <tr>
1502                                        <td>forcecreate</td>
1503                                        <td>Boolean</td>
1504                                        <td>Creates the branch &lt;branchname&gt; and start it at &lt;startpoint&gt;; if
1505                                                it already exists, then reset it to &lt;startpoint&gt;. This is equivalent
1506                                                to running "git branch" with "-f".</td>
1507                                        <td>false</td>
1508                                        <td>No</td>
1509                                </tr>
1510                                <tr>
1511                                        <td>merge</td>
1512                                        <td>Boolean</td>
1513                                        <td>See --merge in <a
1514                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1515                                                        >git-checkout</a>.</td>
1516                                        <td>false</td>
1517                                        <td>No</td>
1518                                </tr>
1519                                <tr>
1520                                        <td>track</td>
1521                                        <td>Boolean</td>
1522                                        <td>See --track in <a
1523                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1524                                                        >git-checkout</a>.</td>
1525                                        <td>false</td>
1526                                        <td>No</td>
1527                                </tr>
1528                                <tr>
1529                                        <td>notrack</td>
1530                                        <td>Boolean</td>
1531                                        <td>See --no-track in <a
1532                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1533                                                        >git-checkout</a>.</td>
1534                                        <td>false</td>
1535                                        <td>No</td>
1536                                </tr>
1537                                <tr>
1538                                        <td>quiet</td>
1539                                        <td>Boolean</td>
1540                                        <td>Quiet, suppress feedback messages. See --quiet in <a
1541                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1542                                                        >git-checkout</a>.</td>
1543                                        <td>false</td>
1544                                        <td>No</td>
1545                                </tr>
1546                                <tr>
1547                                        <td>force</td>
1548                                        <td>Boolean</td>
1549                                        <td>When switching branches, proceed even if the index or the working tree
1550                                                differs from HEAD. This is used to throw away local changes. See --force in
1551                                                        <a
1552                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html"
1553                                                        >git-checkout</a>.</td>
1554                                        <td>false</td>
1555                                        <td>No</td>
1556                                </tr>
1557                        </tbody>
1558                </table>
1559                <h3>Example</h3>
1560                <pre>
1561&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1562&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1563
1564&lt;!-- clone repository --&gt;
1565&lt;gitclone
1566    repository="git://github.com/path/to/repo/repo.git"
1567    targetPath="${repo.dir.resolved}" /&gt;
1568
1569&lt;!-- create and switch to "mybranch" branch --&gt;
1570&lt;gitcheckout
1571    repository="${repo.dir.resolved}"
1572    branchname="mybranch" quiet="true" create="true" /&gt;
1573
1574&lt;!-- get back to "master" branch --&gt;
1575&lt;gitcheckout
1576    repository="${repo.dir.resolved}"
1577    branchname="master" quiet="true" /&gt;
1578
1579&lt;!-- create (force) already created branch --&gt;
1580&lt;gitcheckout
1581    repository="${repo.dir.resolved}"
1582    branchname="mybranch" quiet="true"
1583    forceCreate="true" /&gt;
1584</pre>
1585                <h2>
1586                        <a name="GitMergeTask"></a>GitMergeTask </h2>
1587                <p> Join two or more development histories together. See official <a
1588                                href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1589                                >documentation</a>. </p>
1590                <h3>Attributes</h3>
1591                <table>
1592                        <thead>
1593                                <tr>
1594                                        <th>Name</th>
1595                                        <th>Type</th>
1596                                        <th>Description</th>
1597                                        <th>Default</th>
1598                                        <th>Required</th>
1599                                </tr>
1600                        </thead>
1601                        <tbody>
1602                                <tr>
1603                                        <td>gitPath</td>
1604                                        <td>String</td>
1605                                        <td>Path to Git binary</td>
1606                                        <td>/usr/bin/git</td>
1607                                        <td>No</td>
1608                                </tr>
1609                                <tr>
1610                                        <td>repository</td>
1611                                        <td>String</td>
1612                                        <td>Path to Git repository</td>
1613                                        <td>n/a</td>
1614                                        <td>Yes</td>
1615                                </tr>
1616                                <tr>
1617                                        <td>remote</td>
1618                                        <td>String</td>
1619                                        <td>Space separated list of branches to merge into current HEAD. See
1620                                                &lt;commit&gt; in <a
1621                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1622                                                        >git-merge</a>.</td>
1623                                        <td>n/a</td>
1624                                        <td>No</td>
1625                                </tr>
1626                                <tr>
1627                                        <td>message</td>
1628                                        <td>String</td>
1629                                        <td>Commit message to be used for the merge commit (in case one is created). See
1630                                                &lt;msg&gt; in <a
1631                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1632                                                        >git-merge</a>.</td>
1633                                        <td>n/a</td>
1634                                        <td>No</td>
1635                                </tr>
1636                                <tr>
1637                                        <td>fastForwardCommit</td>
1638                                        <td>Boolean</td>
1639                                        <td>If set false (default), will not generate a merge commit if the merge
1640                                                resolved as a fast-forward, only update the branch pointer.<br /> If set
1641                                                true, will generate a merge commit even if the merge resolved as a
1642                                                fast-forward. See --ff/--no-ff options in <a
1643                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1644                                                        >git-merge</a>.</td>
1645                                        <td>False</td>
1646                                        <td>No</td>
1647                                </tr>
1648                                <tr>
1649                                        <td>strategy</td>
1650                                        <td>String</td>
1651                                        <td>Merge strategy. One of "resolve", "recursive", "octopus", "ours", or
1652                                                "subtree". See &lt;strategy&gt; in <a
1653                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1654                                                        >git-merge</a>.</td>
1655                                        <td>n/a</td>
1656                                        <td>No</td>
1657                                </tr>
1658                                <tr>
1659                                        <td>strategyOption</td>
1660                                        <td>String</td>
1661                                        <td>Pass merge strategy specific option through to the merge strategy. See
1662                                                &lt;strategy-option&gt; in <a
1663                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1664                                                        >git-merge</a>.</td>
1665                                        <td>n/a</td>
1666                                        <td>No</td>
1667                                </tr>
1668                                <tr>
1669                                        <td>commit</td>
1670                                        <td>Boolean</td>
1671                                        <td>See --commit in <a
1672                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1673                                                        >git-merge</a>.</td>
1674                                        <td>false</td>
1675                                        <td>No</td>
1676                                </tr>
1677                                <tr>
1678                                        <td>nocommit</td>
1679                                        <td>Boolean</td>
1680                                        <td>See --no-commit in <a
1681                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1682                                                        >git-merge</a>.</td>
1683                                        <td>false</td>
1684                                        <td>No</td>
1685                                </tr>
1686                                <tr>
1687                                        <td>quiet</td>
1688                                        <td>Boolean</td>
1689                                        <td>Quiet, suppress feedback messages. See --quiet in <a
1690                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"
1691                                                        >git-merge</a>.</td>
1692                                        <td>false</td>
1693                                        <td>No</td>
1694                                </tr>
1695                        </tbody>
1696                </table>
1697                <h3>Example</h3>
1698                <pre>
1699&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1700&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1701
1702&lt;!-- clone repository --&gt;
1703&lt;gitclone
1704    repository="git://github.com/path/to/repo/repo.git"
1705    targetPath="${repo.dir.resolved}" /&gt;
1706
1707&lt;!-- create couple of test branches --&gt;
1708&lt;gitbranch
1709    repository="${repo.dir.resolved}"
1710    branchname="merge-test-1" startpoint="origin/master" /&gt;
1711&lt;gitbranch
1712    repository="${repo.dir.resolved}"
1713    branchname="merge-test-2" startpoint="origin/master" /&gt;
1714
1715&lt;!-- Merge those branches back into master --&gt;
1716&lt;gitmerge
1717    repository="${repo.dir.resolved}"
1718    remote="merge-test-1 merge-test-2"
1719    message="merging repos" commit="true" /&gt;
1720</pre>
1721                <h2>
1722                        <a name="GitPullTask"></a>GitPullTask </h2>
1723                <p> Fetch from and merge with another repository or a local branch. See official <a
1724                                href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1725                                >documentation</a>. </p>
1726                <h3>Attributes</h3>
1727                <table>
1728                        <thead>
1729                                <tr>
1730                                        <th>Name</th>
1731                                        <th>Type</th>
1732                                        <th>Description</th>
1733                                        <th>Default</th>
1734                                        <th>Required</th>
1735                                </tr>
1736                        </thead>
1737                        <tbody>
1738                                <tr>
1739                                        <td>gitPath</td>
1740                                        <td>String</td>
1741                                        <td>Path to Git binary</td>
1742                                        <td>/usr/bin/git</td>
1743                                        <td>No</td>
1744                                </tr>
1745                                <tr>
1746                                        <td>repository</td>
1747                                        <td>String</td>
1748                                        <td>Path to Git repository</td>
1749                                        <td>n/a</td>
1750                                        <td>Yes</td>
1751                                </tr>
1752                                <tr>
1753                                        <td>all</td>
1754                                        <td>Boolean</td>
1755                                        <td>Fetch all remotes</td>
1756                                        <td>false</td>
1757                                        <td>No</td>
1758                                </tr>
1759                                <tr>
1760                                        <td>source</td>
1761                                        <td>String</td>
1762                                        <td>The "remote" repository that is the source of a fetch or pull operation. See
1763                                                &lt;repository&gt; in <a
1764                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1765                                                        >git-pull</a>.</td>
1766                                        <td>origin</td>
1767                                        <td>Yes, if allRemotes set to false</td>
1768                                </tr>
1769                                <tr>
1770                                        <td>refspec</td>
1771                                        <td>String</td>
1772                                        <td>See &lt;refspec&gt; in <a
1773                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1774                                                        >git-pull</a>.</td>
1775                                        <td>n/a</td>
1776                                        <td>No</td>
1777                                </tr>
1778                                <tr>
1779                                        <td>strategy</td>
1780                                        <td>String</td>
1781                                        <td>Merge strategy. One of "resolve", "recursive", "octopus", "ours", or
1782                                                "subtree". See &lt;strategy&gt; in <a
1783                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1784                                                        >git-pull</a>.</td>
1785                                        <td>n/a</td>
1786                                        <td>No</td>
1787                                </tr>
1788                                <tr>
1789                                        <td>strategyOption</td>
1790                                        <td>String</td>
1791                                        <td>Pass merge strategy specific option through to the merge strategy. See
1792                                                &lt;strategy-option&gt; in <a
1793                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1794                                                        >git-pull</a>.</td>
1795                                        <td>n/a</td>
1796                                        <td>No</td>
1797                                </tr>
1798                                <tr>
1799                                        <td>rebase</td>
1800                                        <td>Boolean</td>
1801                                        <td>See --rebase in <a
1802                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1803                                                        >git-pull</a>.</td>
1804                                        <td>false</td>
1805                                        <td>No</td>
1806                                </tr>
1807                                <tr>
1808                                        <td>norebase</td>
1809                                        <td>Boolean</td>
1810                                        <td>See --no-rebase in <a
1811                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1812                                                        >git-pull</a>.</td>
1813                                        <td>false</td>
1814                                        <td>No</td>
1815                                </tr>
1816                                <tr>
1817                                        <td>tags</td>
1818                                        <td>Boolean</td>
1819                                        <td>Enable tag references following. See --tags in <a
1820                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1821                                                        >git-pull</a>.</td>
1822                                        <td>false</td>
1823                                        <td>No</td>
1824                                </tr>
1825                                <tr>
1826                                        <td>notags</td>
1827                                        <td>Boolean</td>
1828                                        <td>Disable tag references following. See --no-tags in <a
1829                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1830                                                        >git-pull</a>.</td>
1831                                        <td>false</td>
1832                                        <td>No</td>
1833                                </tr>
1834                                <tr>
1835                                        <td>keepFiles</td>
1836                                        <td>Boolean</td>
1837                                        <td>See --keep in <a
1838                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1839                                                        >git-pull</a>.</td>
1840                                        <td>false</td>
1841                                        <td>No</td>
1842                                </tr>
1843                                <tr>
1844                                        <td>append</td>
1845                                        <td>Boolean</td>
1846                                        <td>See --append in <a
1847                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1848                                                        >git-pull</a>.</td>
1849                                        <td>false</td>
1850                                        <td>No</td>
1851                                </tr>
1852                                <tr>
1853                                        <td>quiet</td>
1854                                        <td>Boolean</td>
1855                                        <td>Quiet, suppress feedback messages. See --quiet in <a
1856                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1857                                                        >git-pull</a>.</td>
1858                                        <td>false</td>
1859                                        <td>No</td>
1860                                </tr>
1861                                <tr>
1862                                        <td>force</td>
1863                                        <td>Boolean</td>
1864                                        <td>Force update. See --force in <a
1865                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html"
1866                                                        >git-pull</a>.</td>
1867                                        <td>false</td>
1868                                        <td>No</td>
1869                                </tr>
1870                        </tbody>
1871                </table>
1872                <h3>Example</h3>
1873                <pre>
1874&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
1875&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
1876
1877&lt;!-- clone repository --&gt;
1878&lt;gitclone
1879    repository="git://github.com/path/to/repo/repo.git"
1880    targetPath="${repo.dir.resolved}" /&gt;
1881
1882&lt;!-- pull from all remotes --&gt;
1883&lt;gitpull
1884    repository="${repo.dir.resolved}" all="true" /&gt;
1885
1886&lt;!-- pull remote origin/foobranch and rebase when merging --&gt;
1887&lt;gitpull
1888    repository="${repo.dir.resolved}"
1889    source="origin" refspec="foobranch"
1890    strategy="recursive" keep="true"
1891    force="true" quiet="true" rebase="true" /&gt;
1892</pre>
1893                <h2>
1894                        <a name="GitPushTask"></a>GitPushTask </h2>
1895                <p> Update remote refs along with associated objects. See official <a
1896                                href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1897                                >documentation</a>. </p>
1898                <h3>Attributes</h3>
1899                <table>
1900                        <thead>
1901                                <tr>
1902                                        <th>Name</th>
1903                                        <th>Type</th>
1904                                        <th>Description</th>
1905                                        <th>Default</th>
1906                                        <th>Required</th>
1907                                </tr>
1908                        </thead>
1909                        <tbody>
1910                                <tr>
1911                                        <td>gitPath</td>
1912                                        <td>String</td>
1913                                        <td>Path to Git binary</td>
1914                                        <td>/usr/bin/git</td>
1915                                        <td>No</td>
1916                                </tr>
1917                                <tr>
1918                                        <td>repository</td>
1919                                        <td>String</td>
1920                                        <td>Path to Git repository</td>
1921                                        <td>n/a</td>
1922                                        <td>Yes</td>
1923                                </tr>
1924                                <tr>
1925                                        <td>all</td>
1926                                        <td>Boolean</td>
1927                                        <td>Push all references</td>
1928                                        <td>false</td>
1929                                        <td>No</td>
1930                                </tr>
1931                                <tr>
1932                                        <td>destination</td>
1933                                        <td>String</td>
1934                                        <td>The "remote" repository that is destination of a push operation. See
1935                                                &lt;repository&gt; in <a
1936                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1937                                                        >git-push</a>.</td>
1938                                        <td>origin</td>
1939                                        <td>Yes, if allRemotes set to false</td>
1940                                </tr>
1941                                <tr>
1942                                        <td>refspec</td>
1943                                        <td>String</td>
1944                                        <td>See &lt;refspec&gt; in <a
1945                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1946                                                        >git-push</a>.</td>
1947                                        <td>n/a</td>
1948                                        <td>No</td>
1949                                </tr>
1950                                <tr>
1951                                        <td>mirror</td>
1952                                        <td>Boolean</td>
1953                                        <td>See --mirror in <a
1954                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1955                                                        >git-push</a>.</td>
1956                                        <td>false</td>
1957                                        <td>No</td>
1958                                </tr>
1959                                <tr>
1960                                        <td>delete</td>
1961                                        <td>Boolean</td>
1962                                        <td>Delete "remote" reference. Same as prefixing the refspec with colon. See
1963                                                --delete in <a
1964                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1965                                                        >git-push</a>.</td>
1966                                        <td>false</td>
1967                                        <td>No</td>
1968                                </tr>
1969                                <tr>
1970                                        <td>tags</td>
1971                                        <td>Boolean</td>
1972                                        <td>Push all references under refs/tags. See --tags in <a
1973                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1974                                                        >git-push</a>.</td>
1975                                        <td>false</td>
1976                                        <td>No</td>
1977                                </tr>
1978                                <tr>
1979                                        <td>quiet</td>
1980                                        <td>Boolean</td>
1981                                        <td>Quiet, suppress feedback messages. See --quiet in <a
1982                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1983                                                        >git-push</a>.</td>
1984                                        <td>false</td>
1985                                        <td>No</td>
1986                                </tr>
1987                                <tr>
1988                                        <td>force</td>
1989                                        <td>Boolean</td>
1990                                        <td>Force update. See --force in <a
1991                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html"
1992                                                        >git-push</a>.</td>
1993                                        <td>false</td>
1994                                        <td>No</td>
1995                                </tr>
1996                        </tbody>
1997                </table>
1998                <h3>Example</h3>
1999                <pre>
2000&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
2001&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
2002
2003&lt;!-- clone repository --&gt;
2004&lt;gitclone
2005    repository="git://github.com/path/to/repo/repo.git"
2006    targetPath="${repo.dir.resolved}" /&gt;
2007
2008&lt;!-- push branch "master" into "foobranch" on "origin" remote --&gt;
2009&lt;gitpush
2010    repository="${repo.dir.resolved}"
2011    refspec="master:foobranch" tags="true" /&gt;
2012
2013&lt;!-- create new branch "newbranch" on "origin" remote --&gt;
2014&lt;gitpush
2015    repository="${repo.dir.resolved}"
2016    refspec="master:newbranch" quiet="true" /&gt;
2017
2018&lt;!-- delete "newbranch" branch from "origin" remote --&gt;
2019&lt;gitpush
2020    repository="${repo.dir.resolved}"
2021    delete="true"
2022    refspec="newbranch" quiet="true" /&gt;
2023</pre>
2024                <h2>
2025                        <a name="GitTagTask"></a>GitTagTask </h2>
2026                <p> Create, list, delete or verify a tag object signed with GPG. See official <a
2027                                href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2028                                >documentation</a>. </p>
2029                <h3>Attributes</h3>
2030                <table>
2031                        <thead>
2032                                <tr>
2033                                        <th>Name</th>
2034                                        <th>Type</th>
2035                                        <th>Description</th>
2036                                        <th>Default</th>
2037                                        <th>Required</th>
2038                                </tr>
2039                        </thead>
2040                        <tbody>
2041                                <tr>
2042                                        <td>gitPath</td>
2043                                        <td>String</td>
2044                                        <td>Path to Git binary</td>
2045                                        <td>/usr/bin/git</td>
2046                                        <td>No</td>
2047                                </tr>
2048                                <tr>
2049                                        <td>repository</td>
2050                                        <td>String</td>
2051                                        <td>Path to Git repository</td>
2052                                        <td>n/a</td>
2053                                        <td>Yes</td>
2054                                </tr>
2055                                <tr>
2056                                        <td>message</td>
2057                                        <td>String</td>
2058                                        <td>Use given tag message. See -m of <a
2059                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2060                                                        >git-tag</a>
2061                                        </td>
2062                                        <td>n/a</td>
2063                                        <td>No</td>
2064                                </tr>
2065                                <tr>
2066                                        <td>name</td>
2067                                        <td>String</td>
2068                                        <td>Tag name</td>
2069                                        <td>n/a</td>
2070                                        <td>Yes</td>
2071                                </tr>
2072                                <tr>
2073                                        <td>commit</td>
2074                                        <td>String</td>
2075                                        <td>&lt;commit&gt; argument to git-tag</td>
2076                                        <td>n/a</td>
2077                                        <td>No</td>
2078                                </tr>
2079                                <tr>
2080                                        <td>object</td>
2081                                        <td>String</td>
2082                                        <td>&lt;object&gt; argument to git-tag</td>
2083                                        <td>n/a</td>
2084                                        <td>No</td>
2085                                </tr>
2086                                <tr>
2087                                        <td>pattern</td>
2088                                        <td>String</td>
2089                                        <td>&lt;pattern&gt; argument to git-tag</td>
2090                                        <td>n/a</td>
2091                                        <td>No</td>
2092                                </tr>
2093                                <tr>
2094                                        <td>outputProperty</td>
2095                                        <td>String</td>
2096                                        <td>Property name to set with output value from git-tag</td>
2097                                        <td>n/a</td>
2098                                        <td>No</td>
2099                                </tr>
2100                                <tr>
2101                                        <td>file</td>
2102                                        <td>String</td>
2103                                        <td>Take tag message from given file. See -F of <a
2104                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2105                                                        >git-tag</a>
2106                                        </td>
2107                                        <td>n/a</td>
2108                                        <td>No</td>
2109                                </tr>
2110                                <tr>
2111                                        <td>annotate</td>
2112                                        <td>Boolean</td>
2113                                        <td>Make unsigned, annotated tag object. See -a of <a
2114                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2115                                                        >git-tag</a>
2116                                        </td>
2117                                        <td>false</td>
2118                                        <td>No</td>
2119                                </tr>
2120                                <tr>
2121                                        <td>force</td>
2122                                        <td>Boolean</td>
2123                                        <td>Replace existing tag with given name. See -f of <a
2124                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2125                                                        >git-tag</a>
2126                                        </td>
2127                                        <td>false</td>
2128                                        <td>No</td>
2129                                </tr>
2130                                <tr>
2131                                        <td>delete</td>
2132                                        <td>Boolean</td>
2133                                        <td>Delete existing tags with given names. See -d of <a
2134                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2135                                                        >git-tag</a>
2136                                        </td>
2137                                        <td>false</td>
2138                                        <td>No</td>
2139                                </tr>
2140                                <tr>
2141                                        <td>list</td>
2142                                        <td>Boolean</td>
2143                                        <td>List tags with names matching given pattern. See -l of <a
2144                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2145                                                        >git-tag</a>
2146                                        </td>
2147                                        <td>false</td>
2148                                        <td>No</td>
2149                                </tr>
2150                                <tr>
2151                                        <td>num</td>
2152                                        <td>Integer</td>
2153                                        <td>Specifies how many lines from the annotation, if any, are printed when using
2154                                                -l. See -n of <a
2155                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2156                                                        >git-tag</a>
2157                                        </td>
2158                                        <td>n/a</td>
2159                                        <td>No</td>
2160                                </tr>
2161                                <tr>
2162                                        <td>contains</td>
2163                                        <td>String</td>
2164                                        <td>Only list tags containing specified commit. See --contains of <a
2165                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2166                                                        >git-tag</a>
2167                                        </td>
2168                                        <td>n/a</td>
2169                                        <td>No</td>
2170                                </tr>
2171                                <tr>
2172                                        <td>sign</td>
2173                                        <td>Boolean</td>
2174                                        <td>Make GPG-signed tag. See -a of <a
2175                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2176                                                        >git-tag</a>
2177                                        </td>
2178                                        <td>false</td>
2179                                        <td>No</td>
2180                                </tr>
2181                                <tr>
2182                                        <td>keySign</td>
2183                                        <td>String</td>
2184                                        <td>Make GPG-signed tag, using given key. See -u of git-tag of <a
2185                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2186                                                        >git-tag</a>
2187                                        </td>
2188                                        <td>n/a</td>
2189                                        <td>No</td>
2190                                </tr>
2191                                <tr>
2192                                        <td>verify</td>
2193                                        <td>Boolean</td>
2194                                        <td>Verify GPG signature of given tag names. See -v of <a
2195                                                        href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html"
2196                                                        >git-tag</a>
2197                                        </td>
2198                                        <td>false</td>
2199                                        <td>No</td>
2200                                </tr>
2201                        </tbody>
2202                </table>
2203                <h3>Example</h3>
2204                <pre>
2205&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
2206&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
2207
2208&lt;!-- clone repository --&gt;
2209&lt;gitclone
2210    repository="git://github.com/path/to/repo/repo.git"
2211    targetPath="${repo.dir.resolved}" /&gt;
2212
2213&lt;gittag repository="${repo.dir.resolved}" name="ver1.0" /&gt;
2214&lt;!-- Force duplicate tag creation --&gt;
2215&lt;gittag
2216    repository="${repo.dir.resolved}"
2217    name="ver1.0" force="true"/&gt;
2218&lt;!-- Create tag with annotation and message --&gt;
2219&lt;gittag
2220    repository="${repo.dir.resolved}"
2221    name="ver1.0"
2222    annotate="true" message="Version 1.0 tag"/&gt;
2223&lt;!-- Delete tag --&gt;
2224&lt;gittag
2225    repository="${repo.dir.resolved}"
2226        name="ver2.0" delete="true" /&gt;
2227&lt;!-- List tags matching to pattern "marked" into "tags" variable --&gt;
2228&lt;gittag repository="${repo.dir.resolved}"
2229    list="true"
2230    outputProperty="tags"
2231    pattern="marked" /&gt;
2232</pre>
2233                <h2>
2234                        <a name="GitLogTask"></a>GitLogTask </h2>
2235                <p> Show commit logs. See official <a
2236                                href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html"
2237                                >documentation</a>. </p>
2238                <h3>Attributes</h3>
2239                <table>
2240                        <thead>
2241                                <tr>
2242                                        <th>Name</th>
2243                                        <th>Type</th>
2244                                        <th>Description</th>
2245                                        <th>Default</th>
2246                                        <th>Required</th>
2247                                </tr>
2248                        </thead>
2249                        <tbody>
2250                                <tr>
2251                                        <td>gitPath</td>
2252                                        <td>String</td>
2253                                        <td>Path to Git binary</td>
2254                                        <td>/usr/bin/git</td>
2255                                        <td>No</td>
2256                                </tr>
2257                                <tr>
2258                                        <td>repository</td>
2259                                        <td>String</td>
2260                                        <td>Path to Git repository</td>
2261                                        <td>n/a</td>
2262                                        <td>Yes</td>
2263                                </tr>
2264                                <tr>
2265                                        <td>paths</td>
2266                                        <td>String</td>
2267                                        <td>&lt;path&gt; arguments to git-log. Accepts one or more paths delimited by
2268                                                PATH_SEPARATOR</td>
2269                                        <td>n/a</td>
2270                                        <td>No</td>
2271                                </tr>
2272                                <tr>
2273                                        <td>outputProperty</td>
2274                                        <td>String</td>
2275                                        <td>Property name to set with output value from git-log</td>
2276                                        <td>n/a</td>
2277                                        <td>No</td>
2278                                </tr>
2279                                <tr>
2280                                        <td>format</td>
2281                                        <td>String</td>
2282                                        <td>Commit format. See --format of git-log. Can be one of <i>oneline</i>,
2283                                                        <i>short</i>, <i>medium</i>, <i>full</i>, <i>fuller</i>, <i>email</i>,
2284                                                        <i>raw</i> and <i>format:&lt;string&gt;</i></td>
2285                                        <td>medium</td>
2286                                        <td>No</td>
2287                                </tr>
2288                                <tr>
2289                                        <td>date</td>
2290                                        <td>String</td>
2291                                        <td>Date format. See --date of git-log.</td>
2292                                        <td>n/a</td>
2293                                        <td>No</td>
2294                                </tr>
2295                                <tr>
2296                                        <td>since</td>
2297                                        <td>String</td>
2298                                        <td>&lt;since&gt; argument to git-log.</td>
2299                                        <td>n/a</td>
2300                                        <td>No</td>
2301                                </tr>
2302                                <tr>
2303                                        <td>until</td>
2304                                        <td>String</td>
2305                                        <td>&lt;until&gt; argument to git-log.</td>
2306                                        <td>HEAD</td>
2307                                        <td>No</td>
2308                                </tr>
2309                                <tr>
2310                                        <td>stat</td>
2311                                        <td>String</td>
2312                                        <td>Generate a diffstat. See --stat of git-log</td>
2313                                        <td>n/a</td>
2314                                        <td>No</td>
2315                                </tr>
2316                                <tr>
2317                                        <td>nameStatus</td>
2318                                        <td>Boolean</td>
2319                                        <td>Names + status of changed files. See --name-status of git-log.</td>
2320                                        <td>false</td>
2321                                        <td>No</td>
2322                                </tr>
2323                                <tr>
2324                                        <td>maxCount</td>
2325                                        <td>Integer</td>
2326                                        <td>Number of commits to show. See -&lt;n&gt;|-n|--max-count of git-log.</td>
2327                                        <td>n/a</td>
2328                                        <td>No</td>
2329                                </tr>
2330                                <tr>
2331                                        <td>noMerges</td>
2332                                        <td>boolean</td>
2333                                        <td>Don't show commits with more than one parent. See --no-merges of
2334                                                git-log.</td>
2335                                        <td>false</td>
2336                                        <td>No</td>
2337                                </tr>
2338                        </tbody>
2339                </table>
2340                <h3>Example</h3>
2341                <pre>
2342&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
2343&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;
2344
2345&lt;!-- clone repository --&gt;
2346&lt;gitclone
2347    repository="git://github.com/path/to/repo/repo.git"
2348    targetPath="${repo.dir.resolved}" /&gt;
2349<!-- write git-log output to "logs" variable -->
2350&lt;gitlog
2351    paths="${repo.dir.resolved}"
2352    format="oneline"
2353    maxCount="2"
2354    stat="true"
2355    noMerges="false"
2356    since="Sun Jan 23 23:55:42 2011 +0300"
2357    until="Mon Jan 24 09:59:33 2011 +0300"
2358    outputProperty="logs"
2359    repository="${repo.dir.resolved}" /&gt;
2360</pre>
2361                <h2>
2362                        <a name="HttpGetTask"></a>HttpGetTask </h2>
2363                <p>This task will download a file through HTTP GET and save it to a specified directory. You
2364                        need an installed version of HTTP_Request2 to use this task.</p>
2365                <h3>Attributes</h3>
2366                <table>
2367                        <thead>
2368                                <tr>
2369                                        <th>Name</th>
2370                                        <th>Type</th>
2371                                        <th>Description</th>
2372                                        <th>Default</th>
2373                                        <th>Required</th>
2374                                </tr>
2375                        </thead>
2376                        <tbody>
2377                                <tr>
2378                                        <td>url</td>
2379                                        <td>String</td>
2380                                        <td>The request URL</td>
2381                                        <td>n/a</td>
2382                                        <td>Yes</td>
2383                                </tr>
2384                                <tr>
2385                                        <td>dir</td>
2386                                        <td>String</td>
2387                                        <td>The directory to save the file</td>
2388                                        <td>n/a</td>
2389                                        <td>Yes</td>
2390                                </tr>
2391                                <tr>
2392                                        <td>filename</td>
2393                                        <td>String</td>
2394                                        <td>The filename for the downloaded file</td>
2395                                        <td>The filename part of the URL</td>
2396                                        <td>No</td>
2397                                </tr>
2398                        </tbody>
2399                </table>
2400                <h3>Example</h3>
2401                <pre>
2402 &lt;httpget url=&quot;http://buildserver.com/builds/latest.stable.tar.bz2&quot; dir=&quot;/usr/local/lib&quot;/&gt;
2403</pre>
2404                <h2>
2405                        <a name="HttpRequestTask"></a>HttpRequestTask </h2>
2406                <p>This task will make an HTTP request to the provided URL and match the response against
2407                        the provided regular expression. If an regular expression is provided and doesn't match
2408                        the build will fail. You need an installed version of HTTP_Request2 to use this
2409                        task.</p>
2410                <h3>Attributes</h3>
2411                <table>
2412                        <thead>
2413                                <tr>
2414                                        <th>Name</th>
2415                                        <th>Type</th>
2416                                        <th>Description</th>
2417                                        <th>Default</th>
2418                                        <th>Required</th>
2419                                </tr>
2420                        </thead>
2421                        <tbody>
2422                                <tr>
2423                                        <td>url</td>
2424                                        <td>String</td>
2425                                        <td>The request URL</td>
2426                                        <td>n/a</td>
2427                                        <td>Yes</td>
2428                                </tr>
2429                                <tr>
2430                                        <td>responseRegex</td>
2431                                        <td>String</td>
2432                                        <td>The regular expression for matching the response</td>
2433                                        <td>n/a</td>
2434                                        <td>No</td>
2435                                </tr>
2436                                <tr>
2437                                        <td>authUser</td>
2438                                        <td>String</td>
2439                                        <td>The authentication user name</td>
2440                                        <td>n/a</td>
2441                                        <td>No</td>
2442                                </tr>
2443                                <tr>
2444                                        <td>authPassword</td>
2445                                        <td>String</td>
2446                                        <td>The authentication password</td>
2447                                        <td>n/a</td>
2448                                        <td>No</td>
2449                                </tr>
2450                                <tr>
2451                                        <td>authScheme</td>
2452                                        <td>String</td>
2453                                        <td>The authentication scheme</td>
2454                                        <td>basic</td>
2455                                        <td>No</td>
2456                                </tr>
2457                                <tr>
2458                                        <td>verbose</td>
2459                                        <td>Boolean</td>
2460                                        <td>Whether to enable detailed logging</td>
2461                                        <td>false</td>
2462                                        <td>No</td>
2463                                </tr>
2464                                <tr>
2465                                        <td>observerEvents</td>
2466                                        <td>String</td>
2467                                        <td>Comma-separated list of events to log when <em>verbose</em> is set to
2468                                                        <em>true</em></td>
2469                                        <td>connect, sentHeaders, sentBodyPart, receivedHeaders, receivedBody,
2470                                                disconnect</td>
2471                                        <td>No</td>
2472                                </tr>
2473                        </tbody>
2474                </table>
2475                <h3>Supported Nested Tags</h3>
2476                <ul>
2477                        <li>config <p>Holds additional config data. See HTTP_Request2 for supported values.</p>
2478                                <h3>Attributes</h3>
2479                                <table>
2480                                        <thead>
2481                                                <tr>
2482                                                        <th>Name</th>
2483                                                        <th>Type</th>
2484                                                        <th>Description</th>
2485                                                        <th>Default</th>
2486                                                        <th>Required</th>
2487                                                </tr>
2488                                        </thead>
2489                                        <tbody>
2490                                                <tr>
2491                                                        <td>name</td>
2492                                                        <td>String</td>
2493                                                        <td>Config parameter name</td>
2494                                                        <td>n/a</td>
2495                                                        <td>Yes</td>
2496                                                </tr>
2497                                                <tr>
2498                                                        <td>value</td>
2499                                                        <td>Mixed</td>
2500                                                        <td>Config value</td>
2501                                                        <td>n/a</td>
2502                                                        <td>Yes</td>
2503                                                </tr>
2504                                        </tbody>
2505                                </table></li>
2506                        <li>header <p> Holds additional header <em>name</em> and <em>value</em>. </p>
2507                                <h3>Attributes</h3>
2508                                <table>
2509                                        <thead>
2510                                                <tr>
2511                                                        <th>Name</th>
2512                                                        <th>Type</th>
2513                                                        <th>Description</th>
2514                                                        <th>Default</th>
2515                                                        <th>Required</th>
2516                                                </tr>
2517                                        </thead>
2518                                        <tbody>
2519                                                <tr>
2520                                                        <td>name</td>
2521                                                        <td>String</td>
2522                                                        <td>Header name</td>
2523                                                        <td>n/a</td>
2524                                                        <td>Yes</td>
2525                                                </tr>
2526                                                <tr>
2527                                                        <td>value</td>
2528                                                        <td>String</td>
2529                                                        <td>Header value</td>
2530                                                        <td>n/a</td>
2531                                                        <td>Yes</td>
2532                                                </tr>
2533                                        </tbody>
2534                                </table></li>
2535                </ul>
2536                <h3>Examples</h3>
2537                <pre>
2538 &lt;http-request url=&quot;http://my-production.example.com/check-deployment.php&quot;/&gt;
2539</pre>
2540                <p>Just perform a HTTP request to the given URL.</p>
2541                <pre>
2542 &lt;http-request
2543   url=&quot;http://my-production.example.com/check-deployment.php&quot;
2544   responseRegex=&quot;/Heartbeat/&quot;
2545   verbose&quot;true&quot;
2546   observerEvents=&quot;connect, disconnect&quot;/&gt;
2547</pre>
2548                <p>Perform a HTTP request to the given URL and matching the response against the given regex
2549                        pattern. Enable detailed logging and log only the specified events.</p>
2550                <pre>
2551 &lt;http-request url="http://my-production.example.com/check-deployment.php"&gt;
2552   &lt;config name=&quot;adapter&quot; value=&quot;HTTP_Request2_Adapter_Curl&quot;/&gt;
2553   &lt;header name=&quot;user-agent&quot; value=&quot;Phing HttpRequestTask&quot;/&gt;
2554 &lt;/http-request&gt;
2555</pre>
2556                <p>Perform a HTTP request to the given URL. Setting request adapter to curl instead of
2557                        socket. Setting an additional header.</p>
2558                <h2>
2559                        <a name="IoncubeEncoderTask"></a>IoncubeEncoderTask </h2>
2560                <p> The <em>IoncubeEncoderTask</em> executes the <a href="http://www.ioncube.com"
2561                                target="_blank">ionCube</a> encoder (for either PHP4 or PHP5 projects). </p>
2562                <p> For more information on the meaning of the various options please consult the ionCube <a
2563                                href="http://www.ioncube.com/USER-GUIDE.pdf" target="_blank">user guide</a>. </p>
2564                <h3>Example</h3>
2565                <pre>&lt;ioncubeencoder
2566   binary="true"
2567   copy="*.ini config/*"
2568   encode="*.inc licenses/license.key"
2569   encrypt="*.tpl *.xml"
2570   fromdir="files"
2571   ignore="*.bak RCS/ *~ docs/"
2572   ioncubepath="/usr/local/ioncube"
2573   keep="docs/README"
2574   licensepath="mylicense.txt"
2575   optimize="max"
2576   passphrase="mypassphrase"
2577   phpversion="4"
2578   noshortopentags="false"
2579   targetoption="replace"
2580   todir="encoded"
2581   withoutruntimeloadersupport="true"
2582   callbackfile="errhandler.php"
2583   obfuscationexlusionsfile="obfex.txt"&gt;
2584  &lt;comment&gt;A project encoded with the ionCube encoder.&lt;/comment&gt;
2585&lt;/ioncubeencoder&gt;
2586</pre>
2587                <h3>Attributes</h3>
2588                <table>
2589                        <thead>
2590                                <tr>
2591                                        <th>Name</th>
2592                                        <th>Type</th>
2593                                        <th>Description</th>
2594                                        <th>Default</th>
2595                                        <th>Required</th>
2596                                </tr>
2597                        </thead>
2598                        <tbody>
2599                                <tr>
2600                                        <td>allowedserver</td>
2601                                        <td>String</td>
2602                                        <td>Restricts the encoded files to particular servers and/or domains. Consult
2603                                                the IonCude documentation for more information.</td>
2604                                        <td>none</td>
2605                                        <td>No</td>
2606                                </tr>
2607                                <tr>
2608                                        <td>binary</td>
2609                                        <td>Boolean</td>
2610                                        <td>Whether to save encoded files in binary format (default is ASCII
2611                                                format)</td>
2612                                        <td>false</td>
2613                                        <td>No</td>
2614                                </tr>
2615                                <tr>
2616                                        <td>copy</td>
2617                                        <td>String</td>
2618                                        <td>Specifies files or directories to exclude from being encoded or encrypted
2619                                                and copy them to the target directory (separated by space).</td>
2620                                        <td>none</td>
2621                                        <td>No</td>
2622                                </tr>
2623                                <tr>
2624                                        <td>encode</td>
2625                                        <td>String</td>
2626                                        <td>Specifies additional file patterns, files or directories to encode, or to
2627                                                reverse the effect of <em>copy</em></td>
2628                                        <td>none</td>
2629                                        <td>No</td>
2630                                </tr>
2631                                <tr>
2632                                        <td>encrypt</td>
2633                                        <td>String</td>
2634                                        <td>Specify files or directories (space separated list) that are to be
2635                                                encrypted.</td>
2636                                        <td>none</td>
2637                                        <td>No</td>
2638                                </tr>
2639                                <tr>
2640                                        <td>expirein</td>
2641                                        <td>String</td>
2642                                        <td>Sets a period in seconds (s), minutes (m), hours (h) or days (d) after which
2643                                                the files expire. Accepts: <em>500s</em> or <em>55m</em> or <em>24h</em> or
2644                                                        <em>7d</em></td>
2645                                        <td>none</td>
2646                                        <td>No</td>
2647                                </tr>
2648                                <tr>
2649                                        <td>expireon</td>
2650                                        <td>String</td>
2651                                        <td>Sets a YYYY-MM-DD date to expire the files.</td>
2652                                        <td>none</td>
2653                                        <td>No</td>
2654                                </tr>
2655                                <tr>
2656                                        <td>fromdir</td>
2657                                        <td>String</td>
2658                                        <td>Path containing source files</td>
2659                                        <td>none</td>
2660                                        <td>Yes</td>
2661                                </tr>
2662                                <tr>
2663                                        <td>ignore</td>
2664                                        <td>String</td>
2665                                        <td>Set files and directories to ignore entirely and exclude from the target
2666                                                directory (separated by space).</td>
2667                                        <td>none</td>
2668                                        <td>Yes</td>
2669                                </tr>
2670                                <tr>
2671                                        <td>ioncubepath</td>
2672                                        <td>String</td>
2673                                        <td>Path to the ionCube binaries</td>
2674                                        <td>/usr/local/ioncube</td>
2675                                        <td>No</td>
2676                                </tr>
2677                                <tr>
2678                                        <td>keep</td>
2679                                        <td>String</td>
2680                                        <td>Set files and directories not to be ignored (separated by space).</td>
2681                                        <td>none</td>
2682                                        <td>No</td>
2683                                </tr>
2684                                <tr>
2685                                        <td>licensepath</td>
2686                                        <td>String</td>
2687                                        <td>Path to the license file that will be used by the encoded files</td>
2688                                        <td>none</td>
2689                                        <td>No</td>
2690                                </tr>
2691                                <tr>
2692                                        <td>nodoccomments</td>
2693                                        <td>String</td>
2694                                        <td>Omits documents comments ( /** ... */ ) from the encoded files.</td>
2695                                        <td>none</td>
2696                                        <td>No</td>
2697                                </tr>
2698                                <tr>
2699                                        <td>obfuscation-key</td>
2700                                        <td>String</td>
2701                                        <td>The obfuscation key must be supplied when using the obfuscate option</td>
2702                                        <td>none</td>
2703                                        <td>No</td>
2704                                </tr>
2705                                <tr>
2706                                        <td>obfuscate</td>
2707                                        <td>String</td>
2708                                        <td>The Encoder can obfuscate the names of global functions, the names of local
2709                                                variables in global functions, and line numbers. Use either <em>all</em> or
2710                                                any of <em>functions</em>, <em>locals</em> or <em>linenos</em> separated by
2711                                                a space.</td>
2712                                        <td>none</td>
2713                                        <td>No</td>
2714                                </tr>
2715                                <tr>
2716                                        <td>optimize</td>
2717                                        <td>String</td>
2718                                        <td>Controls the optimization of the encoded files, accepts either <em>more</em>
2719                                                or <em>max</em></td>
2720                                        <td>none</td>
2721                                        <td>No</td>
2722                                </tr>
2723                                <tr>
2724                                        <td>passphrase</td>
2725                                        <td>String</td>
2726                                        <td>The passphrase to use when encoding with a license file</td>
2727                                        <td>none</td>
2728                                        <td>No</td>
2729                                </tr>
2730                                <tr>
2731                                        <td>phpversion</td>
2732                                        <td>Integer</td>
2733                                        <td>The PHP version to use</td>
2734                                        <td>5</td>
2735                                        <td>No</td>
2736                                </tr>
2737                                <tr>
2738                                        <td>targetoption</td>
2739                                        <td>String</td>
2740                                        <td>Option to use when target directory exists, accepts <em>replace</em>,
2741                                                        <em>merge</em>, <em>update</em> and <em>rename</em></td>
2742                                        <td>none</td>
2743                                        <td>No</td>
2744                                </tr>
2745                                <tr>
2746                                        <td>todir</td>
2747                                        <td>String</td>
2748                                        <td>Path to save encoded files to</td>
2749                                        <td>none</td>
2750                                        <td>Yes</td>
2751                                </tr>
2752                                <tr>
2753                                        <td>withoutruntimeloadersupport</td>
2754                                        <td>Boolean</td>
2755                                        <td>Whether to disable support for runtime initialization of the ionCube
2756                                                Loader</td>
2757                                        <td>false</td>
2758                                        <td>No</td>
2759                                </tr>
2760                                <tr>
2761                                        <td>noshortopentags</td>
2762                                        <td>Boolean</td>
2763                                        <td>Whether to disable support for short PHP tags</td>
2764                                        <td>false</td>
2765                                        <td>No</td>
2766                                </tr>
2767                                <tr>
2768                                        <td>callbackfile</td>
2769                                        <td>String</td>
2770                                        <td>Path to callback file (.php)</td>
2771                                        <td>n/a</td>
2772                                        <td>No</td>
2773                                </tr>
2774                                <tr>
2775                                        <td>obfuscationexclusionsfile</td>
2776                                        <td>String</td>
2777                                        <td>Path to obfuscation exclusions file</td>
2778                                        <td>n/a</td>
2779                                        <td>No</td>
2780                                </tr>
2781                                <tr>
2782                                        <td>ignoredeprecatedwarnings</td>
2783                                        <td>Boolean</td>
2784                                        <td>Whether to ignore deprecated warnings</td>
2785                                        <td>false</td>
2786                                        <td>No</td>
2787                                </tr>
2788                                <tr>
2789                                        <td>ignorestrictwarnings</td>
2790                                        <td>Boolean</td>
2791                                        <td>Whether to ignore strict warnings</td>
2792                                        <td>false</td>
2793                                        <td>No</td>
2794                                </tr>
2795                                <tr>
2796                                        <td>allowencodingintosource</td>
2797                                        <td>Boolean</td>
2798                                        <td>Whether to allow encoding into the source tree</td>
2799                                        <td>false</td>
2800                                        <td>No</td>
2801                                </tr>
2802                                <tr>
2803                                        <td>messageifnoloader</td>
2804                                        <td>String</td>
2805                                        <td>A valid PHP expression to customize the "no loader installed" message</td>
2806                                        <td>n/a</td>
2807                                        <td>No</td>
2808                                </tr>
2809                                <tr>
2810                                        <td>actionifnoloader</td>
2811                                        <td>String</td>
2812                                        <td>A valid PHP expression to replace the "no loader installed" action</td>
2813                                        <td>n/a</td>
2814                                        <td>No</td>
2815                                </tr>
2816                                <tr>
2817                                        <td>showcommandline</td>
2818                                        <td>Boolean</td>
2819                                        <td>whether to show command line before it is executed</td>
2820                                        <td>false</td>
2821                                        <td>No</td>
2822                                </tr>
2823                        </tbody>
2824                </table>
2825                <h3>Supported Nested Tags</h3>
2826                <ul>
2827                        <li>comment <p>Custom text that is added to the start of each encoded file.</p></li>
2828                </ul>
2829                <h2>
2830                        <a name="IoncubeLicenseTask"></a>IoncubeLicenseTask </h2>
2831                <p> The <em>IoncubeLicenseTask</em> executes the <a href="http://www.ioncube.com"
2832                                target="_blank">ionCube</a> make_license program. </p>
2833                <p> For more information on the meaning of the various options please consult the ionCube <a
2834                                href="http://www.ioncube.com/USER-GUIDE.pdf" target="_blank">user guide</a>. </p>
2835                <h3>Example</h3>
2836                <pre>&lt;ioncubelicense
2837   ioncubepath="/usr/local/ioncube"
2838   licensepath="mylicense.txt"
2839   passphrase="mypassphrase"
2840   allowedserver="00:06:4F:01:8F:2C"
2841   expireon="2010-09-01"
2842   expirein="7d"&gt;
2843  &lt;comment&gt;A license file made with the ionCube encoder.&lt;/comment&gt;
2844&lt;/ioncubelicense&gt;
2845</pre>
2846                <h3>Attributes</h3>
2847                <table>
2848                        <thead>
2849                                <tr>
2850                                        <th>Name</th>
2851                                        <th>Type</th>
2852                                        <th>Description</th>
2853                                        <th>Default</th>
2854                                        <th>Required</th>
2855                                </tr>
2856                        </thead>
2857                        <tbody>
2858                                <tr>
2859                                        <td>ioncubepath</td>
2860                                        <td>String</td>
2861                                        <td>Path to the ionCube binaries</td>
2862                                        <td>/usr/local/ioncube</td>
2863                                        <td>No</td>
2864                                </tr>
2865                                <tr>
2866                                        <td>licensepath</td>
2867                                        <td>String</td>
2868                                        <td>Path to the license file that will be generated</td>
2869                                        <td>none</td>
2870                                        <td>No</td>
2871                                </tr>
2872                                <tr>
2873                                        <td>passphrase</td>
2874                                        <td>String</td>
2875                                        <td>The passphrase to use when generating the license file</td>
2876                                        <td>none</td>
2877                                        <td>No</td>
2878                                </tr>
2879                                <tr>
2880                                        <td>allowedserver</td>
2881                                        <td>String</td>
2882                                        <td>Restricts the license to particular servers and/or domains. Consult the
2883                                                IonCude documentation for more information.</td>
2884                                        <td>none</td>
2885                                        <td>No</td>
2886                                </tr>
2887                                <tr>
2888                                        <td>expirein</td>
2889                                        <td>String</td>
2890                                        <td>Sets a period in seconds (s), minutes (m), hours (h) or days (d) after which
2891                                                the license expires. Accepts: 500s or 55m or 24h or 7d.</td>
2892                                        <td>none</td>
2893                                        <td>No</td>
2894                                </tr>
2895                                <tr>
2896                                        <td>expireon</td>
2897                                        <td>String</td>
2898                                        <td>Sets a YYYY-MM-DD date to expire the license.</td>
2899                                        <td>none</td>
2900                                        <td>No</td>
2901                                </tr>
2902                        </tbody>
2903                </table>
2904                <h3>Supported Nested Tags</h3>
2905                <ul>
2906                        <li>comment <p>Custom text that is added to the start of each encoded file.</p></li>
2907                </ul>
2908                <h2>
2909                        <a name="JslLintTask"></a>JslLintTask </h2>
2910                <p> The <em>JslLintTask</em> uses the <a href="http://www.javascriptlint.com"
2911                                target="_blank">Javascript Lint</a> program to check the sytax on one or more
2912                        JavaScript source code files. </p>
2913                <p>
2914                        <b>NB:</b> the Javascript lint program must be in the system path! </p>
2915                <h3>Attributes</h3>
2916                <table>
2917                        <thead>
2918                                <tr>
2919                                        <th>Name</th>
2920                                        <th>Type</th>
2921                                        <th>Description</th>
2922                                        <th>Default</th>
2923                                        <th>Required</th>
2924                                </tr>
2925                        </thead>
2926                        <tbody>
2927                                <tr>
2928                                        <td>executable</td>
2929                                        <td>String</td>
2930                                        <td>Path to JSL executable</td>
2931                                        <td>jsl</td>
2932                                        <td>No</td>
2933                                </tr>
2934                                <tr>
2935                                        <td>file</td>
2936                                        <td>String</td>
2937                                        <td>Path to source file</td>
2938                                        <td>n/a</td>
2939                                        <td>No</td>
2940                                </tr>
2941                                <tr>
2942                                        <td>haltonfailure</td>
2943                                        <td>Boolean</td>
2944                                        <td>Stop the build process if the linting process encounters an error.</td>
2945                                        <td>false</td>
2946                                        <td>No</td>
2947                                </tr>
2948                                <tr>
2949                                        <td>showwarnings</td>
2950                                        <td>Boolean</td>
2951                                        <td>Sets the flag if warnings should be shown.</td>
2952                                        <td>true</td>
2953                                        <td>No</td>
2954                                </tr>
2955                                <tr>
2956                                        <td>cachefile</td>
2957                                        <td>String</td>
2958                                        <td>If set, enables writing of last-modified times to <em>cachefile</em>, to
2959                                                speed up processing of files that rarely change</td>
2960                                        <td>none</td>
2961                                        <td>No</td>
2962                                </tr>
2963                                <tr>
2964                                        <td>conffile</td>
2965                                        <td>String</td>
2966                                        <td>Path to JSL config file</td>
2967                                        <td>none</td>
2968                                        <td>No</td>
2969                                </tr>
2970                                <tr>
2971                                        <td>tofile</td>
2972                                        <td>String</td>
2973                                        <td>File to write list of 'bad files' to.</td>
2974                                        <td>n/a</td>
2975                                        <td>No</td>
2976                                </tr>
2977                        </tbody>
2978                </table>
2979                <h3>Supported Nested Tags</h3>
2980                <ul>
2981                        <li>fileset</li>
2982                </ul>
2983                <h3>Example</h3>
2984                <pre>
2985&lt;jsllint file=&quot;path/to/source.php&quot;/&gt;
2986</pre>
2987                <p>Checking syntax of one particular source file.</p>
2988                <pre>
2989&lt;jsllint&gt;
2990&nbsp;&nbsp;&lt;fileset dir=&quot;src&quot;&gt;
2991&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*.php"/&gt;
2992&nbsp;&nbsp;&lt;/fileset&gt;
2993&lt;/jsllint&gt;
2994</pre>
2995                <p>Check syntax of a fileset of source files.</p>
2996                <h2>
2997                        <a name="JsMinTask"></a>JsMinTask </h2>
2998                <p> The <em>JsMinTask</em> minifies JavaScript files using <a
2999                                href="http://code.google.com/p/jsmin-php/">JsMin</a>. JsMin is bundled with Phing
3000                        and does not need to be installed separately. </p>
3001                <p> For more information on minifying JavaScript files see <a
3002                                href="http://www.crockford.com/javascript/jsmin.html" target="_blank">Douglas
3003                                Crockford's introduction to minifying JavaScript files</a>. </p>
3004                <h3>Example</h3>
3005                <pre>&lt;jsMin targetDir="docroot/script/minified" failOnError="false"&gt;
3006  &lt;fileset dir="docroot/script"&gt;
3007    &lt;include name="**/*.js"/&gt;
3008  &lt;/fileset&gt;
3009&lt;/jsMin&gt;
3010</pre>
3011                <h3>Attributes</h3>
3012                <table>
3013                        <thead>
3014                                <tr>
3015                                        <th>Name</th>
3016                                        <th>Type</th>
3017                                        <th>Description</th>
3018                                        <th>Default</th>
3019                                        <th>Required</th>
3020                                </tr>
3021                        </thead>
3022                        <tbody>
3023                                <tr>
3024                                        <td>targetDir</td>
3025                                        <td>String</td>
3026                                        <td>Path where to store minified JavaScript files</td>
3027                                        <td>none</td>
3028                                        <td>Yes</td>
3029                                </tr>
3030                                <tr>
3031                                        <td>suffix</td>
3032                                        <td>String</td>
3033                                        <td>Suffix to append to the filenames.</td>
3034                                        <td>-min</td>
3035                                        <td>No</td>
3036                                </tr>
3037                                <tr>
3038                                        <td>failonerror</td>
3039                                        <td>Boolean</td>
3040                                        <td>Whether an error while minifying a JavaScript file should stop the build or
3041                                                not</td>
3042                                        <td>false</td>
3043                                        <td>No</td>
3044                                </tr>
3045                        </tbody>
3046                </table>
3047                <h3>Supported Nested Tags</h3>
3048                <ul>
3049                        <li>fileset <p>JavaScript files to be minified.</p></li>
3050                </ul>
3051
3052                <h2><a name="LiquibaseChangeLogTask"></a>LiquibaseChangeLogTask </h2>
3053                <p> The <em>LiquibaseChangeLogTask</em> writes the Change Log XML to copy the
3054                 current state of the database to the given changeLogFile.</p>
3055                <h3>Example</h3>
3056                <pre>
3057&lt;liquibase-changelog
3058  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3059  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3060  changelogFile=&quot;./changelogTest.xml&quot;
3061  username=&quot;liquibase&quot;
3062  password=&quot;liquibase&quot;
3063  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3064/&gt;
3065</pre>
3066                <h3>Attributes</h3>
3067                <table>
3068                        <thead>
3069                                <tr>
3070                                        <th>Name</th>
3071                                        <th>Type</th>
3072                                        <th>Description</th>
3073                                        <th>Default</th>
3074                                        <th>Required</th>
3075                                </tr>
3076                        </thead>
3077                        <tbody>
3078                                <tr>
3079                                        <td>jar</td>
3080                                        <td>String</td>
3081                                        <td>Location of the Liquibase jar file.</td>
3082                                        <td>n/a</td>
3083                                        <td>Yes</td>
3084                                </tr>
3085                                <tr>
3086                                        <td>classpathref</td>
3087                                        <td>String</td>
3088                                        <td>Additional classpath entries</td>
3089                                        <td>n/a</td>
3090                                        <td>Yes</td>
3091                                </tr>
3092                                <tr>
3093                                        <td>changelogFile</td>
3094                                        <td>String</td>
3095                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3096                                        <td>n/a</td>
3097                                        <td>Yes</td>
3098                                </tr>
3099                                <tr>
3100                                        <td>username</td>
3101                                        <td>String</td>
3102                                        <td>The username needed to connect to the database.</td>
3103                                        <td>n/a</td>
3104                                        <td>Yes</td>
3105                                </tr>
3106                                <tr>
3107                                        <td>password</td>
3108                                        <td>String</td>
3109                                        <td>The password needed for the given use to connect to the database.</td>
3110                                        <td>n/a</td>
3111                                        <td>Yes</td>
3112                                </tr>
3113                                <tr>
3114                                        <td>url</td>
3115                                        <td>String</td>
3116                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3117                                        <td>n/a</td>
3118                                        <td>Yes</td>
3119                                </tr>
3120                        </tbody>
3121                </table>
3122                <h2><a name="LiquibaseDbDocTask"></a>LiquibaseDbDocTask </h2>
3123                <p> The <em>LiquibaseDbDocTask</em> generates a Javadoc-like documentation based on current database and the given change log file.</p>
3124                <h3>Example</h3>
3125                <pre>
3126&lt;liquibase-dbdoc
3127  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3128  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3129  changelogFile=&quot;./changelogTest.xml&quot;
3130  username=&quot;liquibase&quot;
3131  password=&quot;liquibase&quot;
3132  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3133  outputDir=&quot;/tmp/generateddocs&quot;
3134/&gt;
3135</pre>
3136                <h3>Attributes</h3>
3137                <table>
3138                        <thead>
3139                                <tr>
3140                                        <th>Name</th>
3141                                        <th>Type</th>
3142                                        <th>Description</th>
3143                                        <th>Default</th>
3144                                        <th>Required</th>
3145                                </tr>
3146                        </thead>
3147                        <tbody>
3148                                <tr>
3149                                        <td>jar</td>
3150                                        <td>String</td>
3151                                        <td>Location of the Liquibase jar file.</td>
3152                                        <td>n/a</td>
3153                                        <td>Yes</td>
3154                                </tr>
3155                                <tr>
3156                                        <td>classpathref</td>
3157                                        <td>String</td>
3158                                        <td>Additional classpath entries</td>
3159                                        <td>n/a</td>
3160                                        <td>Yes</td>
3161                                </tr>
3162                                <tr>
3163                                        <td>changelogFile</td>
3164                                        <td>String</td>
3165                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3166                                        <td>n/a</td>
3167                                        <td>Yes</td>
3168                                </tr>
3169                                <tr>
3170                                        <td>username</td>
3171                                        <td>String</td>
3172                                        <td>The username needed to connect to the database.</td>
3173                                        <td>n/a</td>
3174                                        <td>Yes</td>
3175                                </tr>
3176                                <tr>
3177                                        <td>password</td>
3178                                        <td>String</td>
3179                                        <td>The password needed for the given use to connect to the database.</td>
3180                                        <td>n/a</td>
3181                                        <td>Yes</td>
3182                                </tr>
3183                                <tr>
3184                                        <td>url</td>
3185                                        <td>String</td>
3186                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3187                                        <td>n/a</td>
3188                                        <td>Yes</td>
3189                                </tr>
3190                                <tr>
3191                                        <td>outputDir</td>
3192                                        <td>String</td>
3193                                        <td>Absolute path where the documentation gets written to. If the given directory does not exist, it get`s created automatically.</td>
3194                                        <td>n/a</td>
3195                                        <td>Yes</td>
3196                                </tr>
3197                        </tbody>
3198                </table>
3199                <h2><a name="LiquibaseDiffTask"></a>LiquibaseDiffTask </h2>
3200                <p> The <em>LiquibaseDiffTask</em> creates a diff between two databases. Will output the changes needed to convert the reference database to the state of the database.</p>
3201                <h3>Example</h3>
3202                <pre>
3203&lt;liquibase-diff
3204  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3205  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3206  changelogFile=&quot;./changelogTest.xml&quot;
3207  username=&quot;liquibase&quot;
3208  password=&quot;liquibase&quot;
3209  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3210  referenceUsername=&quot;liquibase&quot;
3211  referencePassword=&quot;liquibase&quot;
3212  referenceUrl=&quot;jdbc:mysql://localhost/refdatabase&quot;
3213/&gt;
3214</pre>
3215                <h3>Attributes</h3>
3216                <table>
3217                        <thead>
3218                                <tr>
3219                                        <th>Name</th>
3220                                        <th>Type</th>
3221                                        <th>Description</th>
3222                                        <th>Default</th>
3223                                        <th>Required</th>
3224                                </tr>
3225                        </thead>
3226                        <tbody>
3227                                <tr>
3228                                        <td>jar</td>
3229                                        <td>String</td>
3230                                        <td>Location of the Liquibase jar file.</td>
3231                                        <td>n/a</td>
3232                                        <td>Yes</td>
3233                                </tr>
3234                                <tr>
3235                                        <td>classpathref</td>
3236                                        <td>String</td>
3237                                        <td>Additional classpath entries</td>
3238                                        <td>n/a</td>
3239                                        <td>Yes</td>
3240                                </tr>
3241                                <tr>
3242                                        <td>changelogFile</td>
3243                                        <td>String</td>
3244                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3245                                        <td>n/a</td>
3246                                        <td>Yes</td>
3247                                </tr>
3248                                <tr>
3249                                        <td>username</td>
3250                                        <td>String</td>
3251                                        <td>The username needed to connect to the database.</td>
3252                                        <td>n/a</td>
3253                                        <td>Yes</td>
3254                                </tr>
3255                                <tr>
3256                                        <td>password</td>
3257                                        <td>String</td>
3258                                        <td>The password needed for the given use to connect to the database.</td>
3259                                        <td>n/a</td>
3260                                        <td>Yes</td>
3261                                </tr>
3262                                <tr>
3263                                        <td>url</td>
3264                                        <td>String</td>
3265                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3266                                        <td>n/a</td>
3267                                        <td>Yes</td>
3268                                </tr>
3269                                <tr>
3270                                        <td>referenceUsername</td>
3271                                        <td>String</td>
3272                                        <td>The username needed to connect to the reference database.</td>
3273                                        <td>n/a</td>
3274                                        <td>Yes</td>
3275                                </tr>
3276                                <tr>
3277                                        <td>referencePassword</td>
3278                                        <td>String</td>
3279                                        <td>The password needed for the given use to connect to the reference database.</td>
3280                                        <td>n/a</td>
3281                                        <td>Yes</td>
3282                                </tr>
3283                                <tr>
3284                                        <td>referenceUrl</td>
3285                                        <td>String</td>
3286                                        <td>The JDBC Url representing the reference database datasource, e.g jdbc:mysql://localhost/refdatabase.</td>
3287                                        <td>n/a</td>
3288                                        <td>Yes</td>
3289                                </tr>
3290                        </tbody>
3291                </table>
3292                <h2><a name="LiquibaseRollbackTask"></a>LiquibaseRollbackTask </h2>
3293                <p> The <em>LiquibaseRollbackTask</em> rolls back the database to the the state is was when the tag was applied.</p>
3294                <h3>Example</h3>
3295                <pre>
3296&lt;liquibase-rollback
3297  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3298  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3299  changelogFile=&quot;./changelogTest.xml&quot;
3300  username=&quot;liquibase&quot;
3301  password=&quot;liquibase&quot;
3302  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3303  rollbackTag=&quot;tag_0_1&quot;
3304/&gt;
3305</pre>
3306                <h3>Attributes</h3>
3307                <table>
3308                        <thead>
3309                                <tr>
3310                                        <th>Name</th>
3311                                        <th>Type</th>
3312                                        <th>Description</th>
3313                                        <th>Default</th>
3314                                        <th>Required</th>
3315                                </tr>
3316                        </thead>
3317                        <tbody>
3318                                <tr>
3319                                        <td>jar</td>
3320                                        <td>String</td>
3321                                        <td>Location of the Liquibase jar file.</td>
3322                                        <td>n/a</td>
3323                                        <td>Yes</td>
3324                                </tr>
3325                                <tr>
3326                                        <td>classpathref</td>
3327                                        <td>String</td>
3328                                        <td>Additional classpath entries</td>
3329                                        <td>n/a</td>
3330                                        <td>Yes</td>
3331                                </tr>
3332                                <tr>
3333                                        <td>changelogFile</td>
3334                                        <td>String</td>
3335                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3336                                        <td>n/a</td>
3337                                        <td>Yes</td>
3338                                </tr>
3339                                <tr>
3340                                        <td>username</td>
3341                                        <td>String</td>
3342                                        <td>The username needed to connect to the database.</td>
3343                                        <td>n/a</td>
3344                                        <td>Yes</td>
3345                                </tr>
3346                                <tr>
3347                                        <td>password</td>
3348                                        <td>String</td>
3349                                        <td>The password needed for the given use to connect to the database.</td>
3350                                        <td>n/a</td>
3351                                        <td>Yes</td>
3352                                </tr>
3353                                <tr>
3354                                        <td>url</td>
3355                                        <td>String</td>
3356                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3357                                        <td>n/a</td>
3358                                        <td>Yes</td>
3359                                </tr>
3360                                <tr>
3361                                        <td>rollbackTag</td>
3362                                        <td>String</td>
3363                                        <td>The name of the tag to roll the database back to.</td>
3364                                        <td>n/a</td>
3365                                        <td>Yes</td>
3366                                </tr>
3367                        </tbody>
3368                </table>
3369                <h2><a name="LiquibaseTagTask"></a>LiquibaseTagTask </h2>
3370                <p> The <em>LiquibaseTagTask</em> tags the current database state for future rollback.</p>
3371                <h3>Example</h3>
3372                <pre>
3373&lt;liquibase-tag
3374  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3375  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3376  changelogFile=&quot;./changelogTest.xml&quot;
3377  username=&quot;liquibase&quot;
3378  password=&quot;liquibase&quot;
3379  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3380  tag=&quot;tag_0_1&quot;
3381/&gt;
3382</pre>
3383                <h3>Attributes</h3>
3384                <table>
3385                        <thead>
3386                                <tr>
3387                                        <th>Name</th>
3388                                        <th>Type</th>
3389                                        <th>Description</th>
3390                                        <th>Default</th>
3391                                        <th>Required</th>
3392                                </tr>
3393                        </thead>
3394                        <tbody>
3395                                <tr>
3396                                        <td>jar</td>
3397                                        <td>String</td>
3398                                        <td>Location of the Liquibase jar file.</td>
3399                                        <td>n/a</td>
3400                                        <td>Yes</td>
3401                                </tr>
3402                                <tr>
3403                                        <td>classpathref</td>
3404                                        <td>String</td>
3405                                        <td>Additional classpath entries</td>
3406                                        <td>n/a</td>
3407                                        <td>Yes</td>
3408                                </tr>
3409                                <tr>
3410                                        <td>changelogFile</td>
3411                                        <td>String</td>
3412                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3413                                        <td>n/a</td>
3414                                        <td>Yes</td>
3415                                </tr>
3416                                <tr>
3417                                        <td>username</td>
3418                                        <td>String</td>
3419                                        <td>The username needed to connect to the database.</td>
3420                                        <td>n/a</td>
3421                                        <td>Yes</td>
3422                                </tr>
3423                                <tr>
3424                                        <td>password</td>
3425                                        <td>String</td>
3426                                        <td>The password needed for the given use to connect to the database.</td>
3427                                        <td>n/a</td>
3428                                        <td>Yes</td>
3429                                </tr>
3430                                <tr>
3431                                        <td>url</td>
3432                                        <td>String</td>
3433                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3434                                        <td>n/a</td>
3435                                        <td>Yes</td>
3436                                </tr>
3437                                <tr>
3438                                        <td>tag</td>
3439                                        <td>String</td>
3440                                        <td>The name of the tag to apply.</td>
3441                                        <td>n/a</td>
3442                                        <td>Yes</td>
3443                                </tr>
3444                        </tbody>
3445                </table>
3446                <h2><a name="LiquibaseUpdateTask"></a>LiquibaseUpdateTask </h2>
3447                <p> The <em>LiquibaseUpdateTask</em> applies the latest changes from the changelog file to the definied database.</p>
3448                <h3>Example</h3>
3449                <pre>
3450&lt;liquibase-update
3451  jar=&quot;/usr/local/lib/liquibase/liquibase.jar&quot;
3452  classpathref=&quot;/usr/local/lib/liquibase/lib/mysql-connector-java-5.1.15-bin.jar&quot;
3453  changelogFile=&quot;./changelogTest.xml&quot;
3454  username=&quot;liquibase&quot;
3455  password=&quot;liquibase&quot;
3456  url=&quot;jdbc:mysql://localhost/mydatabase&quot;
3457/&gt;
3458</pre>
3459                <h3>Attributes</h3>
3460                <table>
3461                        <thead>
3462                                <tr>
3463                                        <th>Name</th>
3464                                        <th>Type</th>
3465                                        <th>Description</th>
3466                                        <th>Default</th>
3467                                        <th>Required</th>
3468                                </tr>
3469                        </thead>
3470                        <tbody>
3471                                <tr>
3472                                        <td>jar</td>
3473                                        <td>String</td>
3474                                        <td>Location of the Liquibase jar file.</td>
3475                                        <td>n/a</td>
3476                                        <td>Yes</td>
3477                                </tr>
3478                                <tr>
3479                                        <td>classpathref</td>
3480                                        <td>String</td>
3481                                        <td>Additional classpath entries</td>
3482                                        <td>n/a</td>
3483                                        <td>Yes</td>
3484                                </tr>
3485                                <tr>
3486                                        <td>changelogFile</td>
3487                                        <td>String</td>
3488                                        <td>Location of the changelog file in which the changes get written or read from.</td>
3489                                        <td>n/a</td>
3490                                        <td>Yes</td>
3491                                </tr>
3492                                <tr>
3493                                        <td>username</td>
3494                                        <td>String</td>
3495                                        <td>The username needed to connect to the database.</td>
3496                                        <td>n/a</td>
3497                                        <td>Yes</td>
3498                                </tr>
3499                                <tr>
3500                                        <td>password</td>
3501                                        <td>String</td>
3502                                        <td>The password needed for the given use to connect to the database.</td>
3503                                        <td>n/a</td>
3504                                        <td>Yes</td>
3505                                </tr>
3506                                <tr>
3507                                        <td>url</td>
3508                                        <td>String</td>
3509                                        <td>The JDBC Url representing the database datasource, e.g jdbc:mysql://localhost/mydatabase</td>
3510                                        <td>n/a</td>
3511                                        <td>Yes</td>
3512                                </tr>
3513                        </tbody>
3514                </table>
3515                <h2>
3516                        <a name="MailTask"></a>MailTask </h2>
3517                <p>A task to send email.</p>
3518                <p><b>NB:</b> this task requires the PEAR <a href="http://pear.php.net/package/Mail">Mail</a> and
3519                <a href="http://pear.php.net/package/Mail_Mime">Mail_Mime</a> packages to send any attachments.</p>
3520                <h3>Example</h3>
3521                <pre>&lt;mail tolist=&quot;user@example.org&quot; subject=&quot;build complete&quot;&gt;The build process is a success...&lt;/mail&gt;</pre>
3522                <h3>Attributes</h3>
3523                <table>
3524                        <thead>
3525                                <tr>
3526                                        <th>Name</th>
3527                                        <th>Type</th>
3528                                        <th>Description</th>
3529                                        <th>Default</th>
3530                                        <th>Required</th>
3531                                </tr>
3532                        </thead>
3533                        <tbody>
3534                                <tr>
3535                                        <td>from</td>
3536                                        <td>String</td>
3537                                        <td>Email address of sender.</td>
3538                                        <td>none</td>
3539                                        <td>Yes</td>
3540                                </tr>
3541                                <tr>
3542                                        <td>tolist</td>
3543                                        <td>String</td>
3544                                        <td>Comma-separated list of recipients.</td>
3545                                        <td>none</td>
3546                                        <td>Yes</td>
3547                                </tr>
3548                                <tr>
3549                                        <td>message</td>
3550                                        <td>String</td>
3551                                        <td>Message to send in the body of the email.</td>
3552                                        <td>none</td>
3553                                        <td>No</td>
3554                                </tr>
3555                                <tr>
3556                                        <td>subject</td>
3557                                        <td>String</td>
3558                                        <td>Email subject line.</td>
3559                                        <td>none</td>
3560                                        <td>No</td>
3561                                </tr>
3562                        </tbody>
3563                </table>
3564                <h3>Supported Nested Tags</h3>
3565                <ul>
3566                        <li>fileset <p>Files to be attached (requires the PEAR Mail and Mail_Mime packages).</p></li>
3567                </ul>
3568                <h2>
3569                        <a name="ParallelTask"></a>ParallelTask </h2>
3570                <p>Executes nested tasks in parallel.</p>
3571                <p><b>WARNING:</b> this task is highly experimental, and
3572                will only work on *nix machines that have the PHP pcntl
3573                extension installed.</p>
3574                <pre>&lt;parallel threadCount=&quot;4&quot;&gt;
3575    &lt;echo&gt;Job 1&lt;/echo&gt;
3576    &lt;echo&gt;Job 2&lt;/echo&gt;
3577    &lt;echo&gt;Job 3&lt;/echo&gt;
3578    &lt;echo&gt;Job 4&lt;/echo&gt;
3579&lt;/trycatch&gt;
3580                <h3>Attributes</h3>
3581                <table>
3582                        <thead>
3583                                <tr>
3584                                        <th>Name</th>
3585                                        <th>Type</th>
3586                                        <th>Description</th>
3587                                        <th>Default</th>
3588                                        <th>Required</th>
3589                                </tr>
3590                        </thead>
3591                        <tbody>
3592                                <tr>
3593                                        <td>threadCount</td>
3594                                        <td>Integer</td>
3595                                        <td>Maximum number of threads /
3596                                        processes to use.</td>
3597                                        <td>n/a</td>
3598                                        <td>No</td>
3599                                </tr>
3600                        </tbody>
3601                </table>
3602                <h2>
3603                        <a name="PatchTask"></a>PatchTask </h2>
3604                <p> The <em>PatchTask</em> uses the <a href="http://savannah.gnu.org/projects/patch"
3605                                target="_blank">patch</a> program to apply diff file to originals. </p>
3606                <p>
3607                        <b>NB:</b> the patch program must be in the system path! </p>
3608                <h3>Attributes</h3>
3609                <table>
3610                        <thead>
3611                                <tr>
3612                                        <th>Name</th>
3613                                        <th>Type</th>
3614                                        <th>Description</th>
3615                                        <th>Default</th>
3616                                        <th>Required</th>
3617                                </tr>
3618                        </thead>
3619                        <tbody>
3620                                <tr>
3621                                        <td>patchfile</td>
3622                                        <td>String</td>
3623                                        <td>File that includes the diff output</td>
3624                                        <td>n/a</td>
3625                                        <td>Yes</td>
3626                                </tr>
3627                                <tr>
3628                                        <td>originalfile</td>
3629                                        <td>String</td>
3630                                        <td>File to patch. If not specified Task tries to guess it from the diff
3631                                                file</td>
3632                                        <td>none</td>
3633                                        <td>No</td>
3634                                </tr>
3635                                <tr>
3636                                        <td>destfile</td>
3637                                        <td>String</td>
3638                                        <td>File to send the output to instead of patching the file in place</td>
3639                                        <td>none</td>
3640                                        <td>No</td>
3641                                </tr>
3642                                <tr>
3643                                        <td>backups</td>
3644                                        <td>Boolean</td>
3645                                        <td>Keep backups of the unpatched files</td>
3646                                        <td>false</td>
3647                                        <td>No</td>
3648                                </tr>
3649                                <tr>
3650                                        <td>quiet</td>
3651                                        <td>Boolean</td>
3652                                        <td>Work silently unless an error occurs</td>
3653                                        <td>false</td>
3654                                        <td>No</td>
3655                                </tr>
3656                                <tr>
3657                                        <td>reverse</td>
3658                                        <td>Boolean</td>
3659                                        <td>Assume patch was created with old and new files swapped</td>
3660                                        <td>false</td>
3661                                        <td>No</td>
3662                                </tr>
3663                                <tr>
3664                                        <td>ignorewhitespace</td>
3665                                        <td>Boolean</td>
3666                                        <td>Ignore whitespace differences</td>
3667                                        <td>false</td>
3668                                        <td>No</td>
3669                                </tr>
3670                                <tr>
3671                                        <td>strip</td>
3672                                        <td>Integer</td>
3673                                        <td>Strip the smallest prefix containing specified number of leading slashes
3674                                                from filenames</td>
3675                                        <td>none</td>
3676                                        <td>No</td>
3677                                </tr>
3678                                <tr>
3679                                        <td>dir</td>
3680                                        <td>String</td>
3681                                        <td>The directory in which to run the patch command</td>
3682                                        <td>none</td>
3683                                        <td>No</td>
3684                                </tr>
3685                                <tr>
3686                                        <td>haltonfailure</td>
3687                                        <td>Boolean</td>
3688                                        <td>Stop the build process if the patching process encounters an error.</td>
3689                                        <td>false</td>
3690                                        <td>No</td>
3691                                </tr>
3692                        </tbody>
3693                </table>
3694                <h3>Example</h3>
3695                <pre>
3696&lt;patch
3697&nbsp;&nbsp;patchfile=&quot;/path/to/patches/file.ext.patch&quot;
3698&nbsp;&nbsp;dir=&quot;/path/to/original&quot;
3699/&gt;
3700</pre>
3701                <p>Apply "file.ext.path" to original file locataed in "/path/to/original" folder.</p>
3702                <h2>
3703                        <a name="PDOSQLExecTask"></a>PDOSQLExecTask </h2>
3704                <p> The <em>PDOSQLExecTask</em> executes SQL statements using PDO. </p>
3705                <h3>Examples</h3>
3706                <pre>&lt;pdosqlexec url="pgsql:host=localhost dbname=test"&gt;
3707  &lt;fileset dir=&quot;sqlfiles&quot;&gt;
3708          &lt;include name=&quot;*.sql&quot;/&gt;
3709          &lt;/fileset&gt;<br />&lt;/pdosqlexec&gt;
3710</pre>
3711                <pre>&lt;pdosqlexec url="mysql:host=localhost;dbname=test" userid="username" password="password"&gt;
3712  &lt;transaction src=&quot;path/to/sqlfile.sql&quot;/&gt;
3713  &lt;formatter type=&quot;plain&quot; outfile=&quot;path/to/output.txt&quot;/&gt;
3714  &lt;/pdosqlexec&gt;
3715</pre>
3716                <p>
3717                        <strong>Note:</strong> because of backwards compatiblity, the PDOSQLExecTask can also be
3718                        called using the <em>'pdo'</em> statement. </p>
3719                <h3>Attributes</h3>
3720                <table>
3721                        <thead>
3722                                <tr>
3723                                        <th>Name</th>
3724                                        <th>Type</th>
3725                                        <th>Description</th>
3726                                        <th>Default</th>
3727                                        <th>Required</th>
3728                                </tr>
3729                        </thead>
3730                        <tbody>
3731                                <tr>
3732                                        <td>url</td>
3733                                        <td>String</td>
3734                                        <td>PDO connection URL (DSN)</td>
3735                                        <td>none</td>
3736                                        <td>Yes</td>
3737                                </tr>
3738                                <tr>
3739                                        <td>userid</td>
3740                                        <td>String</td>
3741                                        <td>Username for connection (if it cannot be specified in URL) </td>
3742                                        <td>none</td>
3743                                        <td>No</td>
3744                                </tr>
3745                                <tr>
3746                                        <td>password</td>
3747                                        <td>String</td>
3748                                        <td>The password to use for the connection (if it cannot be specified in
3749                                                URL)</td>
3750                                        <td>none</td>
3751                                        <td>No</td>
3752                                </tr>
3753                                <!--        <tr>
3754          <td>encoding</td>
3755          <td>String</td>
3756          <td>The database encoding.</td>
3757          <td>none</td>
3758          <td>No</td>
3759        </tr> -->
3760                                <tr>
3761                                        <td>src</td>
3762                                        <td>File</td>
3763                                        <td>A single source file of SQL statements to execute.</td>
3764                                        <td>none</td>
3765                                        <td>No</td>
3766                                </tr>
3767                                <tr>
3768                                        <td>onerror</td>
3769                                        <td>String</td>
3770                                        <td>The action to perform on error (continue, stop, or abort)</td>
3771                                        <td>abort</td>
3772                                        <td>No</td>
3773                                </tr>
3774                                <tr>
3775                                        <td>delimiter</td>
3776                                        <td>String</td>
3777                                        <td>The delimeter to separate SQL statements (e.g. &quot;GO&quot; in MSSQL)</td>
3778                                        <td>;</td>
3779                                        <td>No</td>
3780                                </tr>
3781                                <tr>
3782                                        <td>delimitertype</td>
3783                                        <td>String</td>
3784                                        <td>The delimiter type (&quot;normal&quot; or &quot;row&quot;). Normal means
3785                                                that any occurence of the delimiter terminate the SQL command whereas with
3786                                                row, only a line containing just the delimiter is recognized as the end of
3787                                                the command.</td>
3788                                        <td>normal</td>
3789                                        <td>No</td>
3790                                </tr>
3791                                <tr>
3792                                        <td>autocommit</td>
3793                                        <td>Boolean</td>
3794                                        <td>Whether to autocommit every single statement.</td>
3795                                        <td>false</td>
3796                                        <td>No</td>
3797                                </tr>
3798                                <tr>
3799                                        <td>encoding</td>
3800                                        <td>String</td>
3801                                        <td>Encoding to use for read SQL files</td>
3802                                        <td>none</td>
3803                                        <td>No</td>
3804                                </tr>
3805                        </tbody>
3806                </table>
3807                <h3>Supported Nested Tags</h3>
3808                <ul>
3809                        <li>transaction <p>Wrapper for a single transaction. Transactions allow several files or
3810                                        blocks of statements to be executed using the same PDO connection and commit
3811                                        operation in between.</p>
3812                                <h3>Attributes</h3>
3813                                <table>
3814                                        <thead>
3815                                                <tr>
3816                                                        <th>Name</th>
3817                                                        <th>Type</th>
3818                                                        <th>Description</th>
3819                                                        <th>Default</th>
3820                                                        <th>Required</th>
3821                                                </tr>
3822                                        </thead>
3823                                        <tbody>
3824                                                <tr>
3825                                                        <td>tsrcfile</td>
3826                                                        <td>String</td>
3827                                                        <td>File with statements to be run as one transaction</td>
3828                                                        <td>n/a</td>
3829                                                        <td>No</td>
3830                                                </tr>
3831                                        </tbody>
3832                                </table>
3833                        </li>
3834                        <li>fileset <p>Files containing SQL statements.</p></li>
3835                        <li>filelist <p>Files containing SQL statements.</p></li>
3836                        <li>formatter <p> The results of any queries that are executed can be printed in
3837                                        different formats. Output will always be sent to a file, unless you set the
3838                                                <em>usefile</em> attribute to <em>false</em>. The path to the output file
3839                                        file can be specified by the <em>outfile</em> attribute; there is a default
3840                                        filename that will be returned by the formatter if no output file is specified. </p>
3841                                <p>There are three predefined formatters - one prints the query results in XML
3842                                        format, the other emits plain text. Custom formatters that extend
3843                                        phing.tasks.pdo.PDOResultFormatter can be specified.</p>
3844                                <h3>Attributes</h3>
3845                                <table>
3846                                        <thead>
3847                                                <tr>
3848                                                        <th>Name</th>
3849                                                        <th>Type</th>
3850                                                        <th>Description</th>
3851                                                        <th>Default</th>
3852                                                        <th>Required</th>
3853                                                </tr>
3854                                        </thead>
3855                                        <tbody>
3856                                                <tr>
3857                                                        <td>type</td>
3858                                                        <td>String</td>
3859                                                        <td>Use a predefined formatter (either <em>xml</em> or <em>plain</em>). </td>
3860                                                        <td>n/a</td>
3861                                                        <td rowspan="2">One of these attributes is required.</td>
3862                                                </tr>
3863                                                <tr>
3864                                                        <td>classname</td>
3865                                                        <td>String</td>
3866                                                        <td>Name of a custom formatter class (must extend
3867                                                                phing.tasks.ext.pdo.PDOResultFormatter).</td>
3868                                                        <td>n/a</td>
3869                                                </tr>
3870                                                <tr>
3871                                                        <td>usefile</td>
3872                                                        <td>Boolean</td>
3873                                                        <td>Boolean that determines whether output should be sent to a
3874                                                                file.</td>
3875                                                        <td>true</td>
3876                                                        <td>No</td>
3877                                                </tr>
3878                                                <tr>
3879                                                        <td>outfile</td>
3880                                                        <td>File</td>
3881                                                        <td>Path to file in which to store result.</td>
3882                                                        <td>Depends on formatter</td>
3883                                                        <td>No</td>
3884                                                </tr>
3885                                                <tr>
3886                                                        <td>showheaders</td>
3887                                                        <td>Boolean</td>
3888                                                        <td>(only applies to plain formatter) Whether to show column
3889                                                                headers.</td>
3890                                                        <td>false</td>
3891                                                        <td>No</td>
3892                                                </tr>
3893                                                <tr>
3894                                                        <td>coldelim</td>
3895                                                        <td>String</td>
3896                                                        <td>(only applies to plain formatter) The column delimiter.</td>
3897                                                        <td>,</td>
3898                                                        <td>No</td>
3899                                                </tr>
3900                                                <tr>
3901                                                        <td>rowdelim</td>
3902                                                        <td>String</td>
3903                                                        <td>(only applies to plain formatter) The row delimiter.</td>
3904                                                        <td>\n</td>
3905                                                        <td>No</td>
3906                                                </tr>
3907                                                <tr>
3908                                                        <td>encoding</td>
3909                                                        <td>String</td>
3910                                                        <td>(only applies to XML formatter) The xml document encoding.</td>
3911                                                        <td>(PHP default)</td>
3912                                                        <td>No</td>
3913                                                </tr>
3914                                                <tr>
3915                                                        <td>formatoutput</td>
3916                                                        <td>Boolean</td>
3917                                                        <td>(only applies to XML formatter) Whether to format XML output.</td>
3918                                                        <td>true</td>
3919                                                        <td>No</td>
3920                                                </tr>
3921                                        </tbody>
3922                                </table>
3923                                <h3>Examples</h3>
3924                                <pre>&lt;pdo url="pgsql:host=localhost dbname=test"&gt;
3925  &lt;fileset dir=&quot;sqlfiles&quot;&gt;
3926          &lt;include name=&quot;*.sql&quot;/&gt;
3927  &lt;/fileset&gt;
3928
3929  &lt;!-- xml formatter --&gt;
3930  &lt;formatter type=&quot;xml&quot; output=&quot;output.xml&quot;/&gt;
3931
3932  &lt;!-- custom formatter --&gt;
3933  &lt;formatter classname=&quot;path.to.CustomFormatterClass&quot;&gt;
3934    &lt;param name=&quot;someClassAttrib&quot; value=&quot;some-value&quot;/&gt;
3935  &lt;/formatter&gt;
3936
3937  &lt;!-- No output file + usefile=false means it goes to phing log --&gt;
3938  &lt;formatter type=&quot;plain&quot; usefile=&quot;false&quot; /&gt;<br />&lt;/pdo&gt;
3939</pre>
3940                        </li>
3941                </ul>
3942                <h2>
3943                        <a name="PearPackageTask"></a> PearPackageTask </h2>
3944                <p> With the PearPackageTask, you can create a package.xml which can be installed using the
3945                        PEAR installer. Use this in conjunction with the <a href="#Tasks.TarTask">TarTask</a> to
3946                        completely script the building of a PEAR package. </p>
3947                <p>
3948                        <strong>Note that this task creates a <em>version 1</em> package.xml file.</strong>
3949                </p>
3950                <p> This task uses the <code>PEAR_PackageFileManager</code> class. In order to be maximally
3951                        flexible, the majority of options are set generically (using <em>&lt;option&gt;</em>
3952                        tag) and are set using <code>PEAR_PackageFileManager::setOptions()</code> . Use the
3953                                <em>&lt;mapping&gt;</em> tag to represent complex values (which are turned into
3954                        associative arrays and also set using <code>setOptions()</code> method). </p>
3955                <h3>Example</h3>
3956                <pre>
3957&lt;pearpkg name="phing" dir="${build.src.dir}" destFile="${build.base.dir}/package.xml"&gt;
3958&lt;fileset dir=&quot;.&quot;&gt;
3959&nbsp;&nbsp;&lt;include name="**"/&gt;
3960&lt;/fileset&gt;
3961&lt;option name="notes"&gt;Sample release notes here.&lt;/option&gt;
3962&lt;option name="description"&gt;Package description&lt;/option&gt;
3963&lt;option name="summary"&gt;Short description&lt;/option&gt;
3964&lt;option name="version" value="2.0.0b1"/&gt;
3965&lt;option name="state" value="beta"/&gt;
3966 &lt;mapping name="maintainers"&gt;
3967&nbsp;&nbsp;&lt;element&gt;
3968&nbsp;&nbsp;&nbsp;&lt;element key="handle" value="hlellelid"/&gt;
3969&nbsp;&nbsp;&nbsp;&lt;element key="name" value="Hans"/&gt;
3970&nbsp;&nbsp;&nbsp;&lt;element key="email" value="hans@xmpl.org"/&gt;
3971&nbsp;&nbsp;&nbsp;&lt;element key="role" value="lead"/&gt;
3972&nbsp;&nbsp;&lt;/element&gt;
3973&lt;/mapping&gt;
3974&lt;/pearpkg&gt;
3975</pre>
3976                <h3>Attributes</h3>
3977                <table>
3978                        <thead>
3979                                <tr>
3980                                        <th>Name</th>
3981                                        <th>Type</th>
3982                                        <th>Description</th>
3983                                        <th>Default</th>
3984                                        <th>Required</th>
3985                                </tr>
3986                        </thead>
3987                        <tbody>
3988                                <tr>
3989                                        <td>name</td>
3990                                        <td>String</td>
3991                                        <td>The name of the PEAR package.</td>
3992                                        <td>n/a</td>
3993                                        <td>Yes</td>
3994                                </tr>
3995                                <tr>
3996                                        <td>dir</td>
3997                                        <td>String</td>
3998                                        <td>The base directory of files to add to package.</td>
3999                                        <td>n/a</td>
4000                                        <td>Yes</td>
4001                                </tr>
4002                                <tr>
4003                                        <td>destFile</td>
4004                                        <td>String</td>
4005                                        <td>The file to create.</td>
4006                                        <td>package.xml in base directory</td>
4007                                        <td>No</td>
4008                                </tr>
4009                        </tbody>
4010                </table>
4011                <h3>Supported Nested Tags</h3>
4012                <ul>
4013                        <li>fileset</li>
4014                        <li>option</li>
4015                        <li><p>mapping</p>
4016                                <p> The &lt;mapping&gt; tag represents a complex data type. You can use nested
4017                                        &lt;mapping&gt; (and nested &lt;element&gt; with &lt;element&gt; tags) to
4018                                        represent the full complexity of the structure. Bear in mind that what you are
4019                                        creating will be mapped to an associative array that will be passed in via
4020                                                <code>PEAR_PackageFileMaintainer::setOptions()</code> . </p>
4021                                <pre>&lt;mapping name="option_name"&gt;
4022    &lt;element key="key_name" value="key_val"/&gt;
4023    &lt;element key="key_name" value="key_val"/&gt;
4024&lt;/mapping&gt;</pre>
4025                        </li>
4026                        <li>
4027                                <p>role <br /> See <a
4028                                                href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php"
4029                                                target="_blank">PEAR_PackageFileManager::addRole</a> for more
4030                                        information.</p>
4031                                <p>Available options:</p>
4032                                <table>
4033                                        <thead>
4034                                                <tr>
4035                                                        <th>Name</th>
4036                                                        <th>Type</th>
4037                                                        <th>Description</th>
4038                                                        <th>Default</th>
4039                                                        <th>Required</th>
4040                                                </tr>
4041                                        </thead>
4042                                        <tbody>
4043                                                <tr>
4044                                                        <td>extension</td>
4045                                                        <td>String</td>
4046                                                        <td>The file extension</td>
4047                                                        <td>n/a</td>
4048                                                        <td>Yes</td>
4049                                                </tr>
4050                                                <tr>
4051                                                        <td>role</td>
4052                                                        <td>String</td>
4053                                                        <td>The file extension</td>
4054                                                        <td>n/a</td>
4055                                                        <td>Yes</td>
4056                                                </tr>
4057                                        </tbody>
4058                                </table>
4059                        </li>
4060                </ul>
4061                <h2>
4062                        <a name="PearPackage2Task"></a>PearPackage2Task </h2>
4063                <p> With the PearPackage2Task, you can create a <em>version 2</em> package.xml which can be
4064                        installed using the PEAR installer. Use this in conjunction with the <a
4065                                href="#Tasks.TarTask">TarTask</a> to completely script the building of a PEAR
4066                        package. </p>
4067                <p> This task uses the PEAR_PackageFileManager2 class. In order to be maximally flexible,
4068                        the majority of options are set generically (using <em>&lt;option&gt;</em> tag) and are
4069                        set using PEAR_PackageFileManager::setOptions(). Use the <em>&lt;mapping&gt;</em> tag to
4070                        represent complex values. </p>
4071                <p> Note that Travis Swicegood has created a more complete implementation of this
4072                        functionality which can be found here: <a href="http://pear.domain51.com/"
4073                                >pear.domain51.com</a>. </p>
4074                <h3>Example</h3>
4075                <pre>&lt;pearpkg2 name="phing" dir="${build.src.dir}"&gt;
4076   &lt;option name=&quot;outputdirectory&quot; value=&quot;./build&quot;/&gt;<br />   &lt;option name=&quot;packagefile&quot; value=&quot;package2.xml&quot;/&gt;<br />   &lt;option name=&quot;packagedirectory&quot; value=&quot;./${build.dist.dir}&quot;/&gt;<br />   &lt;option name=&quot;baseinstalldir&quot; value=&quot;${pkg.prefix}&quot;/&gt;<br />   &lt;option name=&quot;channel&quot; value=&quot;my.pear-channel.com&quot;/&gt;<br />   &lt;option name=&quot;summary&quot; value=&quot;${pkg.summary}&quot;/&gt;<br />   &lt;option name=&quot;description&quot; value=&quot;${pkg.description}&quot;/&gt;<br />   &lt;option name=&quot;apiversion&quot; value=&quot;${pkg.version}&quot;/&gt;<br />   &lt;option name=&quot;apistability&quot; value=&quot;beta&quot;/&gt;<br />   &lt;option name=&quot;releaseversion&quot; value=&quot;${pkg.version}&quot;/&gt;<br />   &lt;option name=&quot;releasestability&quot; value=&quot;beta&quot;/&gt;<br />   &lt;option name=&quot;license&quot; value=&quot;none&quot;/&gt;<br />   &lt;option name=&quot;phpdep&quot; value=&quot;5.0.0&quot;/&gt;<br />   &lt;option name=&quot;pearinstallerdep&quot; value=&quot;1.4.6&quot;/&gt;<br />   &lt;option name=&quot;packagetype&quot; value=&quot;php&quot;/&gt;<br />   &lt;option name=&quot;notes&quot; value=&quot;${pkg.relnotes}&quot;/&gt;<br />   &lt;mapping name=&quot;maintainers&quot;&gt;<br />    &lt;element&gt;<br />     &lt;element key=&quot;handle&quot; value=&quot;hlellelid&quot;/&gt;<br />     &lt;element key=&quot;name&quot; value=&quot;Hans&quot;/&gt;<br />     &lt;element key=&quot;email&quot; value=&quot;hans@xmpl.org&quot;/&gt;<br />     &lt;element key=&quot;role&quot; value=&quot;lead&quot;/&gt;<br />    &lt;/element&gt;<br />   &lt;/mapping&gt;<br />&lt;/pearpkg2&gt;</pre>
4077                <h3>Attributes</h3>
4078                <table>
4079                        <thead>
4080                                <tr>
4081                                        <th>Name</th>
4082                                        <th>Type</th>
4083                                        <th>Description</th>
4084                                        <th>Default</th>
4085                                        <th>Required</th>
4086                                </tr>
4087                        </thead>
4088                        <tbody>
4089                                <tr>
4090                                        <td>name</td>
4091                                        <td>String</td>
4092                                        <td>The name of the PEAR package.</td>
4093                                        <td>n/a</td>
4094                                        <td>Yes</td>
4095                                </tr>
4096                                <tr>
4097                                        <td>dir</td>
4098                                        <td>String</td>
4099                                        <td>The base directory of files to add to package.</td>
4100                                        <td>n/a</td>
4101                                        <td>Yes</td>
4102                                </tr>
4103                        </tbody>
4104                </table>
4105                <h3>Supported Nested Tags</h3>
4106                <ul>
4107                        <li>fileset</li>
4108                        <li>
4109                                <p>option</p>
4110                                <p>Available options:</p>
4111                                <table>
4112                                        <thead>
4113                                                <tr>
4114                                                        <th>Name</th>
4115                                                        <th>Type</th>
4116                                                        <th>Description</th>
4117                                                        <th>Default</th>
4118                                                        <th>Required</th>
4119                                                </tr>
4120                                        </thead>
4121                                        <tbody>
4122                                                <tr>
4123                                                        <td>summary</td>
4124                                                        <td>String</td>
4125                                                        <td></td>
4126                                                        <td>n/a</td>
4127                                                        <td>Yes</td>
4128                                                </tr>
4129                                                <tr>
4130                                                        <td>description</td>
4131                                                        <td>String</td>
4132                                                        <td></td>
4133                                                        <td>n/a</td>
4134                                                        <td>Yes</td>
4135                                                </tr>
4136                                                <tr>
4137                                                        <td>license</td>
4138                                                        <td>String</td>
4139                                                        <td></td>
4140                                                        <td>n/a</td>
4141                                                        <td>Yes</td>
4142                                                </tr>
4143                                                <tr>
4144                                                        <td>channel</td>
4145                                                        <td>String</td>
4146                                                        <td>Channel name (not alias!). Must be registered (<code> pear
4147                                                                        channel-discover <em>channel</em>
4148                                                                </code>) on the machine, where the build will be.</td>
4149                                                        <td>n/a</td>
4150                                                        <td>Yes</td>
4151                                                </tr>
4152                                                <tr>
4153                                                        <td>apiversion</td>
4154                                                        <td>String</td>
4155                                                        <td></td>
4156                                                        <td>n/a</td>
4157                                                        <td>Yes</td>
4158                                                </tr>
4159                                                <tr>
4160                                                        <td>releaseversion</td>
4161                                                        <td>String</td>
4162                                                        <td></td>
4163                                                        <td>n/a</td>
4164                                                        <td>Yes</td>
4165                                                </tr>
4166                                                <tr>
4167                                                        <td>releasestability</td>
4168                                                        <td>String</td>
4169                                                        <td>One from: snapshot, devel, alpha, beta or stable.</td>
4170                                                        <td>n/a</td>
4171                                                        <td>Yes</td>
4172                                                </tr>
4173                                                <tr>
4174                                                        <td>apistability</td>
4175                                                        <td>String</td>
4176                                                        <td>One from: devel, alpha, beta or stable.</td>
4177                                                        <td>n/a</td>
4178                                                        <td>Yes</td>
4179                                                </tr>
4180                                                <tr>
4181                                                        <td>note</td>
4182                                                        <td>String</td>
4183                                                        <td></td>
4184                                                        <td>n/a</td>
4185                                                        <td>Yes</td>
4186                                                </tr>
4187                                                <tr>
4188                                                        <td>packagetype</td>
4189                                                        <td>String</td>
4190                                                        <td></td>
4191                                                        <td>n/a</td>
4192                                                        <td>Yes</td>
4193                                                </tr>
4194                                                <tr>
4195                                                        <td>phpdep</td>
4196                                                        <td>String</td>
4197                                                        <td></td>
4198                                                        <td>n/a</td>
4199                                                        <td>Yes</td>
4200                                                </tr>
4201                                                <tr>
4202                                                        <td>pearinstallerdep</td>
4203                                                        <td>String</td>
4204                                                        <td></td>
4205                                                        <td>n/a</td>
4206                                                        <td>Yes</td>
4207                                                </tr>
4208                                        </tbody>
4209                                </table>
4210                        </li>
4211                        <li><p>mapping</p>
4212                                <p> The &lt;mapping&gt; tag represents a complex data type. You can use nested
4213                                        &lt;mapping&gt; (and nested &lt;element&gt; with &lt;element&gt; tags) to
4214                                        represent the full complexity of the structure. Bear in mind that what you are
4215                                        creating will be mapped to an associative array that will be passed in via
4216                                                <code>PEAR_PackageFileMaintainer::setOptions()</code> . </p>
4217                                <pre>&lt;mapping name="option_name"&gt;
4218    &lt;element key="key_name" value="key_val"/&gt;
4219    &lt;element key="key_name" value="key_val"/&gt;
4220&lt;/mapping&gt;</pre>
4221                                <p>Available mappings and they structures:</p>
4222                                <ul>
4223                                        <li>deps (optional) <br /> see <a
4224                                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php"
4225                                                        >PEAR_PackageFileManager::addDependency()</a> for more info <br />
4226                                                <br />
4227                                                <table>
4228                                                        <thead>
4229                                                                <tr>
4230                                                                        <th>Name</th>
4231                                                                        <th>Type</th>
4232                                                                        <th>Description</th>
4233                                                                        <th>Default</th>
4234                                                                        <th>Required</th>
4235                                                                </tr>
4236                                                        </thead>
4237                                                        <tbody>
4238                                                                <tr>
4239                                                                        <td>channel</td>
4240                                                                        <td>String</td>
4241                                                                        <td>Channel name, from package is.</td>
4242                                                                        <td>n/a</td>
4243                                                                        <td>Yes</td>
4244                                                                </tr>
4245                                                                <tr>
4246                                                                        <td>name</td>
4247                                                                        <td>String</td>
4248                                                                        <td>Package name in channel.</td>
4249                                                                        <td>n/a</td>
4250                                                                        <td>Yes</td>
4251                                                                </tr>
4252                                                                <tr>
4253                                                                        <td>version</td>
4254                                                                        <td>String</td>
4255                                                                        <td>Minimal version.</td>
4256                                                                        <td>n/a</td>
4257                                                                        <td>Yes</td>
4258                                                                </tr>
4259                                                                <tr>
4260                                                                        <td>max</td>
4261                                                                        <td>String</td>
4262                                                                        <td>Maximum version.</td>
4263                                                                        <td>Same as version.</td>
4264                                                                        <td>No</td>
4265                                                                </tr>
4266                                                                <tr>
4267                                                                        <td>recommended</td>
4268                                                                        <td>String</td>
4269                                                                        <td>Recommended version.</td>
4270                                                                        <td>Same as version.</td>
4271                                                                        <td>No</td>
4272                                                                </tr>
4273                                                        </tbody>
4274                                                </table>
4275                                        </li>
4276                                        <li>extdeps (optional) <br /> see <a
4277                                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.adddependency.php"
4278                                                        >PEAR_PackageFileManager::addDependency()</a> for more info <br />
4279                                                <br />
4280                                                <table>
4281                                                        <thead>
4282                                                                <tr>
4283                                                                        <th>Name</th>
4284                                                                        <th>Type</th>
4285                                                                        <th>Description</th>
4286                                                                        <th>Default</th>
4287                                                                        <th>Required</th>
4288                                                                </tr>
4289                                                        </thead>
4290                                                        <tbody>
4291                                                                <tr>
4292                                                                        <td>name</td>
4293                                                                        <td>String</td>
4294                                                                        <td>Package name.</td>
4295                                                                        <td>n/a</td>
4296                                                                        <td>Yes</td>
4297                                                                </tr>
4298                                                                <tr>
4299                                                                        <td>version</td>
4300                                                                        <td>String</td>
4301                                                                        <td>Minimal version.</td>
4302                                                                        <td>n/a</td>
4303                                                                        <td>Yes</td>
4304                                                                </tr>
4305                                                                <tr>
4306                                                                        <td>max</td>
4307                                                                        <td>String</td>
4308                                                                        <td>Maximum version.</td>
4309                                                                        <td>Same as version.</td>
4310                                                                        <td>No</td>
4311                                                                </tr>
4312                                                                <tr>
4313                                                                        <td>recommended</td>
4314                                                                        <td>String</td>
4315                                                                        <td>Recommended version.</td>
4316                                                                        <td>Same as version.</td>
4317                                                                        <td>No</td>
4318                                                                </tr>
4319                                                        </tbody>
4320                                                </table>
4321                                        </li>
4322                                        <li>maintainers (required at least one) <br /> see <a
4323                                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addmaintainer.php"
4324                                                        >PEAR_PackageFileManager::addMaintainer()</a> for more info <br />
4325                                                <br />
4326                                                <table>
4327                                                        <thead>
4328                                                                <tr>
4329                                                                        <th>Name</th>
4330                                                                        <th>Type</th>
4331                                                                        <th>Description</th>
4332                                                                        <th>Default</th>
4333                                                                        <th>Required</th>
4334                                                                </tr>
4335                                                        </thead>
4336                                                        <tbody>
4337                                                                <tr>
4338                                                                        <td>handle</td>
4339                                                                        <td>String</td>
4340                                                                        <td>User identifier in channel.</td>
4341                                                                        <td>n/a</td>
4342                                                                        <td>Yes</td>
4343                                                                </tr>
4344                                                                <tr>
4345                                                                        <td>name</td>
4346                                                                        <td>String</td>
4347                                                                        <td>Real name.</td>
4348                                                                        <td>n/a</td>
4349                                                                        <td>Yes</td>
4350                                                                </tr>
4351                                                                <tr>
4352                                                                        <td>email</td>
4353                                                                        <td>String</td>
4354                                                                        <td></td>
4355                                                                        <td>n/a</td>
4356                                                                        <td>Yes</td>
4357                                                                </tr>
4358                                                                <tr>
4359                                                                        <td>role</td>
4360                                                                        <td>String</td>
4361                                                                        <td>One from: lead, developer, contributor or helper.</td>
4362                                                                        <td>n/a</td>
4363                                                                        <td>Yes</td>
4364                                                                </tr>
4365                                                        </tbody>
4366                                                </table>
4367                                        </li>
4368                                        <li>replacements (optional) <br /> see <a
4369                                                        href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addreplacement.php"
4370                                                        >PEAR_PackageFileManager::addReplacement()</a> for more info <br />
4371                                                <br />
4372                                                <table>
4373                                                        <thead>
4374                                                                <tr>
4375                                                                        <th>Name</th>
4376                                                                        <th>Type</th>
4377                                                                        <th>Description</th>
4378                                                                        <th>Default</th>
4379                                                                        <th>Required</th>
4380                                                                </tr>
4381                                                        </thead>
4382                                                        <tbody>
4383                                                                <tr>
4384                                                                        <td>path</td>
4385                                                                        <td>String</td>
4386                                                                        <td>Relative path of file.</td>
4387                                                                        <td>n/a</td>
4388                                                                        <td>Yes</td>
4389                                                                </tr>
4390                                                                <tr>
4391                                                                        <td>type</td>
4392                                                                        <td>String</td>
4393                                                                        <td>Variable type, either php-const, pear-config or
4394                                                                                package-info.</td>
4395                                                                        <td>n/a</td>
4396                                                                        <td>Yes</td>
4397                                                                </tr>
4398                                                                <tr>
4399                                                                        <td>from</td>
4400                                                                        <td>String</td>
4401                                                                        <td>Text to replace in the source file.</td>
4402                                                                        <td>n/a</td>
4403                                                                        <td>Yes</td>
4404                                                                </tr>
4405                                                                <tr>
4406                                                                        <td>to</td>
4407                                                                        <td>String</td>
4408                                                                        <td>Variable name to use for replacement.</td>
4409                                                                        <td>n/a</td>
4410                                                                        <td>Yes</td>
4411                                                                </tr>
4412                                                        </tbody>
4413                                                </table>
4414                                        </li>
4415                                </ul>
4416                        </li>
4417                        <li>
4418                                <p>role <br /> See <a
4419                                                href="http://pear.php.net/manual/en/package.pear.pear-packagefilemanager.pear-packagefilemanager.addrole.php"
4420                                                target="_blank">PEAR_PackageFileManager::addRole</a> for more
4421                                        information.</p>
4422                                <p>Available options:</p>
4423                                <table>
4424                                        <thead>
4425                                                <tr>
4426                                                        <th>Name</th>
4427                                                        <th>Type</th>
4428                                                        <th>Description</th>
4429                                                        <th>Default</th>
4430                                                        <th>Required</th>
4431                                                </tr>
4432                                        </thead>
4433                                        <tbody>
4434                                                <tr>
4435                                                        <td>extension</td>
4436                                                        <td>String</td>
4437                                                        <td>The file extension</td>
4438                                                        <td>n/a</td>
4439                                                        <td>Yes</td>
4440                                                </tr>
4441                                                <tr>
4442                                                        <td>role</td>
4443                                                        <td>String</td>
4444                                                        <td>The file extension</td>
4445                                                        <td>n/a</td>
4446                                                        <td>Yes</td>
4447                                                </tr>
4448                                        </tbody>
4449                                </table>
4450                        </li>
4451                </ul>
4452                <h2>
4453                        <a name="PharPackageTask"></a>PharPackageTask </h2>
4454                <p>
4455                        <a href="http://www.php.net/manual/en/book.phar.php" target="_blank">Phar</a> packages
4456                        generating with Phing. This task <strong>require <a
4457                                        href="http://pecl.php.net/package/phar" target="_blank">PECL's Phar</a>
4458                        </strong> extension to be installed on your system. Phar is built-in in PHP from 5.3
4459                        version. </p>
4460                <h3>Attributes</h3>
4461                <table>
4462                        <thead>
4463                                <tr>
4464                                        <th>Name</th>
4465                                        <th>Type</th>
4466                                        <th>Description</th>
4467                                        <th>Default</th>
4468                                        <th>Required</th>
4469                                </tr>
4470                        </thead>
4471                        <tbody>
4472                                <tr>
4473                                        <td>basedir</td>
4474                                        <td>String</td>
4475                                        <td>Base directory, which will be deleted from each included file (from path).
4476                                                Paths with deleted <em>basedir</em> part are local paths in package.</td>
4477                                        <td>n/a</td>
4478                                        <td>Yes</td>
4479                                </tr>
4480                                <tr>
4481                                        <td>destfile</td>
4482                                        <td>String</td>
4483                                        <td>Destination (output) file. Will be recreated, if exists!</td>
4484                                        <td>n/a</td>
4485                                        <td>Yes</td>
4486                                </tr>
4487                                <tr>
4488                                        <td>compression</td>
4489                                        <td>String</td>
4490                                        <td>Compression type (gzip, bzip2, none) to apply to the packed files.</td>
4491                                        <td>none</td>
4492                                        <td>No</td>
4493                                </tr>
4494                                <tr>
4495                                        <td>webstub</td>
4496                                        <td>String</td>
4497                                        <td>Relative path within the phar package to run, if accessed through a web
4498                                                browser.</td>
4499                                        <td>n/a</td>
4500                                        <td>No</td>
4501                                </tr>
4502                                <tr>
4503                                        <td>clistub</td>
4504                                        <td>String</td>
4505                                        <td>Relative path within the phar package to run, if accessed on the command
4506                                                line.</td>
4507                                        <td>n/a</td>
4508                                        <td>No</td>
4509                                </tr>
4510                                <tr>
4511                                        <td>stub</td>
4512                                        <td>String</td>
4513                                        <td>A path to a php file that contains a custom stub</td>
4514                                        <td>n/a</td>
4515                                        <td>No</td>
4516                                </tr>
4517                                <tr>
4518                                        <td>alias</td>
4519                                        <td>String</td>
4520                                        <td>An alias to assign to the phar package</td>
4521                                        <td>n/a</td>
4522                                        <td>No</td>
4523                                </tr>
4524                                <tr>
4525                                        <td>signature</td>
4526                                        <td>String</td>
4527                                        <td>Signature algorithm (md5, sha1, sha256, sha512, openssl), used for this
4528                                                package.</td>
4529                                        <td>sha1</td>
4530                                        <td>No</td>
4531                                </tr>
4532                                <tr>
4533                                        <td>key</td>
4534                                        <td>String</td>
4535                                        <td>OpenSSL private key used to sign the phar package.</td>
4536                                        <td>n/a</td>
4537                                        <td>Yes, when using the <em>openssl</em> signature algorithm</td>
4538                                </tr>
4539                                <tr>
4540                                        <td>keypassword</td>
4541                                        <td>String</td>
4542                                        <td>Password for the OpenSSL private key.</td>
4543                                        <td></td>
4544                                        <td>No</td>
4545                                </tr>
4546                        </tbody>
4547                </table>
4548                <h3>Supported Nested Tags</h3>
4549                <ul>
4550                        <li>fileset</li>
4551                        <!--
4552    TODO Describe metadata element.
4553  -->
4554                        <li>metadata <p></p></li>
4555                </ul>
4556                <h3>Examples</h3>
4557                <p>Sample build command:</p>
4558                <pre>&lt;pharpackage
4559  destfile=&quot;./build/package.phar&quot;
4560  basedir=&quot;./&quot;&gt;
4561  &lt;fileset dir=&quot;./classes&quot;&gt;
4562    &lt;include name=&quot;**/**&quot; /&gt;
4563  &lt;/fileset&gt;
4564  &lt;metadata&gt;
4565    &lt;element name=&quot;version&quot; value=&quot;1.0&quot; /&gt;
4566    &lt;element name=&quot;authors&quot;&gt;
4567      &lt;element name=&quot;John Doe&quot;&gt;
4568        &lt;element name=&quot;e-mail&quot; value=&quot;john@example.com&quot; /&gt;
4569      &lt;/element&gt;
4570    &lt;/element&gt;
4571  &lt;/metadata&gt;
4572&lt;/pharpackage&gt;
4573</pre>
4574                <h2>
4575                        <a name="PhkPackageTask"></a>PhkPackageTask </h2>
4576                <p> This task runs PHK_Creator.phk to build PHK-package. Learn more about build process in
4577                                <a href="http://phk.tekwire.net/joomla/support/doc/builders_guide.htm"
4578                                target="_blank">PHK Builder's Guide</a>. </p>
4579                <h3>Attributes</h3>
4580                <table>
4581                        <thead>
4582                                <tr>
4583                                        <th>Name</th>
4584                                        <th>Type</th>
4585                                        <th>Description</th>
4586                                        <th>Default</th>
4587                                        <th>Required</th>
4588                                </tr>
4589                        </thead>
4590                        <tbody>
4591                                <tr>
4592                                        <td>phkcreatorpath</td>
4593                                        <td>String</td>
4594                                        <td>Path to PHK_Creator.phk.</td>
4595                                        <td>n/a</td>
4596                                        <td>Yes</td>
4597                                </tr>
4598                                <tr>
4599                                        <td>inputdirectory</td>
4600                                        <td>String</td>
4601                                        <td>Path to directory, that will be packed.</td>
4602                                        <td>n/a</td>
4603                                        <td>Yes</td>
4604                                </tr>
4605                                <tr>
4606                                        <td>outputfile</td>
4607                                        <td>String</td>
4608                                        <td>Output PHK-file. Directory, where file will be stored, must exist!</td>
4609                                        <td>n/a</td>
4610                                        <td>Yes</td>
4611                                </tr>
4612                                <tr>
4613                                        <td>compress</td>
4614                                        <td>String</td>
4615                                        <td>Compression type (gzip, bzip2, none) to apply to the packed files.</td>
4616                                        <td>none</td>
4617                                        <td>No</td>
4618                                </tr>
4619                                <tr>
4620                                        <td>strip</td>
4621                                        <td>Boolean</td>
4622                                        <td>When true, PHP source file(s) are stripped (filtered through
4623                                                php_strip_whitespace()) before being stored into the archive.</td>
4624                                        <td>false</td>
4625                                        <td>No</td>
4626                                </tr>
4627                                <tr>
4628                                        <td>name</td>
4629                                        <td>String</td>
4630                                        <td>The package's name (Information only).</td>
4631                                        <td>n/a</td>
4632                                        <td>No</td>
4633                                </tr>
4634                                <tr>
4635                                        <td>webrunscript</td>
4636                                        <td>String</td>
4637                                        <td>The script to run in web direct access mode. Subfile path.</td>
4638                                        <td>n/a</td>
4639                                        <td>No</td>
4640                                </tr>
4641                                <tr>
4642                                        <td>crccheck</td>
4643                                        <td>Boolean</td>
4644                                        <td>If true, a CRC check will be forced every time the package is mounted.</td>
4645                                        <td>false</td>
4646                                        <td>No</td>
4647                                </tr>
4648                        </tbody>
4649                </table>
4650                <h3>Supported Nested Tags</h3>
4651                <ul>
4652                        <li>webaccess <p> Collection of <em>path</em> tags (see example below), that will be
4653                                        visible outside package in web mode. </p></li>
4654                </ul>
4655                <h3>Examples</h3>
4656                <p>Sample build command:</p>
4657                <pre>&lt;phkpackage
4658    phkcreatorpath=&quot;/path/to/PHK_Creator.phk&quot;
4659    inputdirectory=&quot;src&quot;
4660    outputfile=&quot;build/sample-project.phk&quot;
4661    compress=&quot;gzip&quot;
4662    strip=&quot;true&quot;
4663    name=&quot;Sample Project&quot;
4664    webrunscript=&quot;index.php&quot;&gt;
4665    &lt;webaccess&gt;
4666        &lt;path&gt;/&lt;/path&gt;
4667    &lt;/webaccess&gt;
4668&lt;/phkpackage&gt;
4669</pre>
4670                <h2>
4671                        <a name="PhpCodeSnifferTask"></a>PhpCodeSnifferTask </h2>
4672                <p> This task runs <a href="http://pear.php.net/package/PHP_CodeSniffer" target="_blank"
4673                                >PHP_CodeSniffer</a> to detect violations of a defined set of coding standards. </p>
4674                <h3>Attributes</h3>
4675                <table>
4676                        <thead>
4677                                <tr>
4678                                        <th>Name</th>
4679                                        <th>Type</th>
4680                                        <th>Description</th>
4681                                        <th>Default</th>
4682                                        <th>Required</th>
4683                                </tr>
4684                        </thead>
4685                        <tbody>
4686                                <tr>
4687                                        <td>standard</td>
4688                                        <td>String</td>
4689                                        <td>The name of the standard to check for.</td>
4690                                        <td>Generic</td>
4691                                        <td>No</td>
4692                                </tr>
4693                                <tr>
4694                                        <td>format</td>
4695                                        <td>String</td>
4696                                        <td>The output format. The <em>default</em> format is specified in the task
4697                                                itself. Additionally all report formats of PHP_CodeSniffer can be choosen
4698                                                (ex. <em>checkstyle</em>, <em>full</em>, <em>summary</em>, ...).</td>
4699                                        <td>default</td>
4700                                        <td>No<br />Ignored if nested <em>formatter</em> elements are supplied.</td>
4701                                </tr>
4702                                <tr>
4703                                        <td>showSniffs</td>
4704                                        <td>Boolean</td>
4705                                        <td>Print the list of used sniffs.</td>
4706                                        <td>false</td>
4707                                        <td>No</td>
4708                                </tr>
4709                                <tr>
4710                                        <td>showWarnings</td>
4711                                        <td>Boolean</td>
4712                                        <td>Print warnings.</td>
4713                                        <td>true</td>
4714                                        <td>No</td>
4715                                </tr>
4716                                <tr>
4717                                        <td>showSources</td>
4718                                        <td>Boolean</td>
4719                                        <td>Flag that determines whether to show sources or not.</td>
4720                                        <td>true</td>
4721                                        <td>No</td>
4722                                </tr>
4723                                <tr>
4724                                        <td>docGenerator</td>
4725                                        <td>String</td>
4726                                        <td>The name of the doc generator (HTML, Text).</td>
4727                                        <td>n/a</td>
4728                                        <td>No</td>
4729                                </tr>
4730                                <tr>
4731                                        <td>docFile</td>
4732                                        <td>String</td>
4733                                        <td>Path to write output file to. If not set documentation will be written to
4734                                                STDOUT when <em>docGenerator</em> is set.</td>
4735                                        <td>n/a</td>
4736                                        <td>No</td>
4737                                </tr>
4738                                <tr>
4739                                        <td>file</td>
4740                                        <td>String</td>
4741                                        <td>The file or folder to check (usually the nested tag <em>fileset</em> is used
4742                                                instead).</td>
4743                                        <td>false</td>
4744                                        <td>Either this attribute or the nested tag <em>fileset</em> is required.</td>
4745                                </tr>
4746                                <tr>
4747                                        <td>sniffs</td>
4748                                        <td>String</td>
4749                                        <td>The list of allowed sniffs (separated by space, comma or semicolon). The
4750                                                sniffs must be part of the choosen standard.</td>
4751                                        <td>n/a</td>
4752                                        <td>No</td>
4753                                </tr>
4754                                <tr>
4755                                        <td>verbosity</td>
4756                                        <td>Integer</td>
4757                                        <td>The verbosity level of CodeSniffer where level 1 prints progress information
4758                                                and level 2 prints developer debug information.</td>
4759                                        <td>0</td>
4760                                        <td>No</td>
4761                                </tr>
4762                                <tr>
4763                                        <td>encoding</td>
4764                                        <td>String</td>
4765                                        <td>The encoding of the files to check</td>
4766                                        <td>iso-8859-1</td>
4767                                        <td>No</td>
4768                                </tr>
4769                                <tr>
4770                                        <td>tabWidth</td>
4771                                        <td>Integer</td>
4772                                        <td>Replaces tabs with the given number of spaces. If zero no replacing is
4773                                                done.</td>
4774                                        <td>0</td>
4775                                        <td>No</td>
4776                                </tr>
4777                                <tr>
4778                                        <td>reportWidth</td>
4779                                        <td>Integer</td>
4780                                        <td>The max. width for the report.</td>
4781                                        <td>80</td>
4782                                        <td>No</td>
4783                                </tr>
4784                                <tr>
4785                                        <td>allowedFileExtensions</td>
4786                                        <td>String</td>
4787                                        <td>The allowed file extensions (separated by space, comma or semicolon) when a
4788                                                directory is specified in the <em>file</em> attribute.</td>
4789                                        <td>php</td>
4790                                        <td>No</td>
4791                                </tr>
4792                                <tr>
4793                                        <td>ignorePatterns</td>
4794                                        <td>String</td>
4795                                        <td>The patterns to ignore files and folders (separated by space, comma or
4796                                                semicolon) when a directory is specified in the <em>file</em>
4797                                                attribute.</td>
4798                                        <td>n/a</td>
4799                                        <td>No</td>
4800                                </tr>
4801                                <tr>
4802                                        <td>noSubdirectories</td>
4803                                        <td>Boolean</td>
4804                                        <td>Do not recurse into subdirectories when a directory is specified in the
4805                                                        <em>file</em> attribute.</td>
4806                                        <td>false</td>
4807                                        <td>No</td>
4808                                </tr>
4809                                <tr>
4810                                        <td>haltonerror</td>
4811                                        <td>Boolean</td>
4812                                        <td>Stop the build process if errors occurred during during the run.</td>
4813                                        <td>false</td>
4814                                        <td>No</td>
4815                                </tr>
4816                                <tr>
4817                                        <td>haltonwarning</td>
4818                                        <td>Boolean</td>
4819                                        <td>Stop the build process if warnings occurred during the run.</td>
4820                                        <td>false</td>
4821                                        <td>No</td>
4822                                </tr>
4823                                <tr>
4824                                        <td>skipversioncheck</td>
4825                                        <td>Boolean</td>
4826                                        <td>Skips the version check when the task starts.</td>
4827                                        <td>false</td>
4828                                        <td>No</td>
4829                                </tr>
4830                        </tbody>
4831                </table>
4832                <h3>Supported Nested Tags</h3>
4833                <ul>
4834                        <li>fileset <p> Either this nested tag or the attribute <em>file</em> is required.
4835                                </p></li>
4836                        <li>config <p>The configuration parameters which are usually loaded from the
4837                                        CodeSniffer.conf can be set.</p>
4838                                <h3>Attributes</h3>
4839                                <table>
4840                                        <thead>
4841                                                <tr>
4842                                                        <th>Name</th>
4843                                                        <th>Type</th>
4844                                                        <th>Description</th>
4845                                                        <th>Default</th>
4846                                                        <th>Required</th>
4847                                                </tr>
4848                                        </thead>
4849                                        <tbody>
4850                                                <tr>
4851                                                        <td>name</td>
4852                                                        <td>String</td>
4853                                                        <td>Name of the configuration parameter.</td>
4854                                                        <td>n/a</td>
4855                                                        <td>Yes</td>
4856                                                </tr>
4857                                                <tr>
4858                                                        <td>value</td>
4859                                                        <td>String</td>
4860                                                        <td>Value of the configuration parameter.</td>
4861                                                        <td>n/a</td>
4862                                                        <td>Yes</td>
4863                                                </tr>
4864                                        </tbody>
4865                                </table></li>
4866                        <li>formatter <p> The results of the tests can be printed in different formats. Output
4867                                        will always be sent to a file, unless you set the <em>usefile</em> attribute to
4868                                                <em>false.</em>
4869                                </p>
4870                                <h3>Attributes</h3>
4871                                <table>
4872                                        <thead>
4873                                                <tr>
4874                                                        <th>Name</th>
4875                                                        <th>Type</th>
4876                                                        <th>Description</th>
4877                                                        <th>Default</th>
4878                                                        <th>Required</th>
4879                                                </tr>
4880                                        </thead>
4881                                        <tbody>
4882                                                <tr>
4883                                                        <td>type</td>
4884                                                        <td>String</td>
4885                                                        <td>The output format. Accepts the the same values as the
4886                                                                        <em>format</em> attribute (<em>default</em>, <em>xml</em>,
4887                                                                        <em>checkstyle</em>, <em>csv</em>, <em>report</em>,
4888                                                                        <em>summary</em> &amp; <em>doc</em>).</td>
4889                                                        <td>n/a</td>
4890                                                        <td>Yes</td>
4891                                                </tr>
4892                                                <tr>
4893                                                        <td>usefile</td>
4894                                                        <td>Boolean</td>
4895                                                        <td>Boolean that determines whether output should be sent to a
4896                                                                file.</td>
4897                                                        <td>true</td>
4898                                                        <td>No</td>
4899                                                </tr>
4900                                                <tr>
4901                                                        <td>outfile</td>
4902                                                        <td>String</td>
4903                                                        <td>Path to write output file to.</td>
4904                                                        <td>n/a</td>
4905                                                        <td>Yes, if <em>usefile</em> is <em>true</em>.</td>
4906                                                </tr>
4907                                        </tbody>
4908                                </table></li>
4909                </ul>
4910                <h3>Examples</h3>
4911                <p> Checks all files in the directory <em>file</em> matching the allowed file extension with
4912                        the <em>PEAR</em> standard and prints the <em>summary</em> report without warnings. </p>
4913                <pre>&lt;phpcodesniffer
4914  standard=&quot;PEAR&quot;
4915  format=&quot;summary&quot;
4916  file=&quot;/path/to/source-files&quot;
4917  allowedFileExtensions=&quot;php php5 inc&quot;/&gt;
4918</pre>
4919                <p> Checks all matching files in the <em>fileset</em> with the <em>Zend</em> standard, sets
4920                        the <em>zend_ca_path</em> configuration which may be required by one of the sniffs,
4921                        prints a list of used sniffs and prints the <em>default</em> report with warnings and
4922                        the <em>checkstyle</em> report to <em>/path/to/checkstyle.xml</em>. </p>
4923                <pre>&lt;phpcodesniffer
4924  standard=&quot;Zend&quot;
4925  showSniffs=&quot;true&quot;
4926  showWarnings=&quot;true&quot;&gt;
4927  &lt;fileset dir=&quot;/path/to/source-files&quot;&gt;
4928    &lt;include name=&quot;**/*.php&quot;/&gt;
4929  &lt;/fileset&gt;
4930  &lt;config name=&quot;zend_ca_path&quot; value=&quot;/path/to/ZendStudio/bin/ZendCodeAnalyzer&quot;/&gt;
4931  &lt;formatter type=&quot;default&quot; usefile=&quot;false&quot;/&gt;
4932  &lt;formatter type=&quot;checkstyle&quot; outfile=&quot;/path/to/checkstyle.xml&quot;/&gt;
4933&lt;/phpcodesniffer&gt;
4934</pre>
4935                <p> Checks all files in the directory <em>file</em> with the <em>PEAR</em> standard and
4936                        prints the <em>checkstyle</em> report without warnings. It also generates the
4937                        documentation for the selected coding standard and writes it to the given file. </p>
4938                <pre>&lt;phpcodesniffer
4939  standard=&quot;PEAR&quot;
4940  file=&quot;/path/to/source-files&quot;
4941  docGenerator=&quot;HTML&quot;
4942  docFile=&quot;/path/to/doc.html&quot;&gt;
4943  &lt;formatter type=&quot;checkstyle&quot; outfile=&quot;/path/to/checkstyle.xml&quot;/&gt;
4944&lt;/phpcodesniffer&gt;
4945</pre>
4946                <h2>
4947                        <a name="PHPCPDTask"></a>PHPCPDTask </h2>
4948                <p> This task runs <a href="http://github.com/sebastianbergmann/phpcpd/" target="_blank"
4949                                >phpcpd</a>, a Copy/Paste Detector (CPD) for PHP Code. You need an installed version
4950                        of this software to use this task. </p>
4951                <h3>Attributes</h3>
4952                <table>
4953                        <thead>
4954                                <tr>
4955                                        <th>Name</th>
4956                                        <th>Type</th>
4957                                        <th>Description</th>
4958                                        <th>Default</th>
4959                                        <th>Required</th>
4960                                </tr>
4961                        </thead>
4962                        <tbody>
4963                                <tr>
4964                                        <td>file</td>
4965                                        <td>String</td>
4966                                        <td>Path to source file or path</td>
4967                                        <td>n/a</td>
4968                                        <td>No</td>
4969                                </tr>
4970                                <tr>
4971                                        <td>minTokens</td>
4972                                        <td>Integer</td>
4973                                        <td>Sets the minimum number of identical tokens (default: 70)</td>
4974                                        <td>70</td>
4975                                        <td>No</td>
4976                                </tr>
4977                                <tr>
4978                                        <td>minLines</td>
4979                                        <td>Integer</td>
4980                                        <td>Sets the minimum number of identical lines (default: 5)</td>
4981                                        <td>5</td>
4982                                        <td>No</td>
4983                                </tr>
4984                                <tr>
4985                                        <td>format</td>
4986                                        <td>String</td>
4987                                        <td>The format for the report when no nested formatter is used.</td>
4988                                        <td>default</td>
4989                                        <td>No</td>
4990                                </tr>
4991                        </tbody>
4992                </table>
4993                <h3>Supported Nested Tags</h3>
4994                <ul>
4995                        <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set.
4996                                </p></li>
4997                        <li>formatter <p> The results of the copy/paste scan can be printed in different
4998                                        formats. Output will always be sent to a file, unless you set the
4999                                                <em>usefile</em> attribute to <em>false</em>. </p>
5000                                <h3>Attributes</h3>
5001                                <table>
5002                                        <thead>
5003                                                <tr>
5004                                                        <th>Name</th>
5005                                                        <th>Type</th>
5006                                                        <th>Description</th>
5007                                                        <th>Default</th>
5008                                                        <th>Required</th>
5009                                                </tr>
5010                                        </thead>
5011                                        <tbody>
5012                                                <tr>
5013                                                        <td>type</td>
5014                                                        <td>String</td>
5015                                                        <td>The output format. Accepts the the same values as the
5016                                                                        <em>format</em> attribute (<em>default</em>, <em>pmd</em>).</td>
5017                                                        <td>n/a</td>
5018                                                        <td>Yes</td>
5019                                                </tr>
5020                                                <tr>
5021                                                        <td>useFile</td>
5022                                                        <td>Boolean</td>
5023                                                        <td>Flag that determines whether output should be sent to a file or
5024                                                                not.</td>
5025                                                        <td>true</td>
5026                                                        <td>No</td>
5027                                                </tr>
5028                                                <tr>
5029                                                        <td>outfile</td>
5030                                                        <td>String</td>
5031                                                        <td>Path to write output file to.</td>
5032                                                        <td>n/a</td>
5033                                                        <td>Yes</td>
5034                                                </tr>
5035                                        </tbody>
5036                                </table></li>
5037                </ul>
5038                <h3>Examples</h3>
5039                <pre>
5040 &lt;phpcpd file="path/to/source.php"/&gt;
5041</pre>
5042                <p>Checking for copy/paste code in one particular source file. Sending Default-Report to
5043                        STDOUT.</p>
5044                <pre>
5045 &lt;phpcpd file="path/to/source"&gt;
5046   &lt;formatter type=&quot;pmd&quot; outfile=&quot;reports/pmd-cpd.xml&quot;/&gt;
5047 &lt;/phpcpd&gt;
5048</pre>
5049                <p>Checking for copy/paste code in files of the given path.</p>
5050                <pre>
5051 &lt;phpcpd&gt;
5052   &lt;fileset dir=&quot;${builddir}&quot; id=&quot;filestocpd&quot;&gt;
5053     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
5054     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
5055     &lt;include name=&quot;lib/task/**/*.php&quot; /&gt;
5056     &lt;include name=&quot;lib/services/**/*.php&quot; /&gt;
5057     &lt;include name=&quot;lib/form/**/*.php&quot; /&gt;
5058     &lt;include name=&quot;lib/model/**/*.php&quot; /&gt;
5059   &lt;/fileset&gt;
5060   &lt;formatter type=&quot;pmd&quot; outfile=&quot;reports/pmd-cpd.xml&quot;/&gt;
5061 &lt;/phpcpd&gt;
5062</pre>
5063                <h2>
5064                        <a name="PHPMDTask"></a>PHPMDTask </h2>
5065                <p> This task runs <a href="http://phpmd.org" target="_blank">phpmd</a>, a Project Mess
5066                        Detector (PMD) for PHP Code. You need an installed version of this software to use this
5067                        task. </p>
5068                <h3>Attributes</h3>
5069                <table>
5070                        <thead>
5071                                <tr>
5072                                        <th>Name</th>
5073                                        <th>Type</th>
5074                                        <th>Description</th>
5075                                        <th>Default</th>
5076                                        <th>Required</th>
5077                                </tr>
5078                        </thead>
5079                        <tbody>
5080                                <tr>
5081                                        <td>file</td>
5082                                        <td>String</td>
5083                                        <td>Path to source file or path</td>
5084                                        <td>n/a</td>
5085                                        <td>No</td>
5086                                </tr>
5087                                <tr>
5088                                        <td>rulesets</td>
5089                                        <td>String</td>
5090                                        <td>Sets the rulesets used for analyzing the source code</td>
5091                                        <td>codesize,unusedcode</td>
5092                                        <td>No</td>
5093                                </tr>
5094                                <tr>
5095                                        <td>minimumPriority</td>
5096                                        <td>Integer</td>
5097                                        <td>The minimum priority for rules to load.</td>
5098                                        <td>5</td>
5099                                        <td>No</td>
5100                                </tr>
5101                                <tr>
5102                                        <td>allowedFileExtensions</td>
5103                                        <td>String</td>
5104                                        <td>Comma-separated list of valid file extensions (without dot) for analyzed
5105                                                files.</td>
5106                                        <td>php</td>
5107                                        <td>No</td>
5108                                </tr>
5109                                <tr>
5110                                        <td>ignorePatterns</td>
5111                                        <td>String</td>
5112                                        <td>Comma-separated list of directory patterns to ignore.</td>
5113                                        <td>.git,.svn,CVS,.bzr,.hg</td>
5114                                        <td>No</td>
5115                                </tr>
5116                                <tr>
5117                                        <td>format</td>
5118                                        <td>String</td>
5119                                        <td>The format for the report when no nested formatter is used.</td>
5120                                        <td>text</td>
5121                                        <td>No</td>
5122                                </tr>
5123                        </tbody>
5124                </table>
5125                <h3>Supported Nested Tags</h3>
5126                <ul>
5127                        <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set.
5128                                </p></li>
5129                        <li>formatter <p> The results of the analysis can be printed in different formats.
5130                                        Output will always be sent to STDOUT, unless you set the <em>usefile</em>
5131                                        attribute to <em>true</em> and set an filename in the <em>outfile</em>
5132                                        attribute. </p>
5133                                <h3>Attributes</h3>
5134                                <table>
5135                                        <thead>
5136                                                <tr>
5137                                                        <th>Name</th>
5138                                                        <th>Type</th>
5139                                                        <th>Description</th>
5140                                                        <th>Default</th>
5141                                                        <th>Required</th>
5142                                                </tr>
5143                                        </thead>
5144                                        <tbody>
5145                                                <tr>
5146                                                        <td>type</td>
5147                                                        <td>String</td>
5148                                                        <td>The output format. Accepts the the same values as the
5149                                                                        <em>format</em> attribute (<em>xml</em>, <em>html</em>,
5150                                                                        <em>text</em>).</td>
5151                                                        <td>n/a</td>
5152                                                        <td>Yes</td>
5153                                                </tr>
5154                                                <tr>
5155                                                        <td>usefile</td>
5156                                                        <td>Boolean</td>
5157                                                        <td>Boolean that determines whether output should be sent to a
5158                                                                file.</td>
5159                                                        <td>true</td>
5160                                                        <td>No</td>
5161                                                </tr>
5162                                                <tr>
5163                                                        <td>outfile</td>
5164                                                        <td>String</td>
5165                                                        <td>Path to write output file to.</td>
5166                                                        <td>n/a</td>
5167                                                        <td>Yes</td>
5168                                                </tr>
5169                                        </tbody>
5170                                </table></li>
5171                </ul>
5172                <h3>Examples</h3>
5173                <pre>
5174 &lt;phpmd file="path/to/source.php"/&gt;
5175</pre>
5176                <p>Checking syntax of one particular source file. Sending Text-Report to STDOUT.</p>
5177                <pre>
5178 &lt;phpmd file="path/to/source"&gt;
5179   &lt;formatter type=&quot;html&quot; outfile=&quot;reports/pmd.html&quot;/&gt;
5180 &lt;/phpmd&gt;
5181</pre>
5182                <p>Checking syntax of source files in the given path.</p>
5183                <pre>
5184 &lt;phpmd&gt;
5185   &lt;fileset dir=&quot;${builddir}&quot;&gt;
5186     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
5187     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
5188   &lt;/fileset&gt;
5189   &lt;formatter type=&quot;xml&quot; outfile=&quot;reports/pmd.xml&quot;/&gt;
5190 &lt;/phpmd&gt;
5191</pre>
5192                <p>Checking syntax of source files in the fileset pathes.</p>
5193                <h2>
5194                        <a name="PhpDependTask"></a>PhpDependTask </h2>
5195                <p> This task runs <a href="http://pdepend.org" target="_blank">PHP_Depend</a>, a software
5196                        analyzer and metric tool for PHP Code. You need an installed version of this software to
5197                        use this task. </p>
5198                <h3>Attributes</h3>
5199                <table>
5200                        <thead>
5201                                <tr>
5202                                        <th>Name</th>
5203                                        <th>Type</th>
5204                                        <th>Description</th>
5205                                        <th>Default</th>
5206                                        <th>Required</th>
5207                                </tr>
5208                        </thead>
5209                        <tbody>
5210                                <tr>
5211                                        <td>file</td>
5212                                        <td>String</td>
5213                                        <td>Path to source file or path</td>
5214                                        <td>n/a</td>
5215                                        <td>No</td>
5216                                </tr>
5217                                <tr>
5218                                        <td>configFile</td>
5219                                        <td>String</td>
5220                                        <td>Path to PHP_Depend configuration file</td>
5221                                        <td>n/a</td>
5222                                        <td>No</td>
5223                                </tr>
5224                                <tr>
5225                                        <td>allowedFileExtensions</td>
5226                                        <td>String</td>
5227                                        <td>Comma-separated list of valid file extensions (without dot) for analyzed
5228                                                files.</td>
5229                                        <td>php,php5</td>
5230                                        <td>No</td>
5231                                </tr>
5232                                <tr>
5233                                        <td>excludeDirectories</td>
5234                                        <td>String</td>
5235                                        <td>Comma-separated list of directory patterns to ignore.</td>
5236                                        <td>.git,.svn,CVS</td>
5237                                        <td>No</td>
5238                                </tr>
5239                                <tr>
5240                                        <td>excludePackages</td>
5241                                        <td>String</td>
5242                                        <td>Comma-separated list of packages to ignore.</td>
5243                                        <td>n/a</td>
5244                                        <td>No</td>
5245                                </tr>
5246                                <tr>
5247                                        <td>withoutAnnotations</td>
5248                                        <td>Boolean</td>
5249                                        <td>Should the parse ignore doc comment annotations?</td>
5250                                        <td>false</td>
5251                                        <td>No</td>
5252                                </tr>
5253                                <tr>
5254                                        <td>supportBadDocumentation</td>
5255                                        <td>Boolean</td>
5256                                        <td>Should PHP_Depend treat <b>+global</b> as a regular project package?</td>
5257                                        <td>false</td>
5258                                        <td>No</td>
5259                                </tr>
5260                                <tr>
5261                                        <td>debug</td>
5262                                        <td>Boolean</td>
5263                                        <td>Enable debug output?</td>
5264                                        <td>false</td>
5265                                        <td>No</td>
5266                                </tr>
5267                                <tr>
5268                                        <td>haltonerror</td>
5269                                        <td>Boolean</td>
5270                                        <td>Stop the build process if errors occurred during the run.</td>
5271                                        <td>false</td>
5272                                        <td>No</td>
5273                                </tr>
5274                        </tbody>
5275                </table>
5276                <h3>Supported Nested Tags</h3>
5277                <ul>
5278                        <li>fileset <p> This nested tag is required when the <em>file</em> attribute is not set.
5279                                </p></li>
5280                        <li>logger <p>The results of the analysis can be parsed by differed loggers. At least
5281                                        one logger is required. Output will always be sent to a file.</p>
5282                                <h3>Attributes</h3>
5283                                <table>
5284                                        <thead>
5285                                                <tr>
5286                                                        <th>Name</th>
5287                                                        <th>Type</th>
5288                                                        <th>Description</th>
5289                                                        <th>Default</th>
5290                                                        <th>Required</th>
5291                                                </tr>
5292                                        </thead>
5293                                        <tbody>
5294                                                <tr>
5295                                                        <td>type</td>
5296                                                        <td>String</td>
5297                                                        <td>The name of the logger. Valid loggers are: <em>jdepend-chart</em>,
5298                                                                        <em>jdepend-xml</em>, <em>overview-pyramid</em>,
5299                                                                        <em>phpunit-xml</em> and <em>summary-xml</em>.</td>
5300                                                        <td>n/a</td>
5301                                                        <td>Yes</td>
5302                                                </tr>
5303                                                <tr>
5304                                                        <td>outfile</td>
5305                                                        <td>String</td>
5306                                                        <td>Path to write output file to.</td>
5307                                                        <td>n/a</td>
5308                                                        <td>Yes</td>
5309                                                </tr>
5310                                        </tbody>
5311                                </table></li>
5312                        <li>analyzer <p>Some additional analyzers can be added to the runner.</p>
5313                                <h3>Attributes</h3>
5314                                <table>
5315                                        <thead>
5316                                                <tr>
5317                                                        <th>Name</th>
5318                                                        <th>Type</th>
5319                                                        <th>Description</th>
5320                                                        <th>Default</th>
5321                                                        <th>Required</th>
5322                                                </tr>
5323                                        </thead>
5324                                        <tbody>
5325                                                <tr>
5326                                                        <td>type</td>
5327                                                        <td>String</td>
5328                                                        <td>The name of the analyzer. Valid analyzers are:
5329                                                                        <em>coderank-mode</em>.</td>
5330                                                        <td>n/a</td>
5331                                                        <td>Yes</td>
5332                                                </tr>
5333                                                <tr>
5334                                                        <td>value</td>
5335                                                        <td>String</td>
5336                                                        <td>The value for the analyzer.</td>
5337                                                        <td>n/a</td>
5338                                                        <td>Yes</td>
5339                                                </tr>
5340                                        </tbody>
5341                                </table></li>
5342                </ul>
5343                <h3>Examples</h3>
5344                <pre>
5345 &lt;phpdepend file="path/to/source"&gt;
5346   &lt;logger type=&quot;phpunit-xml&quot; outfile=&quot;reports/metrics.xml&quot;/&gt;
5347 &lt;/phpdepend&gt;
5348</pre>
5349                <p>Running code analysis for source files in the given path.</p>
5350                <pre>
5351 &lt;phpdepend&gt;
5352   &lt;fileset dir=&quot;${builddir}&quot;&gt;
5353     &lt;include name=&quot;apps/**/*.php&quot; /&gt;
5354     &lt;include name=&quot;lib/de/**/*.php&quot; /&gt;
5355   &lt;/fileset&gt;
5356   &lt;logger type=&quot;jdepend-xml&quot; outfile=&quot;reports/jdepend.xml&quot;/&gt;
5357   &lt;analyzer type=&quot;coderank-mode&quot; value=&quot;method&quot;/&gt;
5358 &lt;/phpdepend&gt;
5359</pre>
5360                <p> Running code analysis for source files in the fileset pathes with CodeRank strategy
5361                                <em>method</em>. </p>
5362                <h2>
5363                        <a name="PhpDocumentorTask"></a>PhpDocumentorTask </h2>
5364                <p> This task runs <a href="http://www.phpdoc.org/" target="_blank">phpDocumentor</a>, an
5365                        auto-documentation tool for PHP similar to Javadoc. </p>
5366                <h3>Attributes</h3>
5367                <table>
5368                        <thead>
5369                                <tr>
5370                                        <th>Name</th>
5371                                        <th>Type</th>
5372                                        <th>Description</th>
5373                                        <th>Default</th>
5374                                        <th>Required</th>
5375                                </tr>
5376                        </thead>
5377                        <tbody>
5378                                <tr>
5379                                        <td>title</td>
5380                                        <td>String</td>
5381                                        <td>Title for browser window / package index.</td>
5382                                        <td>n/a</td>
5383                                        <td>No</td>
5384                                </tr>
5385                                <tr>
5386                                        <td>destdir</td>
5387                                        <td>String</td>
5388                                        <td>Destination directory for output files.</td>
5389                                        <td>n/a</td>
5390                                        <td rowspan="2">Yes</td>
5391                                </tr>
5392                                <tr>
5393                                        <td>target</td>
5394                                        <td>String</td>
5395                                        <td>Alias of <em>destdir</em> ("target" is config param used by
5396                                                PhpDocumentor)</td>
5397                                        <td>n/a</td>
5398                                </tr>
5399                                <tr>
5400                                        <td>output</td>
5401                                        <td>String</td>
5402                                        <td>Output format (such as <em>HTML:Smarty:PHP</em>).</td>
5403                                        <td>n/a</td>
5404                                        <td>Yes</td>
5405                                </tr>
5406                                <tr>
5407                                        <td>sourcecode</td>
5408                                        <td>Boolean</td>
5409                                        <td>Generate syntax-highlighted sourcecode file for each file parsed?</td>
5410                                        <td>false</td>
5411                                        <td>No</td>
5412                                </tr>
5413                                <tr>
5414                                        <td>examplesdir</td>
5415                                        <td>String</td>
5416                                        <td>Path to directory in which to look for example documentation.</td>
5417                                        <td>n/a</td>
5418                                        <td>No</td>
5419                                </tr>
5420                                <tr>
5421                                        <td>parseprivate</td>
5422                                        <td>Boolean</td>
5423                                        <td>Parse @internal and elements marked private.</td>
5424                                        <td>false</td>
5425                                        <td>No</td>
5426                                </tr>
5427                                <tr>
5428                                        <td>javadocdesc</td>
5429                                        <td>Boolean</td>
5430                                        <td>JavaDoc-compliant description parsing. Use on/off, default off (more
5431                                                flexibility)</td>
5432                                        <td>false</td>
5433                                        <td>No</td>
5434                                </tr>
5435                                <tr>
5436                                        <td>quiet</td>
5437                                        <td>Boolean</td>
5438                                        <td>Suppress output to STDOUT.</td>
5439                                        <td>false</td>
5440                                        <td>No</td>
5441                                </tr>
5442                                <tr>
5443                                        <td>packageoutput</td>
5444                                        <td>String</td>
5445                                        <td>Output documentation only for selected packages. Use a comma-delimited
5446                                                list</td>
5447                                        <td>n/a</td>
5448                                        <td>No</td>
5449                                </tr>
5450                                <tr>
5451                                        <td>ignoretags</td>
5452                                        <td>String</td>
5453                                        <td>Comma-separated list of tags to ignore (@package, @subpackage, @access and
5454                                                @ignore may not be ignored).</td>
5455                                        <td>n/a</td>
5456                                        <td>No</td>
5457                                </tr>
5458                                <tr>
5459                                        <td>defaultpackagename</td>
5460                                        <td>String</td>
5461                                        <td>name to use for the default package. If not specified, uses 'default'</td>
5462                                        <td>n/a</td>
5463                                        <td>No</td>
5464                                </tr>
5465                                <tr>
5466                                        <td>defaultcategoryname</td>
5467                                        <td>String</td>
5468                                        <td>name to use for the default category. If not specified, uses 'default'</td>
5469                                        <td>n/a</td>
5470                                        <td>No</td>
5471                                </tr>
5472                                <tr>
5473                                        <td>pear</td>
5474                                        <td>Boolean</td>
5475                                        <td>Treat parse dirs as PEAR repository? (package is directory, _members are
5476                                                @access private)</td>
5477                                        <td>false</td>
5478                                        <td>No</td>
5479                                </tr>
5480                                <tr>
5481                                        <td>templatebase</td>
5482                                        <td>String</td>
5483                                        <td>Set base dirctory of all templates for this parse.</td>
5484                                        <td>n/a</td>
5485                                        <td>No</td>
5486                                </tr>
5487                                <tr>
5488                                        <td>undocumentedelements</td>
5489                                        <td>Boolean</td>
5490                                        <td>Control whether or not warnings will be shown for undocumented elements.
5491                                                Useful for identifying classes and methods that haven't yet been
5492                                                documented.</td>
5493                                        <td>false</td>
5494                                        <td>No</td>
5495                                </tr>
5496                                <tr>