# Phing.php

## \Phing
jump to top

Package: phing

Entry point into Phing. This class handles the full lifecycle of a build -- from parsing & handling commandline arguments to assembling the project to shutting down and cleaning up in the end.

If you are invoking Phing from an external application, this is still the class to use. Your applicaiton can invoke the start() method, passing any commandline arguments or additional properties.

Author
  Andreas Aderhold
Author
  Hans Lellelid
Version
  $Revision: 1232 $

### Constants

`DEFAULT_BUILD_FILENAME = "build.xml"`

The default build file name

### Properties

`$buildFile= 'null'`

PhingFile that we are using for configuration

Default value `null` Details

Type

`$capturedPhpErrors= 'array()'`
static

Array of captured PHP errors

Default value `array()`Details

Type

`$currentProject= ''`
static

The current Project

Details

Type

`\Properties $definedProps= ''`
static

Set of properties that are passed in from commandline or invoking code.

Details

Type
  \Properties

`\OutputStream $err= ''`
static

Stream for error output.
Details

Type
  \OutputStream

`$importPaths= ''`
static

Used by utility function getResourcePath()

Details

Type

`$inputHandlerClassname= ''`

The class to handle input (can be only one).

Details

Type

`boolean $isLogFileUsed= 'false'`
static

Whether we are using a logfile.
Default value `false` Details

Type
  boolean

`$listeners= 'array()'`

Names of classes to add as listeners to project

Default value `array()`Details

Type

`$loggerClassname= 'null'`
Default value `null` Details

Type

`$msgOutputLevel= 'Project::MSG_INFO'`
static

Our current message output status. Follows Project::MSG_XXX

Default value `Project::MSG_INFO` Details

Type

`array $origIniSettings= 'array()'`
static

Array to hold original ini settings that Phing changes (and needs to restore in restoreIni() method).

Struct of array(setting-name => setting-value)
Default value `array()`Details

Type
  array
See
  \restoreIni()

`\OUtputStream $out= ''`
static

Stream for standard output.
Details

Type
  \OUtputStream

`$phpErrorCapture= 'false'`
static

Whether to capture PHP errors to buffer.

Default value `false` Details

Type

`$projectHelp= 'false'`

Indicates we should only parse and display the project help information

Default value `false` Details

Type

`$properties= 'array()'`
static

System-wide static properties (moved from System)

Default value `array()`Details

Type

`$readyToRun= 'false'`

Indicates if this phing should be run

Default value `false` Details

Type

`$targets= 'array()'`

The build targets

Default value `array()`Details

Type

`$timer= ''`
static

Static system timer.

Details

Type

### Methods

`__import( string $path, mixed $classpath = null ) : void`
static

Import a PHP file

Parameters

Name | Type | Description
--- | --- | ---
$path | string | Path to the PHP file
$classpath | mixed | String or object supporting __toString()

Throws

Exception | Description
--- | ---
\BuildException | - if cannot find the specified file

`_findBuildFile( string $start, string $suffix ) : \PhingFile`

Search parent directories for the build file.

Takes the given target as a suffix to append to each parent directory in search of a build file. Once the root of the file-system has been reached an exception is thrown.

Parameters

Name | Type | Description
--- | --- | ---
$start | string | Start file path.
$suffix | string | Suffix filename to look for in parents.

Returns

Type | Description
--- | ---
\PhingFile | A handle to the build file

Throws

Exception | Description
--- | ---
\BuildException | Failed to locate a build file

`_getParentFile( \PhingFile $file ) : \PhingFile`

Helper to get the parent file for a given file.

Parameters

Name | Type | Description
--- | --- | ---
$file | \PhingFile |

Returns

Type | Description
--- | ---
\PhingFile | Parent file or null if none

`_printTargets( array $names, array $descriptions, string $heading, int $maxlen ) : void`

Writes a formatted list of target names with an optional description.

Parameters

Name | Type | Description
--- | --- | ---
$names | array | The names to be printed. Must not be `null`.
$descriptions | array | The associated target descriptions. May be `null`, in which case no descriptions are displayed. If non-`null`, this should have as many elements as `names`.
$heading | string | The heading to display. Should not be `null`.
$maxlen | int | The maximum length of the names of the targets. If descriptions are given, they are padded to this position so they line up (so long as the names really are shorter than this).

`addBuildListeners( \Project $project ) : void`

Bind any registered build listeners to this project.

