Tasks are responsible for doing the work in Phing. Basically, tasks are the individual actions that your buildfile can perform. For example, tasks exist to copy a file, create a directory, TAR files in a directory. Tasks may also be more complex such as XsltTask which copies a file and transforms the file using XSLT, SmartyTask which does something similar using Smarty templates, or CreoleTask which executes SQL statements against a specified DB. See Appendix B, Core tasks for descriptions of Phing tasks.
Tasks support parameters in the form of:
Simple parameters (i.e. strings) passed as XML attributes, or
More complex parameters that are passed by nested tags
Simple parameters are basically strings. For example, if you pass a value "A
simple string."
as a parameter, it is evaluated as a string and accessible
as one. You can also reference properties as described in Chapter 4, Getting started.
Note:
There are special values that are not mapped to strings, but to
boolean values instead. The values true
, false
,
yes
, no
, on
and
off
are translated to
true
/false
boolean values.
<property name="myprop" value="value" override="true"/>
However, some tasks support more complex data types as parameters. These are passed to
the task with nested tags
. Consider the following example:
<copy> <fileset dir="."> <include name="**" /> </fileset> </copy>
Here, CopyTask
is passed a complex parameter, a Fileset. Tasks may
support multiple complex types in addition to simple parameters. Note that the names of
the nested tags used to create the complex types depend on the task implementation.
Tasks may support default Phing types (see Section 5.6, “ Types ”) or may
introduce other types, for example to wrap key/value pairs.
Refer to Appendix B, Core tasks for a list of system tasks and their parameters.