storinka / invoke
Invoke Core library
Installs: 1 796
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 3
Requires
- php: ^8.1
- ext-json: *
- ext-mbstring: *
- php-ds/php-ds: ^1.4
- psr/container: ^2.0 | ^1.0
Requires (Dev)
- mockery/mockery: dev-master
- phpunit/phpunit: ^9
- dev-master
- v2.x-dev
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- 2.0.0
- v1.x-dev
- v1.0-BETA-38
- v1.0-BETA-37
- v1.0-BETA-36
- v1.0-BETA-35
- v1.0-BETA-34
- v1.0-BETA-33
- v1.0-BETA-32
- v1.0-BETA-31
- v1.0-BETA-30
- v1.0-BETA-29
- v1.0-BETA-28
- v1.0-BETA-27
- v1.0-BETA-26
- v1.0-BETA-25
- v1.0-BETA-24
- v1.0-BETA-23
- v1.0-BETA-22
- v1.0-BETA-21
- v1.0-BETA-20
- v1.0-BETA-19
- v1.0-BETA-18
- v1.0-BETA-17
- v1.0-BETA-16
- v1.0-BETA-15
- v1.0-BETA-14
- v1.0-BETA-13
- v1.0-BETA-12
- v1.0-BETA-11
- v1.0-BETA-10
- v1.0-BETA-9
- v1.0-BETA-8
- v1.0-BETA-7
- v1.0-BETA-6
- v1.0-BETA-5
- v1.0-BETA-4
- v1.0-BETA-3
- v1.0-BETA-2
- v1.0-BETA-1
- v1.0-BETA
- v0.0.35
- v0.0.34
- v0.0.33
- v0.0.32
- v0.0.31
- v0.0.30
- v0.0.29
- v0.0.28
- v0.0.27
- v0.0.26
- v0.0.25
- v0.0.24
- v0.0.23
- v0.0.22
- v0.0.21
- v0.0.20
- v0.0.19
- v0.0.18
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- dev-v3/rewrite
- dev-fix/bad-enum-response
- dev-feature/interfaces
This package is auto-updated.
Last update: 2025-02-24 22:09:55 UTC
README
PHP library for building fast and modern web APIs.
Installation
The library is still work-in-progress.
composer require storinka/invoke:^2 storinka/invoke-http:^2
Basic example
- Create
index.php
use Invoke\Invoke; function add(float $a, float $b): float { return $a + $b; } Invoke::create([ "add" ])->serve();
- Run a server
php -S localhost:8000 index.php
- Make a request
curl 'localhost:8000/add?a=2&b=2' # { "result": 4 }
Complex example
- Create a type
use Invoke\Data; class UserResult extends Data { public int $id; public string $name; }
- Create a method to get list of users
use Invoke\Method; class GetUsers extends Method { protected function handle(int $page, int $perPage): array { $usersFromDB = getUsersFromDb($page, $perPage); return UserResult::many($usersFromDB); } }
- Setup Invoke
use Invoke\Invoke; Invoke::create([ "getUsers" => GetUsers::class ])->serve();
- Run a server and try to invoke:
curl 'localhost:8000/getUsers?page=1&perPage=10' # { "result": [ ... ] }