# tasks/ext/SmartyTask.php

## \SmartyTask
jump to top

Package: phing\tasks\ext

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?

Parent(s)
  \Task < \ProjectComponent
Author
  Hans Lellelid (SmartyTask)
Author
  Jason van Zyl (TexenTask)
Author
  Robert Burrell Donkin
Version
  $Id: SmartyTask.php 526 2009-08-11 12:11:17Z mrook $

### Properties

`string $compilePath= ''`

Smarty compiles templates before parsing / replacing tokens in them.

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

Details

Type
  string

`string $configPath= ''`

Smarty can use config files.

This tells Smarty where to look for the config files.

Details

Type
  string

`\Smarty $context= ''`

Smarty template engine.

Details

Type
  \Smarty

`array $contextProperties= ''`

<p> These are properties that are fed into the initial context from a properties file. 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.

Details

Type
  array

`string $controlTemplate= ''`

This is the control template that governs the output.

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

Details

Type
  string

`boolean $forceCompile= 'false'`

Whether to force Smarty to recompile templates.

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).

Default value `false` Details

Type
  boolean

`string $leftDelimiter= ''`

Customize the left delimiter for Smarty tags.

Details

Type
  string

`string $outputDirectory= ''`

This is where texen will place all the output that is a product of the generation process.

Details

Type
  string

`string $outputFile= ''`

This is the file where the generated text will be placed.

Details

Type
  string

`array $properties= 'array()'`

Variables that are assigned to the context on parse/compile.

Default value `array()`Details

Type
  array

`string $rightDelimiter= ''`

Customize the right delimiter for Smarty tags.

Details

Type
  string

`string $templatePath= ''`

This is where Velocity will look for templates using the file template loader.

Details

Type
  string

### Methods

`cleanup( ) : void`

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.). By default, does nothing.

Throws

Exception | Description
--- | ---
\Exception | Problem cleaning up.

`getCompilePath( ) : string`

Get the path Smarty uses for compiling templates.

Returns

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

`getConfigPath( ) : string`

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

Returns

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

`getContextProperties( ) : \Properties`

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

Returns

Type | Description
--- | ---
\Properties |

`getControlTemplate( ) : string`

Get the control template for the generating process.

Returns

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

`getDescription( ) : void`

`getForceCompile( ) : boolean`

Get whether Smarty should always recompile template.

Returns

Type | Description
--- | ---
boolean |

`getLeftDelimiter( ) : string`

Get Smarty template right delimiter

Returns

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

`getLocation( ) : void`

`getOutputDirectory( ) : string`

Get the output directory.

Returns

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

`getOutputFile( ) : string`

Get the output file for the generation process.

Returns

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

`getOwningTarget( ) : void`

`getProject( ) : void`

`getRegisterSlot( ) : void`

`getRightDelimiter( ) : string`

Get Smarty template right delimiter

Returns

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

`getRuntimeConfigurableWrapper( ) : void`

`getTaskName( ) : void`

`getTaskType( ) : void`

`getTemplatePath( ) : string`

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

Returns

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

`init( ) : void`

`initControlContext( ) : \Smarty`

Creates a Smarty object.

Returns

Type | Description
--- | ---
\Smarty | initialized (cleared) Smarty context.

Throws

Exception | Description
--- | ---
\Exception | the execute method will catch and rethrow as a `BuildException`

`log( ) : void`

`main( ) : void`

Execute the input script with Velocity

Throws

Exception | Description
--- | ---
\BuildException | BuildExceptions are thrown when required attributes are missing. Exceptions thrown by Velocity are rethrown as BuildExceptions.

`maybeConfigure( ) : void`

`perform( ) : void`

`populateInitialContext( \context $context ) : void`

Place useful objects into the initial context.

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

Name | Type | Description
--- | --- | ---
$context | \context | The context to populate, as retrieved from {@link #initControlContext()}.

Throws

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

`setCompilePath( string $compilePath ) : void`

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

Parameters

Name | Type | Description
--- | --- | ---
$compilePath | string |

`setConfigPath( string $configPath ) : void`

Set where Smarty looks for config files.

Parameters

Name | Type | Description
--- | --- | ---
$configPath | string |

`setContextProperties( string $file ) : void`

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

Parameters

Name | Type | Description
--- | --- | ---
$file | string |

`setControlTemplate( string $controlTemplate ) : void`

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

Parameters

Name | Type | Description
--- | --- | ---
$controlTemplate | string |

`setDescription( ) : void`

`setForceCompile( boolean $force ) : void`

Set whether Smarty should always recompile tempaltes.

Parameters

Name | Type | Description
--- | --- | ---
$force | boolean |

`setLeftDelimiter( string $delim ) : void`

Set Smarty template left delimiter.

Parameters

Name | Type | Description
--- | --- | ---
$delim | string |

`setLocation( ) : void`

`setOutputDirectory( \PhingFile $outputDirectory ) : void`

[REQUIRED] Set the output directory. It will be created if it doesn't exist.

Parameters

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

Throws

Exception | Description
--- | ---
\Exception |

`setOutputFile( $outputFile ) : void`

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

Parameters

Name | Type | Description
--- | --- | ---
$outputFile |  |

`setOwningTarget( ) : void`

`setProject( ) : void`

`setRightDelimiter( string $delim ) : void`

Set Smarty template right delimiter.

Parameters

Name | Type | Description
--- | --- | ---
$delim | string |

`setRuntimeConfigurableWrapper( ) : void`

`setTaskName( ) : void`

`setTaskType( ) : void`

`setTemplatePath( $templatePath ) : void`

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

Parameters

Name | Type | Description
--- | --- | ---
$templatePath |  |

Throws

Exception | Description
--- | ---
\Exception |

Documentation was generated by DocBlox 0.17.1.