Skip to content

php-skir/client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Skir Client

Laravel Skir Client

Tests Coverage Composer PHP License

Laravel package for calling SkirRPC services through generated typed clients and Saloon.

Features

Quick start

Install the client and standard PHP generator:

composer require php-skir/client
npm install --save-dev skir skir-php-generator

Create skir-src/admin/users.skir:

struct GetUserRequest {
  user_id: int32;
}

struct User {
  user_id: int32;
  name: string;
}

method GetUser(GetUserRequest): User = 3180856469;

Configure the root skir.yml:

generators:
  - mod: skir-php-generator
    outDir: skir/skirout
    config:
      namespace: Skir

Skir owns the output directory and may replace its contents during generation.

Generate the client, configure Composer autoloading, and publish the Laravel config:

npx skir gen
npx skir-php-generator configure-composer
composer dump-autoload
php artisan vendor:publish --tag=skir-client-config

Configure the server endpoint and matching wire codec:

SKIR_CLIENT_BASE_URL=https://api.example.test
SKIR_CLIENT_ENDPOINT=/api/skir
SKIR_CLIENT_CODEC=dense_json

Call the service through the generated typed client:

use Skir\Admin\GetUserRequest;
use Skir\Admin\SkirRpcClient;
use Skir\Client\SkirClient as TransportSkirClient;

$client = new SkirRpcClient(app(TransportSkirClient::class));
$user = $client->getUser(new GetUserRequest(userId: 42));

echo $user->name;

Generator alternatives

Standard PHP is the dependency-light baseline. Use skir-laravel-data-generator for Laravel Data or skir-simple-data-objects-generator for Simple Data Objects.

Documentation

About

Laravel SkirRPC client package powered by Saloon.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages