phpstan-symfony icon indicating copy to clipboard operation
phpstan-symfony copied to clipboard

Support for DI config in PHP file format

Open Wirone opened this issue 3 years ago • 1 comments

Symfony supports PHP format for configuration (it's even default one now), so it would be great if this plugin could help with verifying DI configs. Assume we have:

class Foo
{
    public function __construct(Bar $bar, Baz $baz)
    {
    }
}
return static function (ContainerConfigurator $containerConfigurator): void {
    $services = $containerConfigurator->services();

    $services->set(Foo::class)
        ->public()
        ->args([Bar::class]);
});

Plugin should warn that Baz $baz argument is missing in the Foo service definition.

Similarly it should support:

  • factories like ->factory([service(FooFactory::class), 'create'])
    • if factory's service exists
    • if factory's class has such method
  • fetching parameters (like ->args(['%foo%']))
  • named args (like ->arg('$bar', service(Bar::class))
  • expressions (using expr())

That would really help with keeping quality in DI definitions with PHP format 🙂

Wirone avatar Aug 23 '22 13:08 Wirone

Nice!

alexis78-sym avatar Sep 11 '22 16:09 alexis78-sym