gendoria/param-converter-bundle

添加了几个额外的参数转换器

安装: 35

依赖: 0

建议者: 0

安全性: 0

星星: 1

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.2.0 2016-06-13 13:58 UTC

This package is auto-updated.

Last update: 2024-09-24 18:51:03 UTC


README

Gendoria 参数转换器包为 Framework Extra Bundle 添加了一些转换器。

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight Downloads Latest Stable Version

该包应与高于 5.4 版本的 PHP 所有版本兼容(请检查构建状态)。

安装

步骤 1:下载包

打开命令行控制台,进入您的项目目录并执行以下命令以下载此包的最新稳定版本

$ composer require gendoria/param-converter "~1"

此命令要求您全局安装了 Composer,具体请参阅 Composer 文档中的安装章节

步骤 2:启用 Framework Extra 包

此包需要启用 Framework Extra 包。您可以通过将其添加到项目中 app/AppKernel.php 文件中注册的包列表中来完成此操作(如果尚未完成)

<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
        );
        // ...
    }
    // ...
}

步骤 3:启用包

然后,通过将其添加到项目中 app/AppKernel.php 文件中注册的包列表中来启用该包

<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Gendoria\ParamConverterBundle\GendoriaParamConverterBundle(),
        );
        // ...
    }
    // ...
}

使用方法

您可以使用此包中的参数转换器,就像使用其他任何参数转换器一样。

服务参数转换器

您可以通过添加以下调用来使用它:

@ParamConverter("parameter_name", converter="service_param_converter", options={"service" = "service_id", "method" = "service_method", "arguments" = {"%requestParamName%", "@otherServiceId", "someParameter"})

其中第一个参数是参数名称,转换器指定要使用的转换器,选项 - 配置转换器。

必需的选项是服务(服务 ID)和方法(服务方法)。此外,您可以使用 "arguments" 选项传递方法参数。

参数是一个服务参数列表。它们有三种类型:

  • 简单参数。这是默认选项。不添加额外的解析。
  • 请求参数。您必须用 % 符号括住参数名称,并且转换器将从请求中提取它。例如,当您将参数定义为 %myParam% 时,服务将尝试从请求中获取参数 myParam
  • 服务参数。当您在参数前加上 @ 字符时,它将被视为服务 ID。解析器将尝试从服务容器中获取服务并将其注入到方法调用中。如果服务未在容器中注册,则将抛出 \InvalidArgumentException

转换器参数仅在转换可能与其他参数转换器(尤其是默认的 DoctrineParamConverter)冲突时需要。

ArrayObject 参数转换器

此参数转换器可以用来将参数拆分成对象数组。参数必须是一个具有分隔值的字符串。默认分隔符是逗号,但您可以使用自己的、自定义的分隔符。

要调用参数转换器,您应使用以下注解:

@ParamConverter("parameter_name")

或使用自定义分隔符:

@ParamConverter("parameter_name", options={"delimiter" = "|"})

其中函数类型提示中的参数类型是 ArrayObject