This means adding the logger and any build listeners that were specified with -listener arg.

Parameters

Name | Type | Description
--- | --- | ---
$project | \Project |

`addInputHandler( \Project $project ) : void`

Creates the InputHandler and adds it to the project.

Parameters

Name | Type | Description
--- | --- | ---
$project | \Project | the project instance.

Throws

Exception | Description
--- | ---
\BuildException | if a specified InputHandler class could not be loaded.

`clearCapturedPhpErrors( ) : void`
static

Clears the captured errors without affecting the starting/stopping of the capture.

`comparePhingVersion( $version ) : void`

Parameters

Name | Type | Description
--- | --- | ---
$version |  |

`convertShorthand( string $val ) : void`
static

Converts shorthand notation values as returned by ini_get()

Parameters

Name | Type | Description
--- | --- | ---
$val | string |

Details

See
  \http://www.php.net/ini_get

`createLogger( ) : \BuildLogger`

Creates the default build logger for sending build events to the log.

Returns

Type | Description
--- | ---
\BuildLogger | The created Logger

`currentTimeMillis( ) : void`
static

`execute( array $args ) : void`

Setup/initialize Phing environment from commandline args.

Parameters

Name | Type | Description
--- | --- | ---
$args | array | commandline args passed to phing shell.

`fire( array $args ) : void`
static

Command line entry point. This method kicks off the building of a project object and executes a build using either a given target or the default target.

Parameters

Name | Type | Description
--- | --- | ---
$args | array | Command line args.

`getCapturedPhpErrors( ) : array`
static

Gets any PHP errors that were captured to buffer.

Returns

Type | Description
--- | ---
array | array('message' => message, 'line' => line number, 'file' => file name, 'level' => error level)

`getCurrentProject( ) : \Project`
static

Gets the current Project.

Returns

Type | Description
--- | ---
\Project | Current Project or NULL if none is set yet/still.

`getDefinedProperty( string $name ) : string`
static

This gets a property that was set via command line or otherwise passed into Phing.

"Defined" in this case means "externally defined". The reason this method exists is to provide a public means of accessing commandline properties for (e.g.) logger or listener scripts. E.g. to specify which logfile to use, PearLogger needs to be able to access the pear.log.name property.

Parameters

Name | Type | Description
--- | --- | ---
$name | string |

Returns

Type | Description
--- | ---
string | value of found property (or null, if none found).

`getErrorStream( ) : \OutputStream`
static

Gets the stream to use for error output.

Returns

Type | Description
--- | ---
\OutputStream |

`getMsgOutputLevel( ) : int`
static

Making output level a static property so that this property can be accessed by other parts of the system, enabling us to display more information -- e.g. backtraces -- for "debug" level.

Returns

Type | Description
--- | ---
int |

`getOutputStream( ) : \OutputStream`
static

Gets the stream to use for standard (non-error) output.

Returns

Type | Description
--- | ---
\OutputStream |

`getPhingVersion( ) : string`
static

Gets the current Phing version based on VERSION.TXT file.

Returns

Type | Description
--- | ---
string |

Throws

Exception | Description
--- | ---
\BuildException | - if unable to find version file.

`getProperties( ) : void`
static

Retuns reference to all properties

`getProperty( $propName ) : string`
static

Returns property value for a System property.

System properties are "global" properties like application.startdir, and user.dir. Many of these correspond to similar properties in Java or Ant.

Parameters

Name | Type | Description
--- | --- | ---
$propName |  |

Returns

Type | Description
--- | ---
string | Value of found property (or null, if none found).

`getResourcePath( $path ) : string`
static

Looks on include path for specified file.

Parameters

Name | Type | Description
--- | --- | ---
$path |  |

Returns

Type | Description
--- | ---
string | File found (null if no file found).

`getTimer( ) : \Timer`
static

Returns reference to Timer object.

Returns

Type | Description
--- | ---
\Timer |

`halt( ) : void`
static

Halts the system.

Details

Deprecated
  This method is deprecated and is no longer called by Phing internally. Any normal shutdown routines are handled by the shutdown() method.
See
  \shutdown()

`handleLogfile( ) : void`
static

Close logfiles, if we have been writing to them.

Details

Since
  Phing 2.3.0

`handlePhpError( $level, $message, $file, $line ) : void`
static

Error handler for PHP errors encountered during the build.

This uses the logging for the currently configured project.

Parameters

Name | Type | Description
--- | --- | ---
$level |  |
$message |  |
$file |  |
$line |  |

