source: docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html @ 3d6c4bf

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

Merge pull request #86

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