# filters/ReplaceTokensWithFile.php

## \ReplaceTokensWithFile
jump to top

Package: phing\filters

Replaces tokens in the original input with the contents of a file.

The file to be used is controlled by the name of the token which corresponds to the basename of the file to be used together with the optional pre and postfix strings that is possible to set.

By default all HTML entities in the file is replaced by the corresponding HTML entities. This behaviour can be controlled by the "translatehtml" parameter.

Supported parameters are:

     prefix         string Text to be prefixed to token before using as filename
     postfix        string Text to be prefixed to token before using as filename
     dir            string The directory where the files should be read from
     translatehtml  bool   If we should translate all HTML entities in the file.

Example:

Implements
  \ChainableReader
Parent(s)
  \BaseParamFilterReader < \BaseFilterReader < \FilterReader < \Reader
See
  \ReplaceTokensWithFile
Access
  public
Author
  johan persson, johanp@aditus.nu
Copyright
  © 2003 seasonfive. All rights reserved
Version
  $Id: ReplaceTokensWithFile.php 1329 2011-10-21 13:27:59Z mrook $

### Constants

`string DEFAULT_BEGIN_TOKEN = "#@#"`

Default "begin token" character.

  string

`string DEFAULT_END_TOKEN = "#@#"`

Default "end token" character.

  string

### Properties

`string $_beginToken= 'ReplaceTokensWithFile::DEFAULT_BEGIN_TOKEN'`

Character marking the beginning of a token.

Default value `ReplaceTokensWithFile::DEFAULT_BEGIN_TOKEN` Details

Type
  string

`string $_dir= ''./''`

Directory where to look for the files. The default is to look in the current file.

Default value`'./'`Details

Type
  string

`string $_endToken= 'ReplaceTokensWithFile::DEFAULT_END_TOKEN'`

Character marking the end of a token.

Default value `ReplaceTokensWithFile::DEFAULT_END_TOKEN` Details

Type
  string

`$_parameters= 'array()'`
inherited

The passed in parameter array.

Inherited from: \BaseParamFilterReader::$_parameters
Default value `array()`Details

Type
Inherited_from
  \BaseParamFilterReader::$_parameters

`string $_postfix= ''''`

File postfix to be inserted in front of the token to create the file name to be used.

Default value`''`Details

Type
  string

`string $_prefix= ''''`

File prefix to be inserted in front of the token to create the file name to be used.

Default value`''`Details

Type
  string

`array $_tokensources= 'array()'`

Array to hold the token sources that make tokens from different sources available

Default value `array()`Details

Type
  array

`boolean $_translatehtml= 'true'`

Translate all HTML entities in the file to the corresponding HTML entities before it is used as replacements. For example all '<' will be translated to &lt; before the content is inserted.

Default value `true` Details

Type
  boolean

`\Reader $in= ''`
inherited

Inherited from: \FilterReader::$in
Details

Type
  \Reader
Inherited_from
  \FilterReader::$in

`$initialized= 'false'`
inherited

Have the parameters passed been interpreted?

Inherited from: \BaseFilterReader::$initialized
Default value `false` Details

Type
Inherited_from
  \BaseFilterReader::$initialized

`$project= 'null'`
inherited

The Phing project this filter is part of.

Inherited from: \BaseFilterReader::$project
Default value `null` Details

Type
Inherited_from
  \BaseFilterReader::$project

### Methods

`__construct( \Reader $in = null ) : void`
inherited

Constructor used by Phing's introspection mechanism.

Inherited from: \BaseFilterReader::__construct()

The original filter reader is only used for chaining purposes, never for filtering purposes (and indeed it would be useless for filtering purposes, as it has no real data to filter). ChainedReaderHelper uses this placeholder instance to create a chain of real filters.

Parameters

Name | Type | Description
--- | --- | ---
$in | \Reader |

`_initialize( ) : void`

Initializes parameters This method is only called when this filter is used through a tag in build file.

`chain( object $reader ) : object`

Creates a new ReplaceTokensWithFile using the passed in Reader for instantiation.

Parameters

Name | Type | Description
--- | --- | ---
$reader | object | A Reader object providing the underlying stream. Must not be `null`.

Returns

Type | Description
--- | ---
object | A new filter based on this configuration, but filtering the specified reader

`close( ) : void`
inherited

Close stream.

Inherited from: \FilterReader::close()
Throws

Exception | Description
--- | ---
\IOException | if there is an error closing stream

`eof( ) : boolean`
inherited

Returns whether the end of file has been reached with input stream.

Inherited from: \BaseFilterReader::eof()
Returns

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

`getBeginToken( ) : string`

Returns the "begin token" character.

Returns

Type | Description
--- | ---
string | The character used to denote the beginning of a token.

`getDir( ) : void`

Returns the drectory where to look for the files to use for token replacement

`getEndToken( ) : \the`

Returns the "end token" character.

Returns

Type | Description
--- | ---
\the | character used to denote the beginning of a token

`getInitialized( ) : boolean`
inherited

Returns the initialized status.

Inherited from: \BaseFilterReader::getInitialized()
Returns

Type | Description
--- | ---
boolean | whether or not the filter is initialized

