Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[DependencyInjection] Better autowiring integration #20302

Copy link
Copy link
Closed
@theofidry

Description

@theofidry
Issue body actions

Heavily inspired from DunglasActionBundle and ActionAutowire, I would like to suggest to integrate the following to the core:

framework:
  autowiring:
    # In this include statement, a list of directories can be given in which all PHP classes found
    # will be registered as auto-wired services
    include:
        - '/path/to/dir'                    # can be an absolute path
        - '%root.kernel_dir%/path/to/dir'   # can use parameters for the path
        - '@AppBundle/Http/Action'          # can use the @Bundle notation
        - '/path/to/dir':       # can specify the directory to list as a key and then give a list of elements to filter inside it
            - 'Foo.php'         #regular file, equivalent to '/path/to/dir/Foo.php'
            - '/.*Foo\.php/i'   # can also make use of a regex
    exclude: ~ # Same structure as include
    # This service section works pretty much as the `services` root declaration. The services
    # declared there declared as auto-wired (so no `autowire: true` required) and have a
    # simplified list of properties that can be set, as the other are irrelevant for auto-wired
    # services.
    services:
        App\FooInterface: @App\Foo # bind the App\FooInterface to the concrete class App\Foo

        # Complete list of the elements accepted for an autowired service
        App\Foo:
            public: false
            methods: # list of autowired methods
                - setBar
            tags: [ {name: mytag} ]
            calls:
                - [ setFoo, ['foo'] ]

This would help a lot to work with autowiring, trigger it as a default in specific places of your application, and ease the service registration for auto-wired services instead of having the classical one which is a bit cumbersome.

WDYT?

/cc @dunglas @TomasVotruba

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.