classes/phing/Phing.php

\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
package
phing
version
$Revision: 1232 $

Constants

Constant  DEFAULT_BUILD_FILENAME = 'build.xml'

The default build file name

Properties

Propertyprivate  $buildFile= 'null'

PhingFile that we are using for configuration

Default valuenullDetails
Type
Propertyprivate  $capturedPhpErrors= 'array'
static

Array of captured PHP errors

Default valuearrayDetails
Type
Propertyprivate  $currentProject= ''
static

The current Project

Details
Type
Propertyprivate\Properties  $definedProps= ''
static

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

Details
Type
\Properties
Propertyprivate\OutputStream  $err= ''
static

Stream for error output.
Details
Type
\OutputStream
Propertyprivate  $importPaths= ''
static

Used by utility function getResourcePath()

Details
Type
Propertyprivate  $inputHandlerClassname= ''

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

Details
Type
Propertyprivateboolean  $isLogFileUsed= 'false'
static

Whether we are using a logfile.
Default valuefalseDetails
Type
boolean
Propertyprivate  $listeners= 'array'

Names of classes to add as listeners to project

Default valuearrayDetails
Type
Propertyprivate  $loggerClassname= 'null'
Default valuenullDetails
Type
Propertyprivate  $msgOutputLevel= 'Project'
static

Our current message output status. Follows Project::MSG_XXX

Default valueProjectDetails
Type
Propertyprivatearray  $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 valuearrayDetails
Type
array
see
\restoreIni()
Propertyprivate\OUtputStream  $out= ''
static

Stream for standard output.
Details
Type
\OUtputStream
Propertyprivate  $phpErrorCapture= 'false'
static

Whether to capture PHP errors to buffer.

Default valuefalseDetails
Type
Propertyprivate  $projectHelp= 'false'

Indicates we should only parse and display the project help information

Default valuefalseDetails
Type
Propertyprivate  $properties= 'array'
static

System-wide static properties (moved from System)

Default valuearrayDetails
Type
Propertyprivate  $readyToRun= 'false'

Indicates if this phing should be run

Default valuefalseDetails
Type
Propertyprivate  $targets= 'array'

The build targets

Default valuearrayDetails
Type
Propertyprivate  $timer= ''
static

Static system timer.

Details
Type

Methods

methodpublic  __import( string $path, mixed $classpath = null ) :
staticImport a PHP file
Parameters
Name Type Description
$path string Path to the PHP file
$classpath mixed

String or object supporting __toString()

Details
throws
- if cannot find the specified file
methodprivate  _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
Details
throws
Failed to locate a build file
methodprivate  _getParentFile( \PhingFile $file ) : \PhingFile
Helper to get the parent file for a given file.
Parameters
Name Type Description
$file \PhingFile
Returns
Type Description
\PhingFile
methodprivate  _printTargets( array $names, array $descriptions, string $heading, int $maxlen ) :
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).

