Generate Response Class
This package allows you to generate a class that implements Responsable Interface, (*1)
Installation
it can be used in Laravel 5.5 or higher, (*2)
You can install the package via composer:, (*3)
``` bash
composer require te7a-houdini/response-generate, (*4)
In Laravel 5.5 the service provider will automatically get registered. so you don't have to register the provider in `config/app.php`
## Usage
`php artisan generate:response ExampleResponse`
you will find a new class created under `App\Http\Responses` namespace which will look like
```php
namespace App\Http\Responses;
use Illuminate\Contracts\Support\Responsable;
class ExampleResponse implements Responsable
{
/**
* Create an HTTP response that represents the object.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function toResponse($request)
{
}
}
Example
lets say in your controller you are doing something like that, (*5)
public function show($id)
{
$post = Post::find($id);
if (request()->ajax)
{
return response()->json(['data' => $post]);
}
else
{
return view('posts.show',compact('post'));
}
}
by using the new generated response class we can do that, (*6)
public function show($id)
{
$post = Post::find($id);
return new PostResponse($post);
}
class PostResponse implements Responsable
{
protected $post;
public function __construct ($post)
{
$this->post = $post;
}
/**
* Create an HTTP response that represents the object.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function toResponse($request)
{
if ($request->ajax())
{
return response()->json(['data' => $this->post]);
}
else
{
return view('posts.show',$post);
}
}
}
Credits
Resources
License
The MIT License (MIT). Please see License File for more information., (*7)