phing-tasks-ext
[ class tree: phing-tasks-ext ] [ index: phing-tasks-ext ] [ all elements ]

Class: PearPackage2Task

Source Location: /tasks/ext/PearPackage2Task.php

Class Overview

ProjectComponent
   |
   --Task
      |
      --MatchingTask
         |
         --PearPackageTask
            |
            --PearPackage2Task

A task to create a PEAR package.xml version 2.0 file.


Author(s):

Version:

  • $Id: PearPackage2Task.php 552 2009-08-29 12:18:13Z mrook $

Copyright:

  • � 2001,2002 THYRELL. All rights reserved

Methods


Inherited Variables

Inherited Methods

Class: PearPackageTask

PearPackageTask::createFileSet()
Nested creator, creates a FileSet for this task
PearPackageTask::createMapping()
Handles nested generic <option> elements.
PearPackageTask::createOption()
Handles nested generic <option> elements.
PearPackageTask::getFileSets()
Used by the PEAR_PackageFileManager_PhingFileSet lister.
PearPackageTask::init()
PearPackageTask::main()
Main entry point.
PearPackageTask::setDestFile()
Sets the file to use for generated package.xml
PearPackageTask::setDir()
Sets "dir" property from XML.
PearPackageTask::setName()
Sets "name" property from XML.
PearPackageTask::setOptions()
Sets PEAR package.xml options, based on class properties.
PearPackageTask::setPackage()
Set "package" property from XML.

Class: MatchingTask

MatchingTask::__construct()
Create instance; set fileset to new FileSet.
MatchingTask::appendSelector()
Add a new selector into this container.
MatchingTask::createAnd()
add an "And" selector entry on the selector list
MatchingTask::createContains()
add a contains selector entry on the selector list
MatchingTask::createCustom()
add an extended selector entry on the selector list
MatchingTask::createDate()
add a selector date entry on the selector list
MatchingTask::createDepend()
add a depends selector entry on the selector list
MatchingTask::createDepth()
add a depth selector entry on the selector list
MatchingTask::createExclude()
add a name entry on the exclude list
MatchingTask::createExcludesFile()
add a name entry on the include files list
MatchingTask::createFilename()
add a selector filename entry on the selector list
MatchingTask::createInclude()
add a name entry on the include list
MatchingTask::createIncludesFile()
add a name entry on the include files list
MatchingTask::createMajority()
add a majority selector entry on the selector list
MatchingTask::createNone()
add a "None" selector entry on the selector list
MatchingTask::createNot()
add a "Not" selector entry on the selector list
MatchingTask::createOr()
add an "Or" selector entry on the selector list
MatchingTask::createPatternSet()
add a set of patterns
MatchingTask::createPresent()
add a present selector entry on the selector list
MatchingTask::createSelector()
add a "Select" selector entry on the selector list
MatchingTask::createSize()
add a selector size entry on the selector list
MatchingTask::getDirectoryScanner()
Returns the directory scanner needed to access the files to process.
MatchingTask::getImplicitFileSet()
Accessor for the implict fileset.
MatchingTask::getSelectors()
Returns the set of selectors as an array.
MatchingTask::hasSelectors()
Indicates whether there are any selectors here.
MatchingTask::selectorCount()
Gives the count of the number of selectors in this container
MatchingTask::selectorElements()
Returns an enumerator for accessing the set of selectors.
MatchingTask::setCaseSensitive()
Sets case sensitivity of the file system
MatchingTask::setDefaultexcludes()
Sets whether default exclusions should be used or not.
MatchingTask::setExcludes()
Sets the set of exclude patterns. Patterns may be separated by a comma or a space.
MatchingTask::setExcludesfile()
Sets the name of the file containing the includes patterns.
MatchingTask::setFollowSymlinks()
Sets whether or not symbolic links should be followed.
MatchingTask::setIncludes()
Sets the set of include patterns. Patterns may be separated by a comma or a space.
MatchingTask::setIncludesfile()
Sets the name of the file containing the includes patterns.
MatchingTask::setProject()

Class: Task

