symfonyboot/symfonyboot-bundle

此包已被废弃且不再维护。作者建议使用 https://github.com/silasyudi/restboot-bundle 包。

使用 Symfony 开发 Rest APIs 的注解包,使其更加容易和快速。

安装: 255

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v3.0.0 2023-06-29 03:06 UTC

This package is auto-updated.

Last update: 2023-06-29 03:07:23 UTC


README

Tests Maintainability Test Coverage

Symfony 包,用于加速 rest APIs 的开发。

概要

语言 / Idioma

阅读葡萄牙语版本 🇧🇷 这里

安装

composer require silasyudi/restboot-bundle

要求

  • PHP 7.4+
  • Composer
  • Symfony 4.4+ / 5+
  • Doctrine 2+

功能

在控制器方法中将有效载荷转换为对象

使用 @Body 和 @Query 注解,您可以在控制器方法中自动将您的有效载荷和查询转换为对象。

没有 RestBoot 的示例

/**
 * Payload converted with some serializer
 * @Route("/myAction", methods={"POST"}) 
 */
public function __invoke(Request $request, SerializerInterface $serializer)
{
    $myObject = $serializer->deserialize(
        $request->getContent(),
        MyObject::class,
        'json'
    );
    ...

使用 RestBoot 的示例

use SilasYudi\RestBootBundle\Rest\Annotation\Body;

/**
 * Payload converted with @Body annotation
 * @Route("/myAction", methods={"POST"})
 * @Body("myObject")
 */
public function __invoke(MyObjectDTO $myObject)
{
    ...

轻松管理 Doctrine 事务

使用 @Transaction 注解,您可以减少 Doctrine 事务管理的冗余。

没有 RestBoot 的示例

/**
 * @Route("/myAction", methods={"POST"}) 
 */
public function __invoke()
{
    $connection = $this->getDoctrine()->getConnection(); 

    try {
        $connection->beginTransaction();
            
        $this->service->someAction();

        if ($connection->isTransactionActive()) {
            $connection->commit();
        }
    } catch (SomeException $exception) {
        if ($connection->isTransactionActive()) {
            $connection->rollback();
        }
    }

    ...

使用 RestBoot 的示例

use SilasYudi\RestBootBundle\Transaction\Annotation\Transaction;

...

/**
 * @Route("/myAction", methods={"POST"})
 * @Transaction("myConnection")
 */
public function __invoke()
{
    $this->service->someAction();
    ...

文档

英语 🇺🇸

葡萄牙语 🇧🇷