methodprivate  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
methodprivate  addInputHandler( \Project $project ) :
Creates the InputHandler and adds it to the project.
Parameters
Name Type Description
$project \Project the project instance.
Details
throws
if a specified InputHandler class could not be loaded.
methodpublic  clearCapturedPhpErrors( ) :
staticClears the captured errors without affecting the starting/stopping of the capture.
methodprivate  comparePhingVersion(  $version ) :
Parameters
Name Type Description
$version
methodprivate  convertShorthand( string $val ) :
staticConverts shorthand notation values as returned by ini_get()
Parameters
Name Type Description
$val string
Details
see
\http://www.php.net/ini_get
methodprivate  createLogger( ) : \BuildLogger
Creates the default build logger for sending build events to the log.
Returns
Type Description
\BuildLogger
methodpublic  currentTimeMillis( ) :
static
methodpublic  execute( array $args ) : void
Setup/initialize Phing environment from commandline args.
Parameters
Name Type Description
$args array commandline args passed to phing shell.
methodpublic  fire( array $args ) : void
staticCommand 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.
methodpublic  getCapturedPhpErrors( ) : array
staticGets any PHP errors that were captured to buffer.
Returns
Type Description
array
methodpublic  getCurrentProject( ) : \Project
staticGets the current Project.
Returns
Type Description
\Project
methodpublic  getDefinedProperty( string $name ) : string
staticThis 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
methodpublic  getErrorStream( ) : \OutputStream
staticGets the stream to use for error output.
Returns
Type Description
\OutputStream
methodpublic  getMsgOutputLevel( ) : int
staticMaking 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
methodpublic  getOutputStream( ) : \OutputStream
staticGets the stream to use for standard (non-error) output.
Returns
Type Description
\OutputStream
methodpublic  getPhingVersion( ) : string
staticGets the current Phing version based on VERSION.TXT file.
Returns
Type Description
string
Details
throws
- if unable to find version file.
methodpublic  getProperties( ) :
staticRetuns reference to all properties
methodpublic  getProperty(  $propName ) : string
staticReturns 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
methodpublic  getResourcePath(  $path ) : string
staticLooks on include path for specified file.
Parameters
Name Type Description
$path
Returns
Type Description
string
methodpublic  getTimer( ) : \Timer
staticReturns reference to Timer object.
Returns
Type Description
\Timer
methodpublic  halt( ) :
staticHalts 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()
methodprivate  handleLogfile( ) :
staticClose logfiles, if we have been writing to them.
Details
since
Phing 2.3.0
methodpublic  handlePhpError(  $level,  $message,  $file,  $line ) :
staticError 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
methodpublic  import( string $dotPath, mixed $classpath = null ) : string
staticImport a dot-path notation class path.
Parameters
Name Type Description
$dotPath string
$classpath mixed

String or object supporting __toString()

Returns
Type Description
string
Details
throws
- if cannot find the specified file
methodprivate  initializeOutputStreams( ) :
staticSets the stdout and stderr streams if they are not already set.
methodpublic  log( string $message, int $priority = Project ) :
staticA 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.
methodpublic  printDescription(  $project ) :
staticPrint the project description, if any
Parameters
Name Type Description
$project
methodpublic  printMessage( \Exception $t ) :
staticPrints the message of the Exception if it's not null.
Parameters
Name Type Description
$t \Exception
methodpublic  printTargets(  $project ) :
Print out a list of all targets in the current buildfile
Parameters
Name Type Description
$project
methodpublic  printUsage( ) :
staticPrints the usage of how to use this class
methodpublic  printVersion( ) :
staticPrints the current Phing version.
methodprivate  restoreIni( ) : void
staticRestores [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)

methodpublic  runBuild( ) : void
Executes the build.
methodpublic  setCurrentProject( \Project $p ) :
staticSets the current Project
Parameters
Name Type Description
$p \Project
methodpublic  setDefinedProperty( string $name,  $value ) : string
staticThis 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
methodpublic  setErrorStream( \OutputStream $stream ) :
staticSets the stream to use for error output.
Parameters
Name Type Description
$stream \OutputStream The stream to use for error output.
methodprivate  setIncludePaths( ) : void
staticSets the include path to PHP_CLASSPATH constant (if this has been defined).
Details
throws
- if the include_path could not be set (for some bizarre reason)
methodprivate  setIni( ) : void
staticSets PHP INI values that Phing needs.
methodpublic  setOutputStream( \OutputStream $stream ) :
staticSets the stream to use for standard (non-error) output.
Parameters
Name Type Description
$stream \OutputStream The stream to use for standard output.
methodpublic  setProperty(  $propName,  $propValue ) :
static
Parameters
Name Type Description
$propName
$propValue
methodprivate  setSystemConstants( ) : void
staticSet System constants which can be retrieved by calling Phing::getProperty($propName).
methodpublic  shutdown( ) : void
staticPerforms any shutdown routines, such as stopping timers.
methodpublic  start( array $args, array $additionalUserProperties = null ) :
staticEntry 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

Details
see
\execute()
see
\runBuild()
throws
- if there is an error during build
methodpublic  startPhpErrorCapture( ) :
staticBegins capturing PHP errors to a buffer.

While errors are being captured, they are not logged.

methodpublic  startup( ) : void
staticStart up Phing.

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

Details
throws
- If the Phing environment cannot be initialized.
methodpublic  stopPhpErrorCapture( ) :
staticStops capturing PHP errors to a buffer.

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

methodpublic  unsetCurrentProject( ) :
staticUnsets the current Project
Documentation was generated by DocBlox 0.13.1.