PHP code example of quonain / smart-response
1. Go to this page and download the library: Download quonain/smart-response library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
quonain / smart-response example snippets
use Illuminate\Http\Request;
use Quonain\SmartResponse\Traits\HasSmartResponse;
class UserController extends Controller
{
use HasSmartResponse;
public function index(Request $request)
{
$users = User::paginate(15);
return $this->smartResponse(
request: $request,
data: UserResource::collection($users),
view: 'users.index',
message: 'users.fetched', // translation key (optional)
);
}
public function store(Request $request)
{
$user = User::create($request->validated());
return $this->smartCreated($user, 'users.created');
}
}
return $this->smartResponse(
request: $request,
data: $data,
view: 'users.index',
viewData: ['title' => 'Users'],
message: 'Success',
success: true,
errors: null,
meta: ['custom' => 'value'],
status: 200,
route: 'users.index', // web redirect
routeParameters: [],
format: null, // auto: json | xml
flash: true,
toast: false,
cacheKey: null,
cacheTtl: null,
headers: ['X-Custom' => '1'],
inertiaComponent: 'Users/Index',
useInertia: false,
useLivewire: false,
);
return $this->smartSuccess($users, 'Users loaded');
return $this->smartCreated($user, 'users.created');
return $this->smartNoContent();
return $this->smartNotFound('error.not_found');
return $this->smartUnauthorized();
return $this->smartForbidden('error.forbidden');
return $this->smartValidationError($validator->errors());
use Quonain\SmartResponse\Facades\SmartResponse;
SmartResponse::success($data, 'Done');
SmartResponse::created($data, 'Created');
SmartResponse::notFound('Not found');
// Global helpers (no trait
response()->smart($data, 'OK');
response()->smartSuccess($data, 'Saved');
response()->smartError('Failed', ['code' => 'X'], 400);
response()->smartCreated($data, 'Created');
response()->smartNotFound('Not found');
return $this->smartResponse(
request: $request,
data: User::paginate(20),
view: 'users.index',
);
return $this->smartResponse(
request: $request,
data: User::orderBy('id')->cursorPaginate(15),
);
// API Resource collection
return $this->smartResponse(
request: $request,
data: UserResource::collection($users),
view: 'users.index',
);
// Force or auto-detect XML
return $this->smartResponse(request: $request, data: $users, format: 'xml');
// config/smart-response.php
'meta' => [
'enabled' => true,
'est-Id',
'
// Uses config defaults (429 + retry_after_seconds)
return smart_rate_limit_response();
// Custom message and seconds
return smart_rate_limit_response('Slow down', 120);
return $this->smartResponse(
request: $request,
data: $expensiveData,
cacheKey: 'users.index',
cacheTtl: 120,
);
return $this->smartResponse(
request: $request,
message: 'User created',
route: 'users.index',
toast: true,
status: 201,
);
use Quonain\SmartResponse\Exceptions\Handler\SmartResponseExceptionHandler;
->withExceptions(function (Exceptions $exceptions) {
$exceptions->render(function (Throwable $e, $request) {
return app(SmartResponseExceptionHandler::class)->render($request, $e);
});
})
return $this->smartResponse(message: 'users.fetched');
// → lang/vendor/smart-response/en/messages.php
// config/smart-response.php
'inertia' => ['enabled' => true],
return $this->smartResponse(
request: $request,
data: $users,
inertiaComponent: 'Users/Index',
useInertia: true,
);
Route::middleware('smart.response')->group(function () {
// ...
});
use Quonain\SmartResponse\Events\SmartResponsePreparing;
use Quonain\SmartResponse\Events\SmartResponsePrepared;
Event::listen(SmartResponsePreparing::class, fn ($e) => /* mutate payload */);
Event::listen(SmartResponsePrepared::class, fn ($e) => /* inspect response */);
use Quonain\SmartResponse\Support\OpenApiExample;
OpenApiExample::successExample();
OpenApiExample::errorExample();
bash
# Configuration
php artisan vendor:publish --tag=smart-response-config
# Translations
php artisan vendor:publish --tag=smart-response-lang
text
smart-response/
├── config/smart-response.php
├── lang/en/messages.php
├── src/
│ ├── Contracts/
│ ├── Detectors/ # API vs Web detection
│ ├── DTO/
│ ├── Formatters/ # JSON, XML
│ ├── Builders/
│ ├── Services/
│ ├── Traits/ # HasSmartResponse
│ ├── Facades/
│ ├── Events/
│ ├── Exceptions/
│ ├── Http/Middleware/
│ ├── Macros/
│ └── Support/ # MetaEnricher, Pagination, i18n, …
├── tests/
├── examples/
└── README.md