storinka / invoke-laravel
Invoke Laravel integration plugin.
666.666.666
2021-08-05 14:20 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- illuminate/contracts: ^8
- illuminate/support: ^8
- phpdocumentor/reflection-docblock: ^5.2
- storinka/invoke: ^v1.0-BETA-30
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2026-05-18 20:58:47 UTC
README
Invoke with Laravel.
Installation
- Install the package via composer:
composer require storinka/invoke-laravel:^2
- Register
InvokeProviderin theconfig/app.php:
return [ // ... "providers" => [ // ... \Invoke\Laravel\Providers\InvokeProvider::class, ], // ... ];
- Register invoke route in the
routes/api.php:
Route::any("/invoke/{method}", \Invoke\Laravel\Http\Controllers\InvokeController::class);
- Create folders for methods, data, types and validators:
mkdir app/Http/Methods \ app/Http/Data \ app/Http/Types \ app/Http/Validators
Usage
Create a type:
// app/Http/Data/UserResult.php use Invoke\Data; class UserResult extends Data { public int $id; public string $name; public string $email; }
Create a method:
// app/Http/Methods/Dec2Hex.php use Invoke\Method; use App\Http\Types\UserResult; class GetUserById extends Method { public int $id; protected function handle(): ?UserResult { $user = User::find($this->id); return UserResult::nullable($user); } }
Register the method:
// config/methods.php return [ \App\Http\Methods\GetUserById::class, ];
Try to invoke:
curl 'http://localhost:8000/api/invoke/getUserById?id=1'
Artisan commands
invoke:make:method
Create a new method.
Example:
php artisan invoke:make:method GerUsers
invoke:make:data
Create a new data.
Example:
php artisan invoke:make:data UserData
invoke:make:type
Create a new type.
Example:
php artisan invoke:make:type SomeType
invoke:make:validator
Create a new validator.
Example:
php artisan invoke:make:validator ValidEmail
invoke:make:pipe
Create a new pipe.
Example:
php artisan invoke:make:pipe ToUpperCase
Other
Accessing Invoke
$invoke = app(\Invoke\Invoke::class); $invoke->setMethod("someMethod", SomeMethod::class); $invoke->registeExtension(SomeExtension::class); // etc..
Set response headers
$response = app(\Symfony\Component\HttpFoundation\Response::class); $response->header('X-Some-Header', 'some value');