-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[DependencyInjection] Docs for method autowiring #7041
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
the service. Constructor injection should always be preferred; however, it is sometimes | ||
convenient to inject dependencies through methods (usually a setter method). | ||
|
||
.. versionadded:: 2.8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be 3.2
|
||
$container->setDefinition('foo', $fooDefinition); | ||
|
||
Alternatively, the list of method to use for dependency injection can be configured explicitly: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
methods
|
||
.. code-block:: php | ||
|
||
use Symfony\Component\DependencyInjection\Reference; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not used.
…configurable (dunglas) This PR was merged into the 3.3-dev branch. Discussion ---------- [DependencyInjection] Make method (setter) autowiring configurable | Q | A | | --- | --- | | Branch? | master | | Bug fix? | no | | New feature? | yes | | BC breaks? | no | | Deprecations? | maybe? | | Tests pass? | yes | | Fixed tickets | #19631 | | License | MIT | | Doc PR | symfony/symfony-docs#7041 | Follow up of #19631. Implements #19631 (comment): Edit: the last supported format: ``` yaml services: foo: class: Foo autowire: ['__construct', 'set*'] # Autowire constructor and all setters autowire: true # Converted by loaders in `autowire: ['__construct']` for BC autowire: ['foo', 'bar'] # Autowire only `foo` and `bar` methods ``` Outdated: ``` yaml autowire: true # constructor autowiring autowire: [__construct, setFoo, setBar] # autowire whitelisted methods only autowire: '*' # autowire constructor + every setters (following existing rules for setters autowiring) ``` - [x] Allow to specify the list of methods in the XML loader - [x] Add tests for the YAML loader Commits ------- 6dd53c7 [DependencyInjection] Introduce method injection for autowiring
…configurable (dunglas) This PR was merged into the 3.3-dev branch. Discussion ---------- [DependencyInjection] Make method (setter) autowiring configurable | Q | A | | --- | --- | | Branch? | master | | Bug fix? | no | | New feature? | yes | | BC breaks? | no | | Deprecations? | maybe? | | Tests pass? | yes | | Fixed tickets | #19631 | | License | MIT | | Doc PR | symfony/symfony-docs#7041 | Follow up of #19631. Implements symfony/symfony#19631 (comment): Edit: the last supported format: ``` yaml services: foo: class: Foo autowire: ['__construct', 'set*'] # Autowire constructor and all setters autowire: true # Converted by loaders in `autowire: ['__construct']` for BC autowire: ['foo', 'bar'] # Autowire only `foo` and `bar` methods ``` Outdated: ``` yaml autowire: true # constructor autowiring autowire: [__construct, setFoo, setBar] # autowire whitelisted methods only autowire: '*' # autowire constructor + every setters (following existing rules for setters autowiring) ``` - [x] Allow to specify the list of methods in the XML loader - [x] Add tests for the YAML loader Commits ------- 6dd53c7 [DependencyInjection] Introduce method injection for autowiring
This has now totally been changed - #7608 is the way to do it, which is much simpler. So let's make a PR for that! :) |
This PR was merged into the master branch. Discussion ---------- Updates to DI config for 3.3 Hi guys! WIP changes the new DI changes in 3.3! Woohoo! Some notes for myself: This relates to, oh, just these 10+ issues :). Assume they will all be closed by this one PR - before merge, if any of them aren't covered, I'll remove them. TODOS later (some might already be done) - update to use `debug:container --types` (symfony/symfony#22624) - update all other documents for possible changes for autowiring and autoconfigure - new page for existing Symfony users to explain the changes - update autowire section to talk about using aliases - document instanceof and also the ability to add configuration to the PSR4 loader - some links in the controller go to the API docs of `Controller`. But this is wrong, the methods now live in `ControllerTrait`... but the API docs for traits is basically broken: http://api.symfony.com/master/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.html - how should we pass a parameter to a controller? - do Twig extensions still need to be public? If so, the example in `service_container` about autoconfigure is still not quite right Definitely included in this PR * #7544 * #7482 * #7339 * #7672 Not included in this PR (but related to DI changes) * #7329 * #7782 * #7777 * #7706 * #7608 * #7538 * #7441 * #7255 * ~~#7041~~ * ~~#7445~~ * ~~#7444~~ * ~~#7436~~ Commits ------- 22adfbd removing duplicate target 12c4944 Tweaks after amazing review from @GuilhemN and @xabbuh cac3c6c Merge remote-tracking branch 'origin/master' into di-3.3-changes 2229fd3 Merge remote-tracking branch 'origin/master' into di-3.3-changes 5452c61 Adding section about public: false ee27765 Adding versionadded bc7088d Merge remote-tracking branch 'origin/di-3.3-changes' into di-3.3-changes 443aec2 Merge pull request #7857 from GuilhemN/patch-1 89e12de bad link 6de83e2 fixing build problem 759e9b2 last tweaks from feedback 45500b3 Adding details and usages of fetching the service as a controller arg 70178d1 adding note about autoconfigure 6e6ed94 more tweaks 0e48bd8 [WIP] Updates to DI config for 3.3 9ab27f0 Add xml files 2636bea bad link c45daf4 fixing build problem 9e84572 last tweaks from feedback 049df7d Adding details and usages of fetching the service as a controller arg 105801c adding note about autoconfigure 2d11347 more tweaks 8433fc1 [WIP] Updates to DI config for 3.3
Docs for symfony/symfony#20167 and symfony/symfony#17608.