Task::getDescription()
Returns the textual description of the task
Task::getLocation()
Returns the location within the buildfile this task occurs. Used by BuildException to give detailed error messages.
Task::getOwningTarget()
Returns the owning target of this task.
Task::getRegisterSlot()
Returns a name
Task::getRuntimeConfigurableWrapper()
Returns the wrapper object for runtime configuration
Task::getTaskName()
Returns the name of task, used only for log messages
Task::getTaskType()
Returns the name of the task under which it was invoked, usually the XML tagname
Task::init()
Called by the parser to let the task initialize properly.
Task::log()
Provides a project level log event to the task.
Task::main()
Called by the project to let the task do it's work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running <em>phing target1 target2</em> will run all tasks in target3 twice.
Task::maybeConfigure()
Configure this task if it hasn't been done already.
Task::perform()
Perfrom this task
Task::setDescription()
Sets a textual description of the task
Task::setLocation()
Sets the location within the buildfile this task occurs. Called by the parser to set location information.
Task::setOwningTarget()
Sets the owning target this task belongs to.
Task::setRuntimeConfigurableWrapper()
Sets the wrapper object this task should use for runtime configurable elements.
Task::setTaskName()
Sets the name of this task for log messages
Task::setTaskType()
Sets the type of the task. Usually this is the name of the XML tag

Class: ProjectComponent

ProjectComponent::getProject()
Returns a reference to current project
ProjectComponent::log()
Logs a message with the given priority.
ProjectComponent::setProject()
References the project to the current component.

Class Details

[line 90]
A task to create a PEAR package.xml version 2.0 file.

This class uses the PEAR_PackageFileManager2 class to perform the work.

This class is designed to be very flexible -- i.e. account for changes to the package.xml w/o requiring changes to this class. We've accomplished this by having generic <option> and <mapping> nested elements. All options are set using PEAR_PackageFileManager2::setOptions().

The <option> tag is used to set a simple option value.

  1.  <option name="option_name" value="option_value"/>
  2.  or <option name="option_name">option_value</option>

The <mapping> tag represents a complex data type. You can use nested <element> (and nested <element> with <element> tags) to represent the full complexity of the structure. Bear in mind that what you are creating will be mapped to an associative array that will be passed in via PEAR_PackageFileManager2::setOptions().

  1.  <mapping name="option_name">
  2.   <element key="key_name" value="key_val"/>
  3.   <element key="key_name" value="key_val"/>
  4.  </mapping>

Here's an over-simple example of how this could be used:

  1.  <pearpkg2 name="phing" dir="${build.src.dir}">
  2.   <fileset dir="src">
  3.       <include name="**"/>
  4.   </fileset>
  5.   <option name="outputdirectory" value="./build"/>
  6.   <option name="packagefile" value="package2.xml"/>
  7.   <option name="packagedirectory" value="./${build.dist.dir}"/>
  8.   <option name="baseinstalldir" value="${pkg.prefix}"/>
  9.   <option name="channel" value="my.pear-channel.com"/>
  10.   <option name="summary" value="${pkg.summary}"/>
  11.   <option name="description" value="${pkg.description}"/>
  12.   <option name="apiversion" value="${pkg.version}"/>
  13.   <option name="apistability" value="beta"/>
  14.   <option name="releaseversion" value="${pkg.version}"/>
  15.   <option name="releasestability" value="beta"/>
  16.   <option name="license" value="none"/>
  17.   <option name="phpdep" value="5.0.0"/>
  18.   <option name="pearinstallerdep" value="1.4.6"/>
  19.   <option name="packagetype" value="php"/>
  20.   <option name="notes" value="${pkg.relnotes}"/>
  21.   <mapping name="maintainers">
  22.    <element>
  23.     <element key="handle" value="hlellelid"/>
  24.     <element key="name" value="Hans"/>
  25.     <element key="email" value="hans@xmpl.org"/>
  26.     <element key="role" value="lead"/>
  27.    </element>
  28.   </mapping>
  29.  </pearpkg2>

Look at the build.xml in the Phing base directory (assuming you have the full distro / CVS version of Phing) to see a more complete example of how to call this script.




Tags:

author:  Hans Lellelid <hans@xmpl.org>
author:  Stuart Binge <stuart.binge@complinet.com>
version:  $Id: PearPackage2Task.php 552 2009-08-29 12:18:13Z mrook $
copyright:  � 2001,2002 THYRELL. All rights reserved


[ Top ]


Class Methods


method init [line 92]

void init( )



Tags:

access:  public


Overrides PearPackageTask::init() (parent method not documented)

[ Top ]

method main [line 247]

void main( )

Main entry point.



Tags:

access:  public


Overrides PearPackageTask::main() (Main entry point.)

[ Top ]

method setVersion2Options [line 99]

void setVersion2Options( )



Tags:

access:  protected


[ Top ]


Documentation generated on Mon, 19 Oct 2009 10:51:27 +0200 by phpDocumentor 1.4.3