dropelikeit/laravel-responsefactory

A nice answer factory for Laravel based on the jms/serializer

1.0.0 2024-09-29 18:55 UTC

This package is auto-updated.

Last update: 2024-11-24 22:12:34 UTC


README

Library tester Coverage Status PHP Version Require Monthly Downloads Daily Downloads Total Downloads Latest Stable Version License composer.lock Mutation testing badge

ResponseFactory for Laravel

The ResponseFactory is a successor to the laravel-jms-serializer package that focused on this. Using the JMS serializer within the ResponseFactory to create Laravel responses and thus remain in the OOP environment and not use functions or own response objects within the controller. In addition, it should be ensured that everything is processed in an object-oriented manner up to the output.

JMS-Serializer: https://github.com/schmittjoh/serializer

Installation

 composer require dropelikeit/laravel-responsefactory

Support note

How to use

Laravel uses Package Auto-Discovery, so you do not need to add the service provider manually.

For example, to use the ResponseFactory in a controller, simply insert the ResponseFactory in the constructor.

    <?php 
    namespace App\Http\Controller;

    use Dropelikeit\ResponseFactory\Http\Responses\ResponseFactory;
    use Symfony\Component\HttpFoundation\JsonResponse;

    final class ExampleController extends Controller 
    {
        public function __construct(private ResponseFactory $responseFactory) {}

        public function myAction(): JsonResponse
        {
            $myDataObjectWithSerializerAnnotations = new Object('some data');
            return $this->responseFactory->create($myDataObjectWithSerializerAnnotations);
        }
    }

Publish the ResponseFactory Config with the command

    php artisan vendor:publish

After that you will see a config file in your config folder named "responsefactory.php".

Upgrade

It is the first stable version, therefore it make no sense to read an upgrade guide.

Documentation

Collaborators

Contributors

Contribution

Help us to improve this project by reporting bugs, enhancement requests or other suggestions via the issue tracker.

After creating the issue tracker, it is also possible to create a PR with reference to the issue.

Thank you very much for your support!