Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 1.86 KB

README.md

File metadata and controls

34 lines (27 loc) · 1.86 KB

Reflection Validator

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)
    );