`getParameters( ) : void`
inherited

Inherited from: \BaseParamFilterReader::getParameters()
`getPostfix( ) : void`

Returns the postfix that is added to the token in order to create the file name. For example if the token is 01 and the postfix is ".php" then the filename to look for will be "01.php"

`getPrefix( ) : void`

`getProject( ) : object`
inherited

Returns the project this filter is part of.

Inherited from: \BaseFilterReader::getProject()
Returns

Type | Description
--- | ---
object | The project this filter is part of

`getResource( ) : string`
inherited

Returns the filename, url, etc. that is being read from.

Inherited from: \FilterReader::getResource()

This is critical for, e.g., ExpatParser's ability to know the filename that is throwing an ExpatParserException, etc.

Returns

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

`getTranslateHTML( ) : void`

Returns the drectory where to look for the files to use for token replacement

`log( string $msg, int $level = Project::MSG_INFO ) : void`
inherited

Convenience method to support logging in filters.

Inherited from: \BaseFilterReader::log()
Parameters

Name | Type | Description
--- | --- | ---
$msg | string | Message to log.
$level | int | Priority level.

`mark( ) : void`
inherited

If supported, places a "marker" (like a bookmark) at current stream position.

Inherited from: \Reader::mark()

A subsequent call to reset() will move stream position back to last marker (if supported).

`markSupported( ) : boolean`
inherited

Whether marking is supported.

Inherited from: \Reader::markSupported()
Returns

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

`read( \off $len = null ) : mixed`

Returns stream with tokens having been replaced with appropriate values.

If a replacement value is not found for a token, the token is left in the stream.

Parameters

Name | Type | Description
--- | --- | ---
$len | \off | Offset at which to start storing characters.

Returns

Type | Description
--- | ---
mixed | filtered stream, -1 on EOF.

Throws

Exception | Description
--- | ---
\IOException | If an I/O error occurs

`readLine( ) : \the`
inherited

Reads a line of text ending with '\n' (or until the end of the stream).

Inherited from: \BaseFilterReader::readLine()

The returned String retains the '\n'.

Returns

Type | Description
--- | ---
\the | line read, or <code>null</code> if the end of the stream has already been reached

Throws

Exception | Description
--- | ---
\IOException | if the underlying reader throws one during reading

`ready( ) : boolean`
inherited

Is stream ready for reading.

Inherited from: \Reader::ready()
Returns

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

`replaceTokenCallback( array $matches ) : string`

Replace the token found with the appropriate file contents

Parameters

Name | Type | Description
--- | --- | ---
$matches | array | Array of 1 el containing key to search for.

Returns

Type | Description
--- | ---
string | Text with which to replace key or value of key if none is found.

Details

Access
  private

`reset( ) : void`
inherited

Reset the current position in stream to beginning or last mark (if supported).

Inherited from: \FilterReader::reset()
`setBeginToken( string $beginToken ) : void`

Sets the "begin token" character.

Parameters

Name | Type | Description
--- | --- | ---
$beginToken | string | the character used to denote the beginning of a token.

`setDir( string $dir ) : void`

Sets the drectory where to look for the files to use for token replacement

Parameters

Name | Type | Description
--- | --- | ---
$dir | string |

`setEndToken( string $endToken ) : void`

Sets the "end token" character.

Parameters

Name | Type | Description
--- | --- | ---
$endToken | string | the character used to denote the end of a token

`setInitialized( boolean $initialized ) : void`
inherited

Sets the initialized status.

Inherited from: \BaseFilterReader::setInitialized()
Parameters

Name | Type | Description
--- | --- | ---
$initialized | boolean | Whether or not the filter is initialized.

`setParameters( $parameters ) : void`
inherited

Inherited from: \BaseParamFilterReader::setParameters()
Parameters

Name | Type | Description
--- | --- | ---
$parameters |  |

`setPostfix( string $postfix ) : void`

Sets the postfix that is added to the token in order to create the file name. For example if the token is 01 and the postfix is ".php" then the filename to look for will be "01.php"

Parameters

Name | Type | Description
--- | --- | ---
$postfix | string |

`setPrefix( string $prefix ) : void`

Sets the prefix that is prepended to the token in order to create the file name. For example if the token is 01 and the prefix is "example" then the filename to look for will be "example01"

Parameters

Name | Type | Description
--- | --- | ---
$prefix | string |

`setProject( object $project ) : void`
inherited

Sets the project to work with.

Inherited from: \BaseFilterReader::setProject()
Parameters

Name | Type | Description
--- | --- | ---
$project | object | The project this filter is part of. Should not be `null`.

`setReader( $in ) : void`
inherited

Inherited from: \FilterReader::setReader()
Parameters

Name | Type | Description
--- | --- | ---
$in |  |

`setTranslateHTML( $translate ) : void`

Sets the drectory where to look for the files to use for token replacement

Parameters

Name | Type | Description
--- | --- | ---
$translate |  |

`skip( int $n ) : void`
inherited

Move stream position relative to current pos.

Inherited from: \FilterReader::skip()
Parameters

Name | Type | Description
--- | --- | ---
$n | int |

Documentation was generated by DocBlox 0.15.1.