symfonyboot / symfonyboot-bundle
此包已被废弃且不再维护。作者建议使用 https://github.com/silasyudi/restboot-bundle 包。
使用 Symfony 开发 Rest APIs 的注解包,使其更加容易和快速。
v3.0.0
2023-06-29 03:06 UTC
Requires
- php: >=7.4
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- doctrine/annotations: ^2.0
- doctrine/doctrine-bundle: ^2
- doctrine/orm: ^2
- jms/serializer: ^3.26
- symfony/flex: ^1.3
- symfony/framework-bundle: ^4.4 | ^5
- symfony/property-access: ^4.4 | ^5
- symfony/property-info: ^4.4 | ^5
- symfony/yaml: ^4.4 | ^5
Requires (Dev)
- phpunit/phpunit: ^9.5
README
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(); ...
文档
英语 🇺🇸
葡萄牙语 🇧🇷