involix / spintax
Spintax {解析|处理} 库。
v0.1.3
2020-05-13 22:00 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-14 07:22:35 UTC
README
Spintax 是一个库,提供了在 Symfony2 DI 中常用的某些模式的实现。
安装
此库作为 Composer 包 提供。要安装它,只需执行以下命令
composer require bjoernffm/spintax
注意:此库需要 PHP 7.2+。
用法
最简单的用法是解析 spintax 字符串并生成其随机变体,这通常能满足您的需求
use bjoernffm\Spintax\Parser; $spintax = Parser::parse('Schrödinger’s Cat is {dead|alive}.'); $string = $spintax->generate();
但我们的库中还有更多功能。首先,我们支持嵌套结构
use bjoernffm\Spintax\Parser; $spintax = Parser::parse('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.'); $string = $spintax->generate();
仍然没有结束!使用我们卓越的库,您可以检测用于生成给定变体的路径,并在以后重用它
use bjoernffm\Spintax\Parser; $path = []; $spintax = Parser::parse('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.'); // since $path is empty, random values will be used for missing indices and $path will be filled with them $string = $spintax->generate($path); // from now you can use $path to re-create the same combination // all these calls will keep returning same string value $spintax->generate($path); $spintax->generate($path); $spintax->generate($path); $spintax->generate($path); // this will force generating "I love Java." $path = [0, 1]; $spintax->generate($path);
路径从 0 开始计数,每个条目都是下一步。
您还可以使用部分路径来定义仅起始路径,所有缺失的部分将被随机选择
use bjoernffm\Spintax\Parser; $path = [0]; $spintax = Parser::parse('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.'); // this will generate one of "I love {}." variants $string = $spintax->generate($path);
为此,有一个快捷方法 Parser::replicate()
(您可以在快捷方法中使用逗号分隔的数字作为第二个参数的字符串)
use bjoernffm\Spintax\Parser; echo Parser::replicate('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.', '0,0');
资源
贡献
您想帮助改进此项目吗?只需 fork 它并提交一个 pull request。您可以做任何事情,不需要询问是否可以,只需做所有您想做的酷事情!
此项目在 MIT 许可证 下发布。