Source for file Common.php
Documentation is available at Common.php
* PEAR_Task_Common, base class for installer tasks
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
* @version CVS: $Id: Common.php 313023 2011-07-06 19:17:11Z dufuz $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
* Error codes for task validation routines
define('PEAR_TASK_ERROR_NOATTRIBS', 1 );
define('PEAR_TASK_ERROR_MISSING_ATTRIB', 2 );
define('PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE', 3 );
define('PEAR_TASK_ERROR_INVALID', 4 );
define('PEAR_TASK_PACKAGE', 1 );
define('PEAR_TASK_INSTALL', 2 );
define('PEAR_TASK_PACKAGEANDINSTALL', 3 );
* A task is an operation that manipulates the contents of a file.
* Simple tasks operate on 1 file. Multiple tasks are executed after all files have been
* processed and installed, and are designed to operate on all files containing the task.
* The Post-install script task simply takes advantage of the fact that it will be run
* after installation, replace is a simple task.
* Combining tasks is possible, but ordering is significant.
* <file name="test.php" role="php">
* <tasks:replace from="@data-dir@" to="data_dir" type="pear-config"/>
* <tasks:postinstallscript/>
* This will first replace any instance of @data-dir@ in the test.php file
* with the path to the current data directory. Then, it will include the
* test.php file and run the script it contains to configure the package post-installation.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
* @version Release: 1.9.4
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
* Valid types for this version are 'simple' and 'multiple'
* - simple tasks operate on the contents of a file and write out changes to disk
* - multiple tasks operate on the contents of many files and write out the
* changes directly to disk
* Child task classes must override this property.
* Determines which install phase this task is executed under
var $phase = PEAR_TASK_INSTALL;
$this->registry = &$config->getRegistry ();
if ($this->type == 'multiple') {
$GLOBALS['_PEAR_TASK_POSTINSTANCES'][get_class($this)][] = &$this;
* Validate the basic contents of a task tag.
* @param PEAR_PackageFile_v2
* @param array the entire parsed <file> tag
* @return true|arrayOn error, return an array in format:
* array(PEAR_TASK_ERROR_???[, param1][, param2][, ...])
* For PEAR_TASK_ERROR_MISSING_ATTRIB, pass the attribute name in
* For PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, pass the attribute name and an array
* Initialize a task instance with the parameters
* @param array raw, parsed xml
* @param array attributes from the <file> tag containing this task
* @param string|nulllast installed version of this package
function init($xml, $fileAttributes, $lastVersion)
* Begin a task processing session. All multiple tasks will be processed after each file
* has been successfully installed, all simple tasks should perform their task here and
* return any errors using the custom throwError() method to allow forward compatibility
* This method MUST NOT write out any changes to disk
* @param PEAR_PackageFile_v2
* @param string file contents
* @param string the eventual final file location (informational only)
* @return string|false|PEAR_Errorfalse to skip this file, PEAR_Error to fail
* (use $this->throwError), otherwise return the new contents
* This method is used to process each of the tasks for a particular multiple class
* type. Simple tasks need not implement this method.
* @param array an array of tasks
return isset ($GLOBALS['_PEAR_TASK_POSTINSTANCES']);
foreach ($GLOBALS['_PEAR_TASK_POSTINSTANCES'] as $class => $tasks) {
$GLOBALS['_PEAR_TASK_POSTINSTANCES'][$class]);
unset ($GLOBALS['_PEAR_TASK_POSTINSTANCES']);
* Determines whether a role is a script
return $this->type == 'script';
Documentation generated on Wed, 06 Jul 2011 23:30:35 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.
|