reflection/validator

Define a specification of PHP entity and check whether the particular item matches it.

1.0.1 2018-04-02 16:06 UTC

This package is auto-updated.

Last update: 2020-08-10 12:17:58 UTC


README

Build Status Code coverage Quality Score Total Downloads Latest Stable Version License

When might it be useful?

Sometimes you may want to have an unlimited sequence of methods, which cannot be restricted/controlled by the interface. In this case on a "compilation" stage, you can restrict those methods to follow the standards you expect.

A real example from Drupal/Symfony world: http://cgit.drupalcode.org/form_alter_service/tree/src/FormAlterCompilerPass.php

Examples

Besides of fully-operable examples, you can check a quick use case:

(new MethodValidator(object<ReflectionMethod>, string<FQCN>))
    ->addArgument(
        (new ArgumentSpecification('form'))
            ->setType('array')
            ->setOptional(false)
            ->setPassedByReference(true)
    )
    ->addArgument(
        (new ArgumentSpecification('formState'))
            ->setType(Iterator::class)
            ->setOptional(false)
            ->setPassedByReference(false)
    );