226e2f3949
This PR was merged into the 4.2-dev branch.
Discussion
----------
[DI][DX] Allow exclude to be an array of patterns
| Q | A
| ------------- | ---
| Branch? | 4.2
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #23956
| License | MIT
This is basically continuing #24428.
In YAML before:
```yaml
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Payload,Repository}'
```
in YAML after:
```yaml
AppBundle\:
resource: '../../src/AppBundle/*'
exclude:
- '../../src/AppBundle/{Entity,Payload,Repository}'
- '../../src/AppBundle/Event/*Event.php'
```
In XML before:
```xml
<prototype namespace="App\" resource="../src/*" exclude="../src/{Entity,Migrations,Tests}" />
```
in XML after:
```xml
<prototype namespace="App\" resource="../src/*">
<exclude>../src/{Entity,Migrations,Tests}</exclude>
<exclude>../src/Yolo</exclude>
</prototype>
```
In PHP before:
```php
$di->load(Prototype::class.'\\', '../Prototype')
->autoconfigure()
->exclude('../Prototype/{OtherDir,BadClasses}')
```
In PHP after:
```php
$di->load(Prototype::class.'\\', '../Prototype')
->autoconfigure()
->exclude(['../Prototype/OtherDir', '../Prototype/BadClasses'])
```
Everything is backward compatible.
Maybe a decision about handling both attribute exclude and element exclude in XML should be taken.
Commits
-------
|
||
---|---|---|
.. | ||
Argument | ||
Compiler | ||
Config | ||
Dumper | ||
Exception | ||
Extension | ||
LazyProxy | ||
Loader | ||
ParameterBag | ||
Tests | ||
.gitignore | ||
Alias.php | ||
CHANGELOG.md | ||
ChildDefinition.php | ||
composer.json | ||
Container.php | ||
ContainerAwareInterface.php | ||
ContainerAwareTrait.php | ||
ContainerBuilder.php | ||
ContainerInterface.php | ||
Definition.php | ||
EnvVarProcessor.php | ||
EnvVarProcessorInterface.php | ||
ExpressionLanguage.php | ||
ExpressionLanguageProvider.php | ||
LICENSE | ||
Parameter.php | ||
phpunit.xml.dist | ||
README.md | ||
Reference.php | ||
ResettableContainerInterface.php | ||
ServiceLocator.php | ||
ServiceSubscriberInterface.php | ||
TaggedContainerInterface.php | ||
TypedReference.php | ||
Variable.php |
DependencyInjection Component
The DependencyInjection component allows you to standardize and centralize the way objects are constructed in your application.