PHPackages                             yoanm/jsonrpc-params-symfony-validator-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. yoanm/jsonrpc-params-symfony-validator-sdk

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

yoanm/jsonrpc-params-symfony-validator-sdk
==========================================

Simple JSON-RPC params validator that use Symfony validator component

v3.0.1(8mo ago)1147.4k—3.7%2[2 PRs](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk/pulls)3MITPHPPHP ^8.0CI passing

Since May 13Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk)[ Packagist](https://packagist.org/packages/yoanm/jsonrpc-params-symfony-validator-sdk)[ RSS](/packages/yoanm-jsonrpc-params-symfony-validator-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (23)Used By (3)

JSON-RPC params symfony validator
=================================

[](#json-rpc-params-symfony-validator)

[![License](https://camo.githubusercontent.com/4a3e55d81bb39281321d9e51617380b45a7c93ba943b8c63ccfae83a317c51c4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2e737667)](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk)[![Code size](https://camo.githubusercontent.com/ef9ff700f1a915c4c721e6ec16ad97248f03470363da38ac4a4f8766af3b9ccc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c616e6775616765732f636f64652d73697a652f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2e737667)](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk)[![Dependabot Status](https://camo.githubusercontent.com/7553c8186f71bce2773a00ca3c13bad0ea33593d3feff1345acee0c3ef3ae01e/68747470733a2f2f666c61742e62616467656e2e6e65742f6769746875622f646570656e6461626f742f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b)](https://camo.githubusercontent.com/7553c8186f71bce2773a00ca3c13bad0ea33593d3feff1345acee0c3ef3ae01e/68747470733a2f2f666c61742e62616467656e2e6e65742f6769746875622f646570656e6461626f742f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b)[![Last commit](https://camo.githubusercontent.com/878f0819f5a2884a8d513d4d452de43335dc164845a4cd6ed4d36918a467e7e0/68747470733a2f2f62616467656e2e6e65742f6769746875622f6c6173742d636f6d6d69742f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b)](https://camo.githubusercontent.com/878f0819f5a2884a8d513d4d452de43335dc164845a4cd6ed4d36918a467e7e0/68747470733a2f2f62616467656e2e6e65742f6769746875622f6c6173742d636f6d6d69742f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b)

[![Scrutinizer Build Status](https://camo.githubusercontent.com/5830dadbd7de64a2cc1dd84b154adc463e4219f8358c19f90b2e7b14e3bfa736/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f6275696c642f672f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2e7376673f6c6162656c3d5363727574696e697a6572266c6f676f3d7363727574696e697a6572)](https://scrutinizer-ci.com/g/yoanm/php-jsonrpc-params-symfony-validator-sdk/build-status/master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/42315f2cdc8dbb461a70e97a4c562df0b84e8cd3b664cd24a14d604b4ec14814/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2f6d61737465722e7376673f6c6f676f3d7363727574696e697a6572)](https://scrutinizer-ci.com/g/yoanm/php-jsonrpc-params-symfony-validator-sdk/?branch=master)[![Codacy Badge](https://camo.githubusercontent.com/9fb44e29c9d4bd4ecd206541fbd305938a5a0dbcc15fdab5d1db97a7a24ce23a/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3866333934323461646430343462343361373062646232333865326634386462)](https://www.codacy.com/gh/yoanm/php-jsonrpc-params-symfony-validator-sdk/dashboard?utm_source=github.com&utm_medium=referral&utm_content=yoanm/php-jsonrpc-params-symfony-validator-sdk&utm_campaign=Badge_Grade)

[![CI](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/yoanm/php-jsonrpc-params-symfony-validator-sdk/actions/workflows/CI.yml)[![codecov](https://camo.githubusercontent.com/daf62274cfa706274a352893cd01bd8ca5dc52d98f93a75a42a68d1cb2b0f17d/68747470733a2f2f636f6465636f762e696f2f67682f796f616e6d2f7068702d6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4e486477454255464b35)](https://codecov.io/gh/yoanm/php-jsonrpc-params-symfony-validator-sdk)[![Symfony Versions](https://camo.githubusercontent.com/a0f96454a73e2467cd8e9274759de603045720eb9f2e4770b01951d648720bc4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d76352e3425323025324625323076362e3425323025324625323076372e782d3838393242462e7376673f6c6f676f3d676974687562)](https://symfony.com/)

[![Latest Stable Version](https://camo.githubusercontent.com/08078a378ddcb0a6c8f917bfff75dddf6c42731db1c59ce613c36d0cbce2f898/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f796f616e6d2f6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2e737667)](https://packagist.org/packages/yoanm/jsonrpc-params-symfony-validator-sdk)[![Packagist PHP version](https://camo.githubusercontent.com/84382fcd04bae336b7cd4e11c72544d502ad3d0051829f9841d373ec74f06a9d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f796f616e6d2f6a736f6e7270632d706172616d732d73796d666f6e792d76616c696461746f722d73646b2e737667)](https://packagist.org/packages/yoanm/jsonrpc-params-symfony-validator-sdk)

Simple JSON-RPC params validator that use Symfony validator component

See [yoanm/symfony-jsonrpc-params-validator](https://github.com/yoanm/symfony-jsonrpc-params-validator) for automatic dependency injection.

See [yoanm/jsonrpc-params-symfony-constraint-doc-sdk](https://github.com/yoanm/php-jsonrpc-params-symfony-constraint-doc-sdk) for documentation generation.

Versions
--------

[](#versions)

- Symfony v3/4 - PHP &gt;=7.1 : `^v1.0`
- Symfony v4/5 - PHP &gt;=7.2 : `^v2.0`

    ⚠️⚠️ `v0.2.0` is replaced by `v1.0.0` ! ⚠️⚠️

    ⚠️⚠️ `v0.3.0` was badly taggued, used `v2.0.0` instead ! ⚠️⚠️
- Symfony v4.4/5.4/6.0 - PHP ^8.0 : `^v2.1`
- Symfony v5.4/6.4/7.0 - PHP ^8.0 : `^v3.0`

How to use
----------

[](#how-to-use)

In order to be validated, a JSON-RPC method must :

- Implements `JsonRpcMethodInterface` from [`yoanm/jsonrpc-server-sdk`](https://github.com/yoanm/php-jsonrpc-server-sdk)
- Implements [`MethodWithValidatedParamsInterface`](./src/Infra/JsonRpcParamsValidator.php)

### With [`yoanm/jsonrpc-server-sdk`](https://github.com/yoanm/php-jsonrpc-server-sdk)

[](#with-yoanmjsonrpc-server-sdk)

Create the validator and inject it into request handler :

```
$requestHandler->setMethodParamsValidator(
  new JsonRpcParamsValidator(
    (new ValidatorBuilder())->getValidator()
  )
);
```

Then you can send JSON-RPC request string to the server and any method wich implements `MethodWithValidatedParamsInterface` will be validated.

### Standalone

[](#standalone)

```
use Symfony\Component\Validator\ValidatorBuilder;
use Yoanm\JsonRpcParamsSymfonyValidator\Infra\JsonRpcParamsValidator;

// Create the validator
$paramsValidator = new JsonRpcParamsValidator(
  (new ValidatorBuilder())->getValidator()
);

// Validate a given JSON-RPC method instance against a JSON-RPC request
$violationList = $paramsValidator->validate($jsonRpcRequest, $jsonRpcMethod);
```

### Params validation example

[](#params-validation-example)

```
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\NotNull;
use Yoanm\JsonRpcParamsSymfonyValidator\Domain\MethodWithValidatedParamsInterface;
use Yoanm\JsonRpcServer\Domain\JsonRpcMethodInterface;

class MethodExample implements JsonRpcMethodInterface, MethodWithValidatedParamsInterface
{
  /**
   * {@inheritdoc}
   */
  public function apply(array $paramList = null)
  {
    return 'result';
  }

  public function getParamsConstraint(): Constraint
  {
    return new Collection(
      [
        'fields' => [
          'fieldA' => new NotNull(),
          'fieldB' => new NotBlank(),
        ],
      ]
    );
  }
}
```

### Violations format

[](#violations-format)

Each violations will have the following format :

```
[
  'path' => 'property_path',
  'message' => 'violation message',
  'code' => 'violation_code'
]
```

Contributing
------------

[](#contributing)

See [contributing note](./CONTRIBUTING.md)

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance69

Regular maintenance activity

Popularity35

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 92.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~178 days

Recently: every ~221 days

Total

16

Last Release

257d ago

Major Versions

v0.3.0 → v2.0.02020-03-27

v1.0.0 → v2.0.12020-03-27

v2.1.2 → v3.0.02025-09-03

PHP version history (4 changes)v0.0.1-alphaPHP &gt;5.5

v0.1.0PHP &gt;=7.1

v0.3.0PHP &gt;=7.2

v2.1.0PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4410697?v=4)[yoanm](/maintainers/yoanm)[@yoanm](https://github.com/yoanm)

---

Top Contributors

[![yoanm](https://avatars.githubusercontent.com/u/4410697?v=4)](https://github.com/yoanm "yoanm (51 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (1 commits)")

---

Tags

json-rpcjsonrpc-server-sdkparams-validatorphpsdksymfony-validator

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/yoanm-jsonrpc-params-symfony-validator-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/yoanm-jsonrpc-params-symfony-validator-sdk/health.svg)](https://phpackages.com/packages/yoanm-jsonrpc-params-symfony-validator-sdk)
```

###  Alternatives

[sllh/iso-codes-validator

Symfony validator wrapper of ronanguilloux/isocodes

37299.8k2](/packages/sllh-iso-codes-validator)[digitalrevolution/symfony-validation-shorthand

Validation shorthand for symfony

12108.5k2](/packages/digitalrevolution-symfony-validation-shorthand)[digitalrevolution/symfony-request-validation

Automatic request validation for symfony

1296.0k](/packages/digitalrevolution-symfony-request-validation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
