frdl / php-templater
模板替换器(`Angular-style`)
v0.0.4
2020-02-04 06:50 UTC
Requires
- php: >=7.2.0
- frdl/context: >=0.0.4
- wmde/php-vuejs-templating: ^1.0.1
This package is auto-updated.
Last update: 2024-09-04 17:05:28 UTC
README
此包可以处理和渲染类似于 AngularJS 的模板。
模板 {{my.var}} 对应 ['my'=>['var'=>'Hello, World']]
示例
frdl\Templater\SimpleDotNotationReplacer
基于正则表达式。
$arr = [ 'test' => [ 'message' => 'Hello, World', ], ]; echo \frdl\Templater\SimpleDotNotationReplacer::replace(\frdl\Context::create($arr), 'Message: {{test.message}}'); //Message: Hello, World
frdl\Templater\AdvancedReplacer
基于https://github.com/wmde/php-vuejs-templating .
$arr = [ 'show' => false, 'test' => [ 'message' => 'Hello, World', ], 'items' => [ [ 'property' => 'value1' ], [ 'property' => 'value2' ], ], ]; echo \frdl\Templater\AdvancedReplacer::replace(\frdl\Context::create($arr), '<div> <h1 ng-bind="title"></h1> <p>Message: {{test.message}}</p> <p ng-show="show">this should be hidden</p> <p ng-if="!show">this should be visible</p> <p><a ng-repeat="item in items">{{item.property|ucfirst}}</a></p> </div>'); /* //Renders to: <div> <h1><p>Template Test Title</p></h1> <p>Message: Hello, World</p> <p>this should be visible</p> <p><a>Value1</a><a>Value2</a></p> </div> */