bjoernffm/spintax

Spintax {解析|处理}库。

v1.1.0 2024-06-16 16:17 UTC

This package is not auto-updated.

Last update: 2024-09-22 17:27:25 UTC


README

GitHub GitHub release (latest by date) GitHub top language PHP Composer Codacy Badge StyleCI

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 许可证发布。