chilldev/spintax

Spintax {解析|处理}库。

此包的官方仓库似乎已消失,因此已冻结该包。

0.0.1 2014-01-24 21:29 UTC

This package is not auto-updated.

Last update: 2019-03-08 17:32:21 UTC


README

ChillDevSpintax 是一个库,它提供了在 Symfony2 DI 中常用的一些模式实现。

Build Status Scrutinizer Quality Score Coverage Status Dependency Status SensioLabsInsight

安装

此库作为Composer包提供。要安装它,只需将以下依赖定义添加到您的 composer.json 文件中

"chilldev/spintax": "dev-master"

如果您想使用特定版本,可以将 dev-master 替换为不同的约束。

注意: 此库需要 PHP 5.4

使用方法

最简单的使用方法是将 spintax 字符串解析并生成它的随机变体,这通常能满足您的需求

use ChillDev\Spintax\Parser;

$spintax = Parser::parse('Schrödinger’s Cat is {dead|alive}.');
$string = $spintax->generate();

但我们的库中还有更多功能。首先,它支持嵌套结构

use ChillDev\Spintax\Parser;

$spintax = Parser::parse('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.');
$string = $spintax->generate();

还没有结束!使用我们出色的库,您可以检测用于生成给定变体的路径,并在以后重用它

use ChillDev\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 ChillDev\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 ChillDev\Spintax\Parser;

echo Parser::replicate('I {love {PHP|Java|C|C++|JavaScript|Python}|hate Ruby}.', '0,0');

有关更高级的内容,请参阅高级使用文档或甚至内部描述

资源

贡献

您想帮助改进此项目吗?只需 fork 它并提交一个pull request。您可以自己完成所有工作,无需询问是否可以,只需做所有想做的事情!

此项目在 MIT许可证 下发布。

作者

ChillDevSpintaxChillout Development 提供。

贡献者列表