Symfony package to speed up the development of rest apis.
Leia a versão em português 🇧🇷 aqui.
composer require silasyudi/restboot-bundle
- PHP 7.4+
- Composer
- Symfony 4.4+ / 5+
- Doctrine 2+
With @Body and @Query annotations, you can automatically convert your payloads and queries into objects in the controller methods.
/**
* Payload converted with some serializer
* @Route("/myAction", methods={"POST"})
*/
public function __invoke(Request $request, SerializerInterface $serializer)
{
$myObject = $serializer->deserialize(
$request->getContent(),
MyObject::class,
'json'
);
...
use SilasYudi\RestBootBundle\Rest\Annotation\Body;
/**
* Payload converted with @Body annotation
* @Route("/myAction", methods={"POST"})
* @Body("myObject")
*/
public function __invoke(MyObjectDTO $myObject)
{
...
With @Transaction annotation, you can reduce the verbosity of Doctrine transaction management.
/**
* @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();
}
}
...
use SilasYudi\RestBootBundle\Transaction\Annotation\Transaction;
...
/**
* @Route("/myAction", methods={"POST"})
* @Transaction("myConnection")
*/
public function __invoke()
{
$this->service->someAction();
...
English 🇺🇸
Portuguese 🇧🇷