Package Data | |
---|---|
Maintainer Username: | Te7a-Houdini |
Maintainer Contact: | ahmedabdelftah95165@gmail.com (Ahmed-Te7a) |
Package Create Date: | 2017-09-01 |
Package Last Update: | 2017-09-01 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-30 15:06:49 |
Package Statistics | |
---|---|
Total Downloads: | 10 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 2 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
This package allows you to generate a class that implements Responsable Interface
it can be used in Laravel 5.5 or higher
You can install the package via composer:
composer require te7a-houdini/response-generate
In Laravel 5.5 the service provider will automatically get registered. so you don't have to register the provider in config/app.php
php artisan generate:response ExampleResponse
you will find a new class created under App\Http\Responses
namespace which will look like
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)
{
}
}
lets say in your controller you are doing something like that
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
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);
}
}
}
The MIT License (MIT). Please see License File for more information.