Download the PHP package dflydev/placeholder-resolver without Composer
On this page you can find all versions of the php package dflydev/placeholder-resolver. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dflydev/placeholder-resolver
More information about dflydev/placeholder-resolver
Files in dflydev/placeholder-resolver
Package placeholder-resolver
Short Description Given a data source representing key => value pairs, resolve placeholders like ${foo.bar} to the value associated with the 'foo.bar' key in the data source.
License MIT
Homepage https://github.com/dflydev/dflydev-placeholder-resolver
Informations about the package placeholder-resolver
Placeholder Resolver
Given a data source representing key => value pairs, resolve placeholders
like ${foo.bar}
to the value associated with the foo.bar
key in
the data source.
Placeholder Resolver is intended to be used at a relatively low level. For example, a configuration library could use Placeholder Resolver behind the scenes to allow for configuration values to reference other configuration values.
Example
Given the appropriate DataSourceInterface
implementation to provide
the above data as a set of key => value pairs, the Placeholder Resolver
would resolve the value of $dsnPattern
to mysql:dbname=example;host=127.0.0.1
.
Requirements
- PHP 5.3+
Usage
The RegexPlaceholderResolver
constructor accepts two additional arguments,
a placeholder prefix and a placeholder suffix. The default placeholder
prefix is ${
and the default placeholder suffix is }
.
To handle placeholders that look like <foo.bar>
instead of ${foo.bar}
,
one would instantiate the class like this:
Placeholders can recursively resolve placeholders. For example, given a data source with the following:
The placeholder ${${foo}.${bar}}
would internally be resolved to
${FOO.BAR}
before being further resolved to BAZ!
.
Resolved placeholders are cached using the CacheInterface
. The default
Cache
implementation is used unless it is explicitly set on the
Placeholder Resolver.
License
This library is licensed under the New BSD License - see the LICENSE file for details.
Community
If you have questions or want to help out, join us in the #dflydev channel on irc.freenode.net.
Not Invented Here
Much of the ideas behind this library came from Spring's Property Placeholder Configurer implementation.