dropelikeit / laravel-responsefactory
A nice answer factory for Laravel based on the jms/serializer
Requires
- php: ^8.3
- ext-fileinfo: *
- illuminate/contracts: ^11.0
- illuminate/http: ^11.0
- illuminate/support: ^11.0
- jms/serializer: ^3.30
- webmozart/assert: ^1.11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- infection/infection: ^0.27.10
- larastan/larastan: ^2.9
- laravel/framework: ^v11.0
- orchestra/testbench: ^9.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.5
- psalm/plugin-laravel: ^2.10
- psalm/plugin-phpunit: ^0.19
- roave/security-advisories: dev-latest
- symfony/cache: ^7.0
- vimeo/psalm: ^5.23
README
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!