1. Go to this page and download the library: Download rexlabs/laravel-smokescreen 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/ */
rexlabs / laravel-smokescreen example snippets
class MyController extends Controller
{
public function index()
{
return Smokescreen::transform(Post::paginate());
}
public function show(Post $post)
{
return Smokescreen::transform($post);
}
}
return [
// Set the default namespace for resolving transformers when
// they are not explicitly provided.
'transformer_namespace' => 'App\Transformers',
// Override the default serializer to be used.
// If not specified - the Smokescreen DefaultSerializer will be used.
'default_serializer' => null,
// Set the default request parameter key which is parsed for
// the list of
$smokescreen->transform(Post::find(1));
$smokescreen->transform(Post::all());
$smokescreen->transform(Post::paginate());
$smokescreen->transform(Post::find(1), new SomeOtherTransformer);
$smokescreen->item(Post::find(1));
$smokescreen->item(Post::find(1), new SomeOtherTransformer);
$smokescreen->collection(Post::all());
$smokescreen->collection(Post::paginate());
$smokescreen->collection(Post::paginate(), new SomeOtherTransformer);
$smokescreen->withResponse(function (JsonResponse $response) {
$response->header('X-Crypto-Alert', 'all your coins are worthless!');
});
$smokescreen->response(); // Data is generated, response object is built and cached
$smokescreen->response(500); // NOPE - Cached, wont be changed!
$smokescreen->clearResponse();
$smokescreen->response(500); // Response is re-generated
class PostTransformer extends AbstractTransformer
{
protected $ 'comments' => 'relation',
];
public function transform(Post $post): array
{
return [
'id' => $post->id,
'user' => $this->when($post->user_id, [
'id' => $post->user_id,
]),
'title' => $post->title,
'summary' => $post->summary,
'body' => $post->body,
'created_at' => utc_datetime($post->created_at),
'updated_at' => utc_datetime($post->updated_at),
];
}
public function