mbvienasbaitas / strapi-laravel-client
Strapi Client wrapper for Laravel.
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0|^11.0
- mbvienasbaitas/strapi-php-client: ^v1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.5
- orchestra/testbench: ^7.19
- phpunit/phpunit: ^9.5
Suggests
- guzzlehttp/guzzle: Use Guzzle ^7 as HTTP client
- http-interop/http-factory-guzzle: Factory for guzzlehttp/guzzle
README
Laravel package to enable easier Strapi client management provided by mbvienasbaitas/strapi-php-client package.
Installation
To get started, simply require the project using Composer.
You will also need to install packages that "provide" psr/http-client-implementation
and psr/http-factory-implementation
. which is required by mbvienasbaitas/strapi-php-client
composer require mbvienasbaitas/strapi-laravel-client
Usage
Default client configuration
Default client can be configured via environment. Here is a list of available configuration options.
Default client using facade
use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest; use VienasBaitas\Strapi\Client\Laravel\Facades\Strapi; $collection = Strapi::collection('pages'); $response = $collection->index(IndexRequest::make());
Default client using injection
use VienasBaitas\Strapi\Client\Client; use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest; class BlogController { public function index(Client $client) { $collection = $client->collection('pages'); return $collection->index(IndexRequest::make()); } }
Custom client using facade
use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest; use VienasBaitas\Strapi\Client\Laravel\Facades\Strapi; $client = Strapi::client('custom'); $collection = $client->collection('pages'); $response = $collection->index(IndexRequest::make());
Custom client using injection
use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest; use VienasBaitas\Strapi\Client\Laravel\Contracts\Factory; class BlogController { public function index(Factory $factory) { $collection = $factory->client('custom')->collection('pages'); return $collection->index(IndexRequest::make()); } }
Using custom client and request factory interfaces
Custom client and request factory resolved implementations could be bound using built in resolver functionality.
Place snippets shown below in your ApplicationServiceProvider
.
use VienasBaitas\Strapi\Client\Laravel\Strapi; Strapi::resolveRequestFactoryUsing(function () { // return \Psr\Http\Client\ClientInterface implementation }); Strapi::resolveRequestFactoryUsing(function () { // return \Psr\Http\Message\RequestFactoryInterface implementation });
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
Alternatives
License
The MIT License (MIT). Please see License File for more information.