Settings for specifying a replacement rule in a template specification.

Replacement rules are used inside a \FeaturePhp\Specification\TemplateSpecification to specify rules for replacing parts of a \FeaturePhp\File\TemplateFile. The replacement rules settings follow the structure:

  • root (object)
    • from (string) - a string in the template file (exact match)
    • to (string) - a replacement string

or, alternatively:

  • root (object)
    • assign (string) - a variable in the template file with the form {{assign}}
    • to (string) - a replacement string

or, alternatively:

  • root (object)
    • regex (string) - a regular expression
    • to (string) - a replacement string

Instead of "to":

  • "eval" can be specified to evaluate arbitrary PHP code that returns a replacement string
  • "value" can be specified to use the value of a \FeaturePhp\Model\ValueFeature as the replacement string. To use this, you need to set the configuration with \FeaturePhp\Specification\setConfiguration(). If "value" is true, just uses the supplied value. If it is "integer", an integer value is expected. If it is any other string, it is evaluated as PHP code with $value defined (returning true uses the value, false indicates an invalid value and a string overrides the value).
package Default
inherited_from \FeaturePhp\Settings

 Methods

Creates a replacement rule.

__construct(array $cfg, string $directory = "."

The directory may be used to resolve relative paths in the settings.

inherited_from \FeaturePhp\Settings::__construct()

Parameters

$cfg

array

a plain settings array

$directory

string

the directory the settings apply to

Creates settings.

__construct(array $cfg, string $directory = "."
Inherited

The directory may be used to resolve relative paths in the settings.

Parameters

$cfg

array

a plain settings array

$directory

string

the directory the settings apply to

Applies a replacement rule to a string.

apply(string $string) : string

Possible matching mechanisms include exact matches, Handlebars-style template variables and regular expressions.

Parameters

$string

string

Returns

string

Creates settings.

fromArray(array $cfg, string $directory = "."
InheritedStatic

Parameters

$cfg

array

a plain settings array

$directory

string

the directory the settings apply to

Creates settings from a JSON-encoded file.

fromFile(string $fileName) : \FeaturePhp\Settings
InheritedStatic

Parameters

$fileName

string

Returns

\FeaturePhp\Settings

Creates settings from a JSON-encoded string.

fromString(string $json, string $directory = ".") : \FeaturePhp\Settings
InheritedStatic

Parameters

$json

string

$directory

string

the directory the settings apply to

Returns

\FeaturePhp\Settings

Returns a setting.

get() : mixed
Inherited

A setting path can be supplied variadically.

Returns

mixed

Returns the settings' directory.

getDirectory() : string
Inherited

Returns

string

Returns a setting in a plain settings array.

getIn(array $cfg) : mixed
Inherited

A setting path can be supplied variadically.

Parameters

$cfg

array

Returns

mixed

Creates an instance of a class from a plain settings array.

getInstance(string|array|boolean $object, string $klass) : \FeaturePhp\$class
Inherited

If a string is given, the class is instantiated from a file. If an array("data" => ...) is given, the class is instantiated from a string. If another array is given, the class is instantiated from that array. If true is given, the class is instantiated from an empty array.

Parameters

$object

stringarrayboolean

$klass

string

Returns

\FeaturePhp\$class

Returns an optional setting, defaulting to a value.

getOptional(mixed $defaultValue) : mixed
Inherited

A setting path can be supplied variadically.

Parameters

$defaultValue

mixed

Returns

mixed

Returns a path in the context of the settings' directory.

getPath(string $path) : string
Inherited

Parameters

$path

string

Returns

string

Returns a setting if a predicate is satisfied.

getWith(string $key, callable $predicate) : mixed
Inherited

Throws \FeaturePhp\InvalidSettingsException if the predicate fails.

Parameters

$key

string

$predicate

callable

Returns

mixed

Creates empty settings in the context of a directory.

inDirectory(string $directory) 
InheritedStatic

Parameters

$directory

string

the directory the settings apply to

Sets the configuration used to get feature values.

setConfiguration(\FeaturePhp\Model\Configuration $configuration) 
Static

Parameters

$configuration

\FeaturePhp\Model\Configuration

Returns whether a plain settings array has a key.

has(string $key, array $cfg = null) : boolean
Inherited

If no settings array is given, the internal settings array is assumed.

Parameters

$key

string

$cfg

array

Returns

boolean

Sets a setting.

set(string $key, mixed $value) 
Inherited

A setting path can be supplied variadically.

Parameters

$key

string

$value

mixed

Sets a setting if it is not already set.

setOptional(string $key, mixed $value) 
Inherited

Parameters

$key

string

$value

mixed

Returns a setting in a plain settings array.

_get(array $cfg) : mixed
Inherited

A setting path can be supplied variadically.

Parameters

$cfg

array

Returns

mixed

Sets a setting in a plain settings array.

_set(array $cfg, array $args) 
Inherited

Parameters

$cfg

array

$args

array

a setting path followed by the setting's new value

Returns the configuration used to get feature values.

getConfiguration() : \FeaturePhp\Model\Configuration
Static

Returns

\FeaturePhp\Model\Configuration

Returns the rule's replacement string.

getReplacementString() : string

This may call eval which seems evil, but only the product line administrator can use this in a configuration file.

Returns

string

 Properties

 

a plain settings array

$cfg : array

Default

inherited_from \FeaturePhp\Settings::cfg
 

the internal plain settings array

$cfg : array

Default

 

the configuration used to get feature values

$configuration : \FeaturePhp\Model\Configuration

Default

null
Static