`import( string $dotPath, mixed $classpath = null ) : string`
static

Import a dot-path notation class path.

Parameters

Name | Type | Description
--- | --- | ---
$dotPath | string |
$classpath | mixed | String or object supporting __toString()

Returns

Type | Description
--- | ---
string | The unqualified classname (which can be instantiated).

Throws

Exception | Description
--- | ---
\BuildException | - if cannot find the specified file

`initializeOutputStreams( ) : void`
static

Sets the stdout and stderr streams if they are not already set.

`log( string $message, int $priority = Project::MSG_INFO ) : void`
static

A static convenience method to send a log to the current (last-setup) Project.

If there is no currently-configured Project, then this will do nothing.

Parameters

Name | Type | Description
--- | --- | ---
$message | string |
$priority | int | Project::MSG_INFO, etc.

`printDescription( $project ) : void`
static

Print the project description, if any

Parameters

Name | Type | Description
--- | --- | ---
$project |  |

`printMessage( \Exception $t ) : void`
static

Prints the message of the Exception if it's not null.

Parameters

Name | Type | Description
--- | --- | ---
$t | \Exception |

`printTargets( $project ) : void`

Print out a list of all targets in the current buildfile

Parameters

Name | Type | Description
--- | --- | ---
$project |  |

`printUsage( ) : void`
static

Prints the usage of how to use this class

`printVersion( ) : void`
static

Prints the current Phing version.

`restoreIni( ) : void`
static

Restores [most] PHP INI values to their pre-Phing state.

Currently the following settings are not restored: - max_execution_time (because getting current time limit is not possible) - memory_limit (which may have been increased by Phing)

`runBuild( ) : void`

Executes the build.

`setCurrentProject( \Project $p ) : void`
static

Sets the current Project

Parameters

Name | Type | Description
--- | --- | ---
$p | \Project |

`setDefinedProperty( string $name, $value ) : string`
static

This sets a property that was set via command line or otherwise passed into Phing.

Parameters

Name | Type | Description
--- | --- | ---
$name | string |
$value |  |

Returns

Type | Description
--- | ---
string | value of found property (or null, if none found).

`setErrorStream( \OutputStream $stream ) : void`
static

Sets the stream to use for error output.

Parameters

Name | Type | Description
--- | --- | ---
$stream | \OutputStream | The stream to use for error output.

`setIncludePaths( ) : void`
static

Sets the include path to PHP_CLASSPATH constant (if this has been defined).

Throws

Exception | Description
--- | ---
\ConfigurationException | - if the include_path could not be set (for some bizarre reason)

`setIni( ) : void`
static

Sets PHP INI values that Phing needs.

`setOutputStream( \OutputStream $stream ) : void`
static

Sets the stream to use for standard (non-error) output.

Parameters

Name | Type | Description
--- | --- | ---
$stream | \OutputStream | The stream to use for standard output.

`setProperty( $propName, $propValue ) : void`
static

Parameters

Name | Type | Description
--- | --- | ---
$propName |  |
$propValue |  |

`setSystemConstants( ) : void`
static

Set System constants which can be retrieved by calling Phing::getProperty($propName).

`shutdown( ) : void`
static

Performs any shutdown routines, such as stopping timers.

`start( array $args, array $additionalUserProperties = null ) : void`
static

Entry point allowing for more options from other front ends.

This method encapsulates the complete build lifecycle.

Parameters

Name | Type | Description
--- | --- | ---
$args | array | The commandline args passed to phing shell script.
$additionalUserProperties | array | Any additional properties to be passed to Phing (alternative front-end might implement this). These additional properties will be available using the getDefinedProperty() method and will be added to the project's "user" properties

Throws

Exception | Description
--- | ---
\Exception | - if there is an error during build

Details

See
  \execute()
See
  \runBuild()

`startPhpErrorCapture( ) : void`
static

Begins capturing PHP errors to a buffer.

While errors are being captured, they are not logged.

`startup( ) : void`
static

Start up Phing.

Sets up the Phing environment but does not initiate the build process.

Throws

Exception | Description
--- | ---
\Exception | - If the Phing environment cannot be initialized.

`stopPhpErrorCapture( ) : void`
static

Stops capturing PHP errors to a buffer.

The errors will once again be logged after calling this method.

`unsetCurrentProject( ) : void`
static

Unsets the current Project

Documentation was generated by DocBlox 0.15.1.