A phing task for generating output by using Smarty.

This is based on the TexenTask from Apache's Velocity engine. This class was originally proted in order to provide a template compiling system for Torque.

TODO: - Add Path / useClasspath support?

author Hans Lellelid <hans@xmpl.org> (SmartyTask)
author Jason van Zyl <jvanzyl@apache.org> (TexenTask)
author Robert Burrell Donkin
version $Id: 1fe8b2aa2668db628554e59b3099520c0e1c03e4 $
package phing.tasks.ext
copyright 2001,2002 THYRELL. All rights reserved

 Methods

Get the path Smarty uses for compiling templates.

getCompilePath() : string

Returns

string

Get the path that Smarty uses for looking for config files.

getConfigPath() : string

Returns

string

Get the context properties that will be fed into the initial context be the generating process starts.

getContextProperties() : \Properties

Returns

Get the control template for the generating process.

getControlTemplate() : string

Returns

string

Returns the textual description of the task

getDescription() : string
Inherited
inherited_from \Task::getDescription()

Returns

stringThe text description of the task

Get whether Smarty should always recompile template.

getForceCompile() : boolean

Returns

boolean

Get Smarty template right delimiter

getLeftDelimiter() : string

Returns

string

Returns the location within the buildfile this task occurs.

getLocation() : \Location
Inherited

Used by BuildException to give detailed error messages.

inherited_from \Task::getLocation()

Returns

\LocationThe location object describing the position of this task within the buildfile.

Get the output directory.

getOutputDirectory() : string

Returns

string

Get the output file for the generation process.

getOutputFile() : string

Returns

string

Returns the owning target of this task.

getOwningTarget() : \Target
Inherited
inherited_from \Task::getOwningTarget()

Returns

\TargetThe target object that owns this task

Returns a reference to current project

getProject() : \Project
Inherited
inherited_from \ProjectComponent::getProject()
inherited_from \Task::getProject()

Returns

\ProjectReference to current porject object

Get Smarty template right delimiter

getRightDelimiter() : string

Returns

string

Returns the wrapper object for runtime configuration

getRuntimeConfigurableWrapper() : \RuntimeConfigurable
Inherited
inherited_from \Task::getRuntimeConfigurableWrapper()

Returns

\RuntimeConfigurableThe wrapper object used by this task

Returns the name of task, used only for log messages

getTaskName() : string
Inherited
inherited_from \Task::getTaskName()

Returns

stringName of this task

Returns the name of the task under which it was invoked, usually the XML tagname

getTaskType() : string
Inherited
inherited_from \Task::getTaskType()

Returns

stringThe type of this task (XML Tag)

Get the path where Velocity will look for templates using the file template loader.

getTemplatePath() : string

Returns

string

Called by the parser to let the task initialize properly.

init() 

Should throw a BuildException if something goes wrong with the build

This is abstract here, but may not be overloaded by subclasses.

Exceptions

\BuildException

Creates a Smarty object.

initControlContext() : \Smarty

Exceptions

\Exception the execute method will catch and rethrow as a BuildException

Returns

\Smartyinitialized (cleared) Smarty context.

Provides a project level log event to the task.

log(string $msg, integer $level) 
Inherited
see \global\BuildEvent
see \global\BuildListener
inherited_from \Task::log()

Parameters

$msg

string

The message to log

$level

integer

The priority of the message

Execute the input script with Velocity

main() 

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 phing target1 target2 will run all tasks in target3 twice.

Should throw a BuildException if someting goes wrong with the build

This is abstract here. Must be overloaded by real tasks.

Exceptions

\BuildException BuildExceptions are thrown when required attributes are missing. Exceptions thrown by Velocity are rethrown as BuildExceptions.

Configure this task if it hasn't been done already.

maybeConfigure() 
Inherited
inherited_from \Task::maybeConfigure()

Perfrom this task

perform() 
Inherited
inherited_from \Task::perform()

Set the path Smarty uses as a "cache" for compiled templates.

setCompilePath(string $compilePath) 

Parameters

$compilePath

string

Set where Smarty looks for config files.

setConfigPath(string $configPath) : void

Parameters

$configPath

string

Set the context properties that will be fed into the initial context be the generating process starts.

setContextProperties(string $file) : void

Parameters

$file

string

[REQUIRED] Set the control template for the generating process.

setControlTemplate(string $controlTemplate) : void

Parameters

$controlTemplate

string

Sets a textual description of the task

setDescription(string $desc) 
Inherited
inherited_from \Task::setDescription()

Parameters

$desc

string

The text describing the task

Set whether Smarty should always recompile tempaltes.

setForceCompile(boolean $force) : void

Parameters

$force

boolean

Set Smarty template left delimiter.

setLeftDelimiter(string $delim) : void

Parameters

$delim

string

Sets the location within the buildfile this task occurs.

setLocation(\Location $location) 
Inherited

Called by the parser to set location information.

inherited_from \Task::setLocation()

Parameters

$location

\Location

The location object describing the position of this task within the buildfile.

[REQUIRED] Set the output directory.

setOutputDirectory(\PhingFile $outputDirectory) : void

It will be created if it doesn't exist.

Parameters

$outputDirectory

\PhingFile

Exceptions

\Exception

[REQUIRED] Set the output file for the generation process.

setOutputFile($outputFile) : void

Parameters

$outputFile

Sets the owning target this task belongs to.

setOwningTarget(\Target $target) 
Inherited
inherited_from \Task::setOwningTarget()

Parameters

$target

\Target

Reference to owning target

References the project to the current component.

setProject(\Project $project) 
Inherited
inherited_from \ProjectComponent::setProject()
inherited_from \Task::setProject()

Parameters

$project

\Project

The reference to the current project

Set Smarty template right delimiter.

setRightDelimiter(string $delim) : void

Parameters

$delim

string

Sets the wrapper object this task should use for runtime configurable elements.

setRuntimeConfigurableWrapper(\RuntimeConfigurable $wrapper) 
Inherited
inherited_from \Task::setRuntimeConfigurableWrapper()

Parameters

$wrapper

\RuntimeConfigurable

The wrapper object this task should use

Sets the name of this task for log messages

setTaskName(string $name) : string
Inherited
inherited_from \Task::setTaskName()

Parameters

$name

string

Returns

stringA string representing the name of this task for log

Sets the type of the task.

setTaskType(string $name) 
Inherited

Usually this is the name of the XML tag

inherited_from \Task::setTaskType()

Parameters

$name

string

The type of this task (XML Tag)

[REQUIRED] Set the path where Velocity will look for templates using the file template loader.

setTemplatePath($templatePath) : void

Parameters

$templatePath

Exceptions

\Exception

A hook method called at the end of {@link #execute()} which can be overridden to perform any necessary cleanup activities (such as the release of database connections, etc.).

cleanup() : void

By default, does nothing.

Exceptions

\Exception Problem cleaning up.

Returns a name

getRegisterSlot(string $slotName) 
Inherited
inherited_from \Task::getRegisterSlot()

Parameters

$slotName

string

<p>Place useful objects into the initial context.</p>

populateInitialContext(\Smarty $context) : void

TexenTask places

Date().toString()
into the context as
$now
. Subclasses who want to vary the objects in the context should override this method.

$generator
is not put into the context in this method.

Parameters

$context

\context

The context to populate, as retrieved from {@link #initControlContext()}.

Exceptions

\Exception Error while populating context. The {@link #execute()} method will catch and rethrow as a BuildException.

 Properties

 

$compilePath : string

By default it will try ./templates_c, but you may wish to override this.

 

$configPath : string

This tells Smarty where to look for the config files.

 

$context : \Smarty
 

$contextProperties : array

This is simply a convenient way to set some values that you wish to make available in the context.

These values are not critical, like the template path or output path, but allow a convenient way to set a value that may be specific to a particular generation task.

<

p> For example, if you are generating scripts to allow user to automatically create a database, then you might want the

$databaseName

to be placed in the initial context so that it is available in a script that might look something like the following:

#!bin/sh

echo y | mysqladmin create $databaseName

The value of

$databaseName

isn't critical to output, and you obviously don't want to change the ant task to simply take a database name. So initial context values can be set with properties file.

 

$controlTemplate : string

It may or may not invoke the services of worker templates.

 

$description : string
Inherited
inherited_from \Task::$$description
 

$forceCompile : boolean

Smarty does check file modification time, but you can set this to be sure that the template will be compiled (of course it will be slower if you do).

 

$leftDelimiter : string
 

$location : \Location
Inherited
inherited_from \Task::$$location
 

$outputDirectory : string
 

$outputFile : string
 

$project : \Project
Inherited
inherited_from \ProjectComponent::$$project
inherited_from \Task::$$project
 

$properties : array
 

$rightDelimiter : string
 

$target : \Target
Inherited
inherited_from \Task::$$target
 

$taskName : string
Inherited
inherited_from \Task::$$taskName
 

$taskType : string
Inherited
inherited_from \Task::$$taskType
 

$templatePath : string
 

$wrapper : \RuntimeConfigurable
Inherited
inherited_from \Task::$$wrapper