PHP code example of hds-solutions / laravel-api-helpers
1. Go to this page and download the library: Download hds-solutions/laravel-api-helpers 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/ */
hds-solutions / laravel-api-helpers example snippets
namespace App/Http/Controllers/Api;
use App\Models\Country;
use App\Http\Filters;
use App\Http\Relations;
use App\Http\Orders;
use HDSSolutions\Laravel\API\Actions\PaginateResults;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Pipeline;
class CountryController extends Controller {
public function index(Request $request): ResourceCollection {
return new ResourceCollection(
Pipeline::send(Country::query())
->through([
Filters\CountryFilters::class,
Relations\CountryRelations::class,
Orders\CountryOrders::class,
PaginateResults::class,
])
->thenReturn()
);
}
public function show(Request $request, int $country_id): JsonResource {
return new Resource(
Pipeline::send(Country::where('id', $country_id))
->through([
Relations\CountryRelations::class,
])
->thenReturn()
->firstOrFail()
)
);
}
}
namespace App/Http/Controllers/Api;
use App\Models\Country;
use App\Http\Filters;
use App\Http\Relations;
use App\Http\Orders;
use HDSSolutions\Laravel\API\Actions\PaginateResults;
use HDSSolutions\Laravel\API\ResourceRequest;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Pipeline;
class CountryController extends Controller {
public function index(ResourceRequest $request): JsonResponse | ResourceCollection {
// forget cached data if is requested
if ($request->boolean('cache', true) === false) {
cache()->forget($request->hash(__METHOD__));
}
// remember data for 8 hours, using request unique hash as cache key
return cache()->remember(
key: $request->hash(__METHOD__),
ttl: new DateInterval('PT8H'),
callback: fn() => (new ResourceCollection($request,
Pipeline::send(Country::query())
->through([
Filters\CountryFilters::class,
Relations\CountryRelations::class,
Orders\CountryOrders::class,
PaginateResults::class,
])
->thenReturn()
)
)->response($request)
);
}
public function show(Request $request, int $country_id): JsonResponse | JsonResource {
if ($request->boolean('cache', true) === false) {
cache()->forget($request->hash(__METHOD__));
}
return cache()->remember(
key: $request->hash(__METHOD__),
ttl: new DateInterval('PT8H'),
callback: fn() => (new Resource(
Pipeline::send(Model::where('id', $country_id))
->through([
Relations\CountryRelations::class,
])
->thenReturn()
->firstOrFail()
)
)->response($request)
);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.