1. Go to this page and download the library: Download mops1k/json-rpc-bundle 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/ */
mops1k / json-rpc-bundle example snippets
use JsonRpcBundle\Attribute\AsRpcMethod;
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\GreaterThanOrEqual;
#[AsRpcMethod('methodWithoutContract')]
class MethodWithoutContract
{
public function __invoke(int $id): int
{
return $id;
}
}
use JsonRpcBundle\Attribute\AsRpcMethod;
use JsonRpcBundle\Attribute\RpcMethodContract;
use JsonRpcBundle\Tests\Stubs\Contract\Contract;
use Symfony\Component\Validator\Constraints as Assert;
readonly class Contract
{
public function __construct(
#[Assert\GreaterThanOrEqual(0)]
public int $id,
#[Assert\NotBlank(allowNull: false)]
public ?string $text = null,
) {
}
}
#[AsRpcMethod('methodWithContract')]
#[RpcMethodContract(Contract::class)]
class MethodWithContract
{
public function __invoke(Contract $contract): array
{
return [
'id' => $contract->id,
'text' => $contract->text,
];
}
}
use JsonRpcBundle\Attribute\AsRpcMethod;
use JsonRpcBundle\MethodResolver\ValidateMethodParametersInterface;
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\GreaterThanOrEqual;
use Symfony\Component\Validator\Constraints\GroupSequence;
#[AsRpcMethod('methodWithoutContract')]
class MethodWithoutContract implements ValidateMethodParametersInterface
{
public function __invoke(int $id): int
{
return $id;
}
public function configureValidation(): Collection
{
return new Collection([
'id' => [
new GreaterThanOrEqual(0),
],
], groups: ['rpc']);
}
public function validationGroups(): array|string|GroupSequence|null
{
return ['rpc'];
}
}
use JsonRpcBundle\Attribute\AsRpcMethod;
#[AsRpcMethod('updateUser')]
class UpdateUser
{
public function __invoke(int $id): void
{
// some logic
}
}
use JsonRpcBundle\Attribute\AsRpcMethod;
#[AsRpcMethod(methodName: 'update', namespace: 'user')]
class UpdateUser
{
public function __invoke(int $id): void
{
// some logic
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.