mapado/request-fields-parser

将类似于 `id,firstname,lastname,jobs{startDate,position,company{id,recordNumber}}` 的字符串转换为数组

v3.1.0 2023-12-08 13:56 UTC

This package is auto-updated.

Last update: 2024-09-08 15:39:00 UTC


README

将类似于 id,firstname,lastname,jobs{startDate,position,company{id,recordNumber}} 的字符串转换为以下数组

[
    'id' => true,
    'firstname' => true,
    'lastname' => true,
    'jobs' => [
        'startDate' => true,
        'position' => true,
        'company' => [
            'id' => true,
            'recordNumber' => true,
        ],
    ]
]

你可以把它想象成是 explode 的加强版。

还实现了一个 reverseParse 函数,用于执行相反的转换。

安装

composer require mapado/request-fields-parser

使用方法

use Mapado\RequestFieldsParser\Parser;

$parser = new Parser();

$outArray = $parser->parse($string);

$outString = $parser->reverseParse($array);

可扩展性

你可以这样装饰解析器

use Mapado\RequestFieldsParser\ParserInterface;

class ExtendedParser implements ParserInterface
{
    /**
     * @var ParserInterface
     */
    private $decoratedParser;

    public function __construct(ParserInterface $decoratedParser)
    {
        $this->decoratedParser = $decoratedParser;
    }

    public function parse(string $string): array
    {
        // do stuff and return an array
    }
}

贡献

只需运行 make test 来启动测试套件