okneloper / placeholders
批量替换(HTML)字符串中的占位符。
v1.0.0
2016-11-08 21:46 UTC
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2024-09-20 09:13:14 UTC
README
批量替换(HTML)字符串中的占位符。
它在替换前提供所有占位符的完整列表。当你有很多占位符且只想获取所需的那些时,这很有用。
例如,如果你的数据存储在数据库中或由远程API返回,通常你希望在一个查询/请求中获取所有数据。
##用法
$content = ' <div class="intro-message"> <h1>:#:home.h1:#:</h1> <h3>:#:home.h2:#:</h3> </div> '; $content = $processor->process($content); echo $content; /* <div class="intro-message"> <h1>Welcome to the site!</h1> <h3>Slogan goes here</h3> </div> */
请参阅完整示例以获取实现细节。
示例
/** * Define a placeholder translator by implementing Okneloper\Placeholders\Translator interface */ class ExamplePlaceholderTranslater implements Translator { /** * @param PlaceholderCollection $placeholders * @return array */ public function translate($placeholders) { $keys = $placeholders->keys(); // fetch placeholders using keys from database // ... $data = [ 'home.h1' => 'Welcome to the site!', 'home.h2' => 'Slogan goes here', ]; $replacements = []; foreach ($placeholders as $placeholder) { $replacements[$placeholder->placeholder] = $data[$placeholder->key]; // optionally apply filters found in $placeholder->filters } return $replacements; } } // Batch replace placeholders in a response /** * Handle the event. * * @param Request $request * @param Response $response */ public function handle(Request $request, Response $response) { $content = $response->getContent(); $processor = new Processor(new ExamplePlaceholderTranslater()); $content = $processor->process($content); $response->setContent($content); }