PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

File tasks

Pyrus allows special handling of files through tasks. File tasks can perform any action necessary both when installing a package and when creating a package. Both Pyrus and the PEAR Installer ship with 4 built-in tasks, replace, windowseol, unixeol, and postinstallscript.

The built-in tasks are documented here. The documentation also describes how to create custom tasks for the PEAR Installer. Custom tasks for Pyrus are documented here.

Tasks are specifically designed to allow customization of an installation, and particularly modification of a specific file's contents. The unixeol task, for instance, transforms line endings to UNIX \n and is useful for shell scripts that must have the proper line endings. The replace task can be used to update the version of a package directly in the source code, or to automatically set up the path to a PEAR Installation in a shell script.

Tasks are defined using the XML namespace http://pear.php.net/dtd/tasks-1.0. Most often, this is declared using tasks as the namespace prefix, as in

xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
. More than one task can be used for a single file, as shown by this example from the PEAR package:

<file name="pearcmd.php" role="php">
     <tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
     <tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
     <tasks:replace from="@pear_version@" to="version" type="package-info" />
     <tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
    </file>

PEAR Manual