Commit Graph

1205 Commits

Author SHA1 Message Date
Nicolas Grekas
b634ed564a Merge branch '4.1'
* 4.1:
  fix cs
  fix cs
  fix cs
  SCA: consolidate non empty array checks across codebase
  [cs] correct invalid @param types
  [Bridge/PhpUnit] Use composer to download phpunit
  [DI] fix taking lazy services into account when dumping the container
  [Form] Fixed empty data for compound date interval
  [Cache] fix optimizing Psr6Cache for AdapterInterface pools
  deal with explicitly enabled workflow nodes
2018-11-20 17:22:05 +01:00
Nicolas Grekas
713b7986fe Merge branch '3.4' into 4.1
* 3.4:
  fix cs
  SCA: consolidate non empty array checks across codebase
  [cs] correct invalid @param types
  [Bridge/PhpUnit] Use composer to download phpunit
  [DI] fix taking lazy services into account when dumping the container
  [Form] Fixed empty data for compound date interval
  [Cache] fix optimizing Psr6Cache for AdapterInterface pools
  deal with explicitly enabled workflow nodes
2018-11-20 17:14:00 +01:00
Nicolas Grekas
67d7623e72 [DI] fix taking lazy services into account when dumping the container 2018-11-20 15:22:20 +01:00
Nicolas Grekas
3b3a1bd3cc [DI] compute autowiring error messages lazily 2018-11-06 20:03:07 +01:00
Nicolas Grekas
8d277ce3e5 Merge branch '4.1'
* 4.1:
  [VarDumper] fix dump of closures created from callables
  [DI] fix dumping inlined services
  Add framework asset changes to upgrade 3.0 guide
  [Travis] Bump ext-mongodb to 1.5.2 on Travis
  [DI] dont track classes/interfaces used to compute autowiring error messages
  [DI] fix GraphvizDumper ignoring inline definitions
  bumped Symfony version to 4.1.8
  updated VERSION for 4.1.7
  updated CHANGELOG for 4.1.7
  bumped Symfony version to 3.4.19
  updated VERSION for 3.4.18
  updated CHANGELOG for 3.4.18
  bumped Symfony version to 2.8.48
  updated VERSION for 2.8.47
  update CONTRIBUTORS for 2.8.47
  updated CHANGELOG for 2.8.47
  Fix ini_get() for boolean values
2018-11-06 18:10:56 +01:00
Nicolas Grekas
097963fbaf Merge branch '3.4' into 4.1
* 3.4:
  [VarDumper] fix dump of closures created from callables
  [DI] fix dumping inlined services
  Add framework asset changes to upgrade 3.0 guide
  [Travis] Bump ext-mongodb to 1.5.2 on Travis
  [DI] dont track classes/interfaces used to compute autowiring error messages
  [DI] fix GraphvizDumper ignoring inline definitions
  bumped Symfony version to 3.4.19
  updated VERSION for 3.4.18
  updated CHANGELOG for 3.4.18
  bumped Symfony version to 2.8.48
  updated VERSION for 2.8.47
  update CONTRIBUTORS for 2.8.47
  updated CHANGELOG for 2.8.47
  Fix ini_get() for boolean values
2018-11-06 17:43:48 +01:00
Nicolas Grekas
09a0c23668 [DI] dont track classes/interfaces used to compute autowiring error messages 2018-11-06 14:23:35 +01:00
Nicolas Grekas
78192e776c Merge branch '4.1'
* 4.1:
  [DependencyInjection] Fix tags on multiple decorated service
  fix merge
  SCA: reverted code style changes
  SCA: reverted code style changes
  SCA: applied requested code style changes
  SCA: simplify some ifs in favour of null coalescing operator
2018-10-31 11:56:31 +01:00
Nicolas Grekas
25c2975cd4 Merge branch '3.4' into 4.1
* 3.4:
  [DependencyInjection] Fix tags on multiple decorated service
2018-10-31 11:54:16 +01:00
Soner Sayakci
90f8df2830 [DependencyInjection] Fix tags on multiple decorated service 2018-10-31 11:41:01 +01:00
Nicolas Grekas
0970b09796 Merge branch '4.1'
* 4.1:
  SCA: removed unused variables
  Remove duplicate condition
  fix useless space in docblock
  remove unneeded tearDown method
  [Intl] Update the ICU data to 63.1
  [FrameworkBundle] Fix broken exception message
  [Messenger] send using the routing_key for AMQP transport
  also clean away the NO_AUTO_CACHE_CONTROL_HEADER if we have no session
  [TwigBundle] Fix usage of TwigBundle without FrameworkBundle
  Revert "fixed CS"
  [Serializer] Reduce class discriminator overhead
  Skip empty proxy code
  [Security] Fix "exclude-from-classmap"
  [Security] Removed unsed trait import
  [Config] Fix @method annotation
  add missing double-quotes to extra_fields output message
  [DI] Default undefined env to empty string during compile
  Convert InsufficientAuthenticationException to HttpException
2018-10-30 18:11:56 +01:00
Roland Franssen
38a8ab92fa [DI] Default undefined env to empty string during compile 2018-10-17 09:42:53 +02:00
Nicolas Grekas
104e92206c feature #28571 [DependencyInjection] Improve ServiceLocatorTagPass service matching (codedmonkey)
This PR was squashed before being merged into the 4.2-dev branch (closes #28571).

Discussion
----------

[DependencyInjection] Improve ServiceLocatorTagPass service matching

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26892
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/10397

Allows omitting of keys for service locator arguments (it will automatically take over the original definition alias).

Commits
-------

1c1210a3e8 [DependencyInjection] Improve ServiceLocatorTagPass service matching
2018-10-03 09:27:24 +02:00
Tim Goudriaan
1c1210a3e8 [DependencyInjection] Improve ServiceLocatorTagPass service matching 2018-10-03 09:27:17 +02:00
Marko Kaznovac
dc5bf84f15
third parameter of sprintf missing in AbstractRecursivePass::getExpressionLanguage
runtime exception is referencing service as third parameter in sprintf, but none was given.
2018-09-29 23:11:02 +02:00
Roland Franssen
c762735075 Favor LogicException for missing classes & functions 2018-09-24 09:37:12 +02:00
Fabien Potencier
7c08e43b78 feature #28449 [DependencyInjection] improved message when alias service is not found (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DependencyInjection] improved message when alias service is not found

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28413
| License       | MIT
| Doc PR        |

When using the YAML config format, it can be confusing that you need to
prefix the aliased service id with an `@` character when passing it as
a string, but that you have to omit it when using the `alias` attribute:

```yaml
foo: '@App\Foo'

foo:
    alias: 'App\Foo'
```

This commit will enhance the generated error message in cases where the
aliased service id is prefixed with the `@` character in the `alias`
option like this:

```yaml
foo:
    alias: '@App\Foo'
```

Commits
-------

280ecbc2be improved message when alias service is not found
2018-09-23 14:54:20 +02:00
Christian Flothmann
280ecbc2be improved message when alias service is not found
When using the YAML config format, it can be confusing that you need to
prefix the aliased service id with an `@` character when passing it as
a string, but that you have to omit it when using the `alias` attribute:

```yaml
foo: '@App\Foo'

foo:
    alias: 'App\Foo'
```

This commit will enhance the generated error message in cases where the
aliased service id is prefixed with the `@` character in the `alias`
option like this:

```yaml
foo:
    alias: '@App\Foo'
```
2018-09-23 11:10:46 +02:00
Nicolas Grekas
1fc66ff080 Merge branch '4.1'
* 4.1:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  [DI] fix dumping lazy services
  forward the invalid_message option in date types
2018-09-21 14:51:02 +02:00
Nicolas Grekas
76cf0ca661 Merge branch '3.4' into 4.1
* 3.4:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  forward the invalid_message option in date types
2018-09-21 14:49:42 +02:00
Nicolas Grekas
20f27f9c72 [DI] fix infinite loop involving self-references in decorated services 2018-09-19 15:15:21 +02:00
Nicolas Grekas
680f31928b feature #28412 [PhpUnitBridge] enable DebugClassLoader by default (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[PhpUnitBridge] enable DebugClassLoader by default

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/10360

With this PR, the phpunit-bridge will enable `DebugClassLoader` by default, making it do its job: throw deprecation notices at autoloading time. On top of #28329, this made me spot some glitches in the code base, fixed here also.

This can be disabled by configuring the listener in `phpunit.xml.dist` files, adding `<element key="debug-class-loader"><integer>0</integer></element>` next to `<element key="time-sensitive">...`.

Commits
-------

2fb11fce28 [PhpUnitBridge] enable DebugClassLoader by default
2018-09-18 18:51:13 +02:00
Nicolas Grekas
b1ae305868 Merge branch '4.1'
* 4.1:
  [TwigBridge] fix lowest version of symfony/form
  Think positive
  KernelInterface can return null container
  [DI] Detect circular references with ChildDefinition parent
  [VarDumper] Fix global dump function return value for PHP7
  [Ldap] Use shut up operator on connection errors at ldap_start_tls
  Implement startTest rather than startTestSuite
  [OptionsResolver] remove dead code and useless else
  [HttpFoundation] don't override StreamedResponse::setNotModified()
  Added relevent links for parsing to the phpdoc
  Add stricter checking for valid date time string
  Fix symfony/console (optional) dependency for MonologBridge
  fix not displaying labels when value is false
  [Form] Fix DateTimeType html5 input format
2018-09-18 18:38:25 +02:00
Nicolas Grekas
02bbeb660f Merge branch '3.4' into 4.1
* 3.4:
  Think positive
  KernelInterface can return null container
  [DI] Detect circular references with ChildDefinition parent
  [VarDumper] Fix global dump function return value for PHP7
  [Ldap] Use shut up operator on connection errors at ldap_start_tls
  Implement startTest rather than startTestSuite
  [OptionsResolver] remove dead code and useless else
  [HttpFoundation] don't override StreamedResponse::setNotModified()
  Added relevent links for parsing to the phpdoc
  Add stricter checking for valid date time string
  Fix symfony/console (optional) dependency for MonologBridge
  [Form] Fix DateTimeType html5 input format
2018-09-18 14:45:12 +02:00
Sébastien ALFAIATE
2a59c8e3e6 [DI] Detect circular references with ChildDefinition parent 2018-09-18 11:39:25 +02:00
Nicolas Grekas
2fb11fce28 [PhpUnitBridge] enable DebugClassLoader by default 2018-09-16 21:51:20 +02:00
Nicolas Grekas
004c315b0c Merge branch '4.1'
* 4.1:
  [DI] configure inlined services before injecting them when dumping the container
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:42:43 +02:00
Nicolas Grekas
6fec32c0d0 Merge branch '3.4' into 4.1
* 3.4:
  [DI] configure inlined services before injecting them when dumping the container
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:24:10 +02:00
Nicolas Grekas
8bc014c211 Merge branch '2.8' into 3.4
* 2.8:
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:15:14 +02:00
Nicolas Grekas
721dc8661f Consistently throw exceptions on a single line 2018-09-08 14:44:02 +02:00
Nicolas Grekas
87392ab30d [DI] leverage Contracts\Service 2018-09-04 19:12:10 +02:00
Nicolas Grekas
c0b8f53bcb [DI] Allow autowiring by type + parameter name 2018-08-23 11:47:19 +02:00
Nicolas Grekas
00e8b493d1 Merge branch '4.1'
* 4.1:
  [DI] fix analyzing lazy refs involved in circular loops
  [DI] Fix autowire inner service
2018-08-08 13:50:11 +02:00
Nicolas Grekas
441322fdc7 bug #28159 [DI] Fix autowire inner service (hason)
This PR was merged into the 4.1 branch.

Discussion
----------

[DI] Fix autowire inner service

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25631
| License       | MIT
| Doc PR        | -

This PR fix multiple levels of decoration. Unfortunately, this [good question](https://github.com/symfony/symfony/pull/25631#issuecomment-364610914) in origin PR has not been heard 🎧 😄. @dunglas @chalasr

Commits
-------

b79d097c2a [DI] Fix autowire inner service
2018-08-08 13:48:58 +02:00
Nicolas Grekas
a31b5d0ee3 Merge branch '3.4' into 4.1
* 3.4:
  [DI] fix analyzing lazy refs involved in circular loops
2018-08-08 13:48:00 +02:00
Nicolas Grekas
4e92d10b40 [DI] fix analyzing lazy refs involved in circular loops 2018-08-08 13:42:34 +02:00
Martin Hasoň
b79d097c2a [DI] Fix autowire inner service 2018-08-08 13:02:30 +02:00
Nicolas Grekas
13dc341d7f feature #27806 [DI] Allow autoconfiguring bindings (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Allow autoconfiguring bindings

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I've come up with a case where we will need to inject a different service based on which interfaces a consumer service implements: injecting a different token storage for monolog processor than for everything else. Required in #27801.

Commits
-------

7c29977037 [DI] Allow autoconfiguring bindings
2018-08-08 10:30:15 +02:00
Nicolas Grekas
568e3a4fb4 Merge branch '4.1'
* 4.1:
  [HttpFoundation] fix false-positive ConflictingHeadersException
  [DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime
2018-08-08 10:28:33 +02:00
Nicolas Grekas
2130c60362 Merge branch '3.4' into 4.1
* 3.4:
  [HttpFoundation] fix false-positive ConflictingHeadersException
  [DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime
2018-08-08 10:25:44 +02:00
Nicolas Grekas
ba31bab47a bug #28060 [DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28010, #27865
| License       | MIT
| Doc PR        | -

When circular loops involve references in properties, method calls or configurators, it is possible to properly instantiate the related services.

The current logic is broken: `ContainerBuilder` considers some of these loops as self-referencing circular references, leading to a runtime exception, and in similar situations, `PhpDumper` generates code that turns to infinite loops at runtime 💥. These badly handled situations happen with inlined definitions.

This PR fixes both classes by making them track which references are really part of the constructors' chain, including inline definitions.

It also fixes dumping infinite loops when dumping circular loops involving lazy services while proxy-manager-bridge is not installed.

Commits
-------

e843bb86c8 [DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime
2018-08-08 10:12:29 +02:00
Nicolas Grekas
1f629c8789 Merge branch '4.1'
* 4.1:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  remove unnecessary instanceof in MongoDbSessionHandler
  [HttpFoundation] fixed using _method parameter with invalid type
  Renaming internal test class to help auto-completion
  [Intl] Replace svn with git in the icu data update script
  [Messenger] Fix error message on undefined message class for non-subscriber handler
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:24:20 +02:00
Nicolas Grekas
1d3f835e05 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  [HttpFoundation] fixed using _method parameter with invalid type
  [Intl] Replace svn with git in the icu data update script
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:24:03 +02:00
Nicolas Grekas
e0ce427aef Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  [HttpFoundation] fixed using _method parameter with invalid type
  [Intl] Replace svn with git in the icu data update script
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:23:45 +02:00
Nicolas Grekas
f4951682bf minor #28057 [DI] Improve class named servics error message (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #28057).

Discussion
----------

[DI] Improve class named servics error message

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #28006
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

61de0601a1 [DI] Improve class named servics error message
2018-07-29 17:19:31 +02:00
Roland Franssen
61de0601a1 [DI] Improve class named servics error message 2018-07-29 17:19:21 +02:00
Nicolas Grekas
e843bb86c8 [DI] Fix false-positive circular ref leading to wrong exceptions or infinite loops at runtime 2018-07-29 16:51:25 +02:00
Nicolas Grekas
f834c9262b Merge branch '4.1'
* 4.1:
  Alpha-ordering for "use" statements
2018-07-26 11:13:01 +02:00
Nicolas Grekas
a23a4a4398 Merge branch '4.0' into 4.1
* 4.0:
  Alpha-ordering for "use" statements
2018-07-26 11:10:45 +02:00
Nicolas Grekas
6b7e951fdc Merge branch '3.4' into 4.0
* 3.4:
  Alpha-ordering for "use" statements
2018-07-26 11:08:35 +02:00
Nicolas Grekas
7b80bc2c78 Merge branch '2.8' into 3.4
* 2.8:
  Alpha-ordering for "use" statements
2018-07-26 11:06:28 +02:00
Nicolas Grekas
528eef336b Alpha-ordering for "use" statements 2018-07-26 11:03:18 +02:00
Nicolas Grekas
e81285249b Merge branch '4.1'
* 4.1:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:59:12 +02:00
Nicolas Grekas
933b774844 Merge branch '4.0' into 4.1
* 4.0:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:55:25 +02:00
Nicolas Grekas
b9433001cb Merge branch '3.4' into 4.0
* 3.4:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:51:09 +02:00
Nicolas Grekas
f5939a8336 Merge branch '2.8' into 3.4
* 2.8:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:45:46 +02:00
Christophe Coevoet
04654cfeb3 Enable the fixer enforcing fully-qualified calls for compiler-optimized functions 2018-07-24 12:05:38 +02:00
Fabien Potencier
3f663fdfbb minor #27878 improve deprecation messages (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

improve deprecation messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

1657b82c19 improve deprecation messages
2018-07-12 08:18:35 +02:00
Nicolas Grekas
7c29977037 [DI] Allow autoconfiguring bindings 2018-07-11 10:40:03 +02:00
Fabien Potencier
8d35af4a51 minor #27845 [DI] Improve exception messages by hiding the hidden ids they contain (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Improve exception messages by hiding the hidden ids they contain

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27822
| License       | MIT
| Doc PR        | -

This PR improves error messages containing hidden ids, especially the ones mentioning service locators.

Right now, when a service subscriber is incomplete, we get:
> The service ".service_locator.G69Xsbl.App\Controller\MyRouter" has a dependency on a non-existent service "Symfony\Component\Config\Loader\LoaderInterface".

With this PR we get this instead:
> The service "routing.loader" in the container provided to "App\Controller\MyRouter" has a dependency on a non-existent service "Symfony\Component\Config\Loader\LoaderInterface".

When no locators are involved, the hidden service is swallowed:
> The service "App\Controller\MyRouter" has a dependency on a non-existent service "Symfony\Component\Config\Loader\LoaderInterface".

This PR also improves runtime exceptions thrown in service locators.

Before:
> Cannot autowire service ".service_locator.Z1jvVrN": it references interface "Symfony\Component\Config\Loader\LoaderInterface" but no such service exists. You should maybe alias this interface to one of these existing services: [...].

After:
> Cannot autowire service "routing.loader" required by "App\Controller\MyRouter": it references interface "Symfony\Component\Config\Loader\LoaderInterface" but no such service exists. You should maybe alias this interface to one of these existing services: [...].

TODO:
- [x] add tests.

Commits
-------

d2b4901a43 [DI] Improve exception messages by hiding the hidden ids they contain
2018-07-09 16:06:18 +02:00
Christian Flothmann
1657b82c19 improve deprecation messages 2018-07-09 09:26:21 +02:00
Nicolas Grekas
6d3f63d6f3 feature #27783 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | -
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Right now, to generate service locators, we use collections of closures described using `ServiceClosureArgument`. This works well, but it doesn't scale well when the number of services grows, because we have to load as many closures as there are services, even if we never call them.

This PR introduces `ServiceLocatorArgument`, which describes the same thing, but allows dumping optimized locators: instead of a collection of closures, this generates a static array that OPcache can put in shared memory (see fixtures for example.)

Once this PR is merged, we'll be able to update `ServiceLocatorPass::register()` to leverage it and generate these optimized locators everywhere. One particular I have in mind in the locator used by `ServiceArgumentResolver`, which can grow fast (it has as many entries as there are actions.)

Commits
-------

6c8e9576a3 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory
2018-07-07 17:01:23 +02:00
Nicolas Grekas
d2b4901a43 [DI] Improve exception messages by hiding the hidden ids they contain 2018-07-07 10:42:09 +02:00
Nicolas Grekas
7135aa4338 Merge branch '4.1'
* 4.1:
  [DomCrawler] Fix ChoiceFormField::select() PHPDoc
  [Security] LdapUserProvider uidKey could be null
  [HttpFoundation] add tests for FlashBagInterface::setAll()
  Check for Hyper terminal on all operating systems.
  [DI] Don't show internal service id on binding errors
  Fix a bug when having more than one named handler per message subscriber
  Prevent toolbar links color override by css
  add conflict for non-compatible TwigBridge version
2018-07-05 13:54:37 +02:00
Nicolas Grekas
e308c93c7e Merge branch '4.0' into 4.1
* 4.0:
  [DomCrawler] Fix ChoiceFormField::select() PHPDoc
  [Security] LdapUserProvider uidKey could be null
  [HttpFoundation] add tests for FlashBagInterface::setAll()
  Check for Hyper terminal on all operating systems.
  [DI] Don't show internal service id on binding errors
  Prevent toolbar links color override by css
2018-07-05 13:54:23 +02:00
Nicolas Grekas
29d2101891 Merge branch '3.4' into 4.0
* 3.4:
  [DomCrawler] Fix ChoiceFormField::select() PHPDoc
  [HttpFoundation] add tests for FlashBagInterface::setAll()
  Check for Hyper terminal on all operating systems.
  [DI] Don't show internal service id on binding errors
  Prevent toolbar links color override by css
2018-07-05 13:53:42 +02:00
Nicolas Grekas
6c8e9576a3 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory 2018-07-04 16:01:49 +02:00
Nicolas Grekas
61f005af36 [DI] Don't show internal service id on binding errors 2018-07-04 11:35:48 +02:00
Nicolas Grekas
26989d4e73 bug #27830 [Dependency-Injection] Fix issue where non-defined services were attempted to be removed (ciaranmcnulty)
This PR was squashed before being merged into the 4.2-dev branch (closes #27830).

Discussion
----------

[Dependency-Injection] Fix issue where non-defined services were attempted to be removed

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #27802   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

The RemoveUnusedServicesPass generates a graph of services that are connected, then removes services that are not part of the graph. To build this graph it creates a list of services then examines their definitions for more services.

The current scenario was causing an error, thrown by getDefinition (triggered in Behat):
 * Service was referenced by another service definition
 * Service was _not_ defined
 * Service was subsequently set() on the container

Commits
-------

53155c9800 [Dependency-Injection] Fix issue where non-defined services were attempted to be removed
2018-07-03 20:20:23 +02:00
Ciaran McNulty
53155c9800 [Dependency-Injection] Fix issue where non-defined services were attempted to be removed 2018-07-03 20:20:16 +02:00
Nicolas Grekas
a32393ba37 Merge branch '4.1'
* 4.1:
  Add color support for Hyper terminal .
  [HttpFoundation] Fix tests: new message for status 425
  [Doctrine Bridge] Fixed usage of wrong variable when tagged subscriber is invalid
  [Workflow] Update phpdoc to fit a used className
  [PropertyInfo] added handling of nullable types in PhpDoc
  [HttpKernel] Make AbstractTestSessionListener compatible with CookieClearingLogoutHandler
  [Cache] provider does not respect option maxIdLength with versioning enabled
  [Form] Fix fixtures for forward compat
  [Lock] Fix SemaphoreStoreTest on OS X
  Ensure the class discriminator mechanism works with serialization groups as well
  fix handling of empty DI extension configs
2018-07-03 20:14:13 +02:00
Christian Flothmann
05d4bcb987 fix handling of empty DI extension configs 2018-06-26 09:48:43 +02:00
Fabien Potencier
7b6ad74fa2 Merge branch '4.1'
* 4.1:
  [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled
  Add note about changed form processing when using PUT requests
  [TwigBundle] bump lowest deps to fix issue with "double-colon" controller service refs
  [SecurityBundle] Dont throw if "security.http_utils" is not found
  [Di] Fix undefined variable found by Php Inspections (EA Ultimate)
  [DI] Cleanup unused service_subscriber.locator tag
  [DI] Resolve env placeholder in logs
  The debug class loader is always loaded by Debug::enable().
  [Intl] Update ICU data to 62.1
2018-06-25 13:13:38 +02:00
Fabien Potencier
8c687c6401 Merge branch '4.0' into 4.1
* 4.0:
  [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled
  Add note about changed form processing when using PUT requests
  [SecurityBundle] Dont throw if "security.http_utils" is not found
  [Di] Fix undefined variable found by Php Inspections (EA Ultimate)
  [DI] Cleanup unused service_subscriber.locator tag
  [DI] Resolve env placeholder in logs
  The debug class loader is always loaded by Debug::enable().
  [Intl] Update ICU data to 62.1
2018-06-25 13:12:43 +02:00
Fabien Potencier
b626ee9af5 Merge branch '3.4' into 4.0
* 3.4:
  [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled
  Add note about changed form processing when using PUT requests
  [SecurityBundle] Dont throw if "security.http_utils" is not found
  [Di] Fix undefined variable found by Php Inspections (EA Ultimate)
  [DI] Cleanup unused service_subscriber.locator tag
  [DI] Resolve env placeholder in logs
  The debug class loader is always loaded by Debug::enable().
  [Intl] Update ICU data to 62.1
2018-06-25 13:12:25 +02:00
Nicolas Grekas
c871857a47 Merge branch '4.1'
* 4.1:
  [VarDumper] Fix dumping by splitting Server/Connection out of Dumper/ServerDumper
  [HttpKernel] fix argument's error messages in ServiceValueResolver
  [DI] Avoid leaking unused env placeholders
2018-06-24 10:10:38 +02:00
Roland Franssen
8e060fa45d [DI] Cleanup unused service_subscriber.locator tag 2018-06-23 15:02:32 +02:00
Roland Franssen
41f8494722 [DI] Avoid leaking unused env placeholders 2018-06-22 13:40:15 +02:00
Nicolas Grekas
719b429655 fix merge 2018-06-15 10:13:37 +02:00
Nicolas Grekas
a687119e10 Merge branch '4.1'
* 4.1:
  remove HHVM code
  [VarDumper] Fix dumping ArrayObject and ArrayIterator instances
  [ProxyManagerBridge] Fixed support of private services
  [Cache] Fix typo in comment.
  [FrameworkBundle] give access to non-shared services when using test.service_container
  Fix bad method call with guard authentication + session migration
  Avoid calling eval when there is no script embedded in the toolbar
2018-06-15 09:52:48 +02:00
Nicolas Grekas
516ff5a985 [FrameworkBundle] give access to non-shared services when using test.service_container 2018-06-14 10:43:49 +02:00
Nicolas Grekas
8ec22e5e88 Merge branch '4.1'
* 4.1:
  [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer()
  Remove mentions of "beta" in composer.json files
  [DI] Ignore missing tree root nodes on validate
  [WebProfilerBundle] fixed getSession when no session has been set deprecation warnings
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  [Router] regression when matching a route
  [FrameworkBundle][SecurityBundle] Remove no-longer necessary Bundle::registerCommands override
  [Routing] Don't reorder past variable-length placeholders
  [DebugBundle] DebugBundle::registerCommands should be noop
  [BrowserKit] Fix a BC break in Client affecting Panthère
  [DX] Improve exception message when AbstractController::getParameter fails
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:59:09 +02:00
Tobias Schultze
d8739d183e feature #27471 [DI] Improve performance of removing/inlining passes (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Improve performance of removing/inlining passes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #27386
| License       | MIT
| Doc PR        | -

Here is an optimization to reclaim some compilation time by optimizing the analysis of unused and inlined services.

This PR removes any use case for `RepeatedPass`, instead:
- `RemoveUnusedDefinitionsPass` works in one run, removing all private services that are unreachable from public services
-  `InlineServiceDefinitionsPass` reduces the number of nodes to analyze per iteration using `AnalyzeServiceReferencesPass` on a duplicated container internally.

https://blackfire.io/profiles/compare/00723822-6c09-431c-b98d-4a4197d044fc/graph?settings%5Bdimension%5D=wt&settings%5Bdisplay%5D=focused&settings%5BtabPane%5D=nodes&selected=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess&callname=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess

![image](https://user-images.githubusercontent.com/243674/40884496-c31e780e-6714-11e8-8218-967c4b25b9ce.png)

Commits
-------

cf375e5286 [DI] Improve performance of removing/inlining passes
2018-06-05 21:28:56 +02:00
Nicolas Grekas
cf375e5286 [DI] Improve performance of removing/inlining passes 2018-06-05 13:59:51 +02:00
Fabien Potencier
8130f22f4a bug #27472 [DI] Ignore missing tree root nodes on validate (ro0NL)
This PR was squashed before being merged into the 4.1 branch (closes #27472).

Discussion
----------

[DI] Ignore missing tree root nodes on validate

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | technically yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #27450
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

Commits
-------

b3cdfc64b5 [DI] Ignore missing tree root nodes on validate
2018-06-05 07:03:36 +02:00
Roland Franssen
b3cdfc64b5 [DI] Ignore missing tree root nodes on validate 2018-06-05 07:03:28 +02:00
Nicolas Grekas
b51b17d7e8 Merge branch '4.1'
* 4.1:
  [DI] Remove default env type check on validate
  [FrameworkBundle][TwigBridge] Fix BC break from strong dependency on CSRF token storage
2018-06-03 23:37:29 +02:00
Roland Franssen
a0015a18ec [DI] Remove default env type check on validate 2018-06-03 23:36:42 +02:00
Nicolas Grekas
201b472009 Merge branch '4.1'
* 4.1: (26 commits)
  Revert "bug #27312 Supress deprecation notices thrown when getting private servies from container in tests (arderyp)"
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  bumped Symfony version to 4.0.12
  [FrameworkBundle] Fix using test.service_container when Client is rebooted
  [DI] never inline lazy services
  updated VERSION for 4.0.11
  updated CHANGELOG for 4.0.11
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  Tweak Argon2 test config
  [HttpFoundation] Fix cookie test with xdebug
  [FrameworkBundle] cleanup generated test container
  [Serializer] Check the value of enable_max_depth if defined
  ...
2018-05-25 16:55:42 +02:00
Nicolas Grekas
d4d137de53 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  bumped Symfony version to 4.0.12
  [DI] never inline lazy services
  updated VERSION for 4.0.11
  updated CHANGELOG for 4.0.11
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  [HttpFoundation] Fix cookie test with xdebug
  [Serializer] Check the value of enable_max_depth if defined
  [DI] remove dead code
  [PhpUnitBridge] silence some stderr outputs
  [Validator] Update sl translation
2018-05-25 16:55:38 +02:00
Nicolas Grekas
101ff69e1a Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  [DI] never inline lazy services
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  [HttpFoundation] Fix cookie test with xdebug
  [Serializer] Check the value of enable_max_depth if defined
  [DI] remove dead code
  [PhpUnitBridge] silence some stderr outputs
  [Validator] Update sl translation
2018-05-25 16:54:15 +02:00
Nicolas Grekas
bf20260025 Merge branch '2.8' into 3.4
* 2.8:
  Add code of Conduct links in our README
  [DI] never inline lazy services
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
2018-05-25 16:50:57 +02:00
Nicolas Grekas
3b4d7ab56c [DI] never inline lazy services 2018-05-25 15:50:34 +02:00
Nicolas Grekas
0fba5b1660 Merge branch '4.1'
* 4.1:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:58:16 +02:00
Nicolas Grekas
930b960125 Merge branch '4.0' into 4.1
* 4.0:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:58:10 +02:00
Nicolas Grekas
aa66a47233 Merge branch '3.4' into 4.0
* 3.4:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:57:52 +02:00
Nicolas Grekas
5eb17e55d2 [DI] fix undefined offset in InlineServiceDefinitionsPass 2018-05-25 13:57:15 +02:00
Nicolas Grekas
29fa8119b9 Merge branch '4.1'
* 4.1:
  [SecurityBundle] fix test
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:09:34 +02:00
Nicolas Grekas
3dd22cb4c8 Merge branch '4.0' into 4.1
* 4.0:
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:09:16 +02:00
Nicolas Grekas
2b8932f1cd Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:08:56 +02:00
Nicolas Grekas
8bba68f811 [DI] Fix bad exception on uninitialized references to non-shared services 2018-05-24 14:02:14 +02:00
Nicolas Grekas
f827fecca9 feature #27165 [DI] Allow binding by type+name (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Allow binding by type+name

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This would allow to bind by type + argument name, e.g.:
```yaml
bind:
  Psr\Log\LoggerInterface $logger: @logger
```

Allows more precise targets for bindings as it will match only if both the type and the name match.
Works with scalar/array types also for consistency.

Commits
-------

32fc58df8b [DI] Allow binding by type+name
2018-05-21 20:14:38 +02:00
Fabien Potencier
af4372220c Merge branch '4.0' into 4.1
* 4.0:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:10:11 +02:00
Fabien Potencier
4d8a71d321 Merge branch '3.4' into 4.0
* 3.4:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:09:47 +02:00
Fabien Potencier
c280f8aa27 bug #27271 [DI] Allow defining bindings on ChildDefinition (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow defining bindings on ChildDefinition

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Spotted by @stof while trying to put https://github.com/symfony/monolog-bundle/pull/254 into practice.
Binding log channels doesn't work because we put this artificial restriction in place.
Let's allow ChildDefinition to have bindings (but only at the DI extension level, loaders still forbid defining them at their level because of the parent vs _defaults ambiguity.)

Commits
-------

1c3b1055df [DI] Allow defining bindings on ChildDefinition
2018-05-17 12:22:44 +02:00
Nicolas Grekas
68eda49322 [DI] Fix hidding service in autowiring errors 2018-05-16 18:27:27 +02:00
Nicolas Grekas
205b097802 Merge branch '4.0' into 4.1
* 4.0: (21 commits)
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  fixed CS
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  [DI] Display previous error messages when throwing unused bindings
  Fixed return type
  ...
2018-05-16 16:33:22 +02:00
Nicolas Grekas
8c430fbeb2 Merge branch '3.4' into 4.0
* 3.4:
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  [DI] Display previous error messages when throwing unused bindings
  Suppress warnings when open_basedir is non-empty
2018-05-16 11:05:32 +02:00
Nicolas Grekas
10a2d39365 bug #27265 [DI] Shared services should not be inlined in non-shared ones (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Shared services should not be inlined in non-shared ones

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

[Already good on 2.7/2.8.](https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php#L152)

Commits
-------

6f8b8625f4 [DI] Shared services should not be inlined in non-shared ones
2018-05-15 10:55:40 +02:00
Nicolas Grekas
1c3b1055df [DI] Allow defining bindings on ChildDefinition 2018-05-15 09:24:59 +02:00
Nicolas Grekas
6f8b8625f4 [DI] Shared services should not be inlined in non-shared ones 2018-05-14 18:07:37 +02:00
Nicolas Grekas
f2231b584e [DI] Display previous error messages when throwing unused bindings 2018-05-09 11:49:38 -07:00
Nicolas Grekas
32fc58df8b [DI] Allow binding by type+name 2018-05-06 08:21:25 -07:00
Iltar van der Berg
94314f9d55 [DI] Minor performance tweak in PriorityTaggedServiceTrait 2018-05-03 17:03:52 -07:00
Nicolas Grekas
8c0199e66b Merge branch '4.0'
* 4.0:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:07:08 -07:00
Nicolas Grekas
ca0f0cf351 Merge branch '3.4' into 4.0
* 3.4:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:05:59 -07:00
Ryan Weaver
309da927e3 Avoiding an error when an unused service has a missing base class
This mirrors what was already done in AutowirePass
2018-04-29 10:04:08 -04:00
Fabien Potencier
833909bd68 feature #26921 [DI][FrameworkBundle] Hide service ids that start with a dot (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI][FrameworkBundle] Hide service ids that start with a dot

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #26630
| License       | MIT
| Doc PR        | -

Now that services are private by default, `debug:container` should display them by default.
In fact, the public/private concept should not trigger a difference in visibility for this command.

Instead, I propose to handle service ids that start with a dot as hidden services.

PR should be ready.

(For reference, I tried using a tag instead in #26891, but that doesn't work in practice when working on the implementation.)

Commits
-------

cea051ee5e [DI][FrameworkBundle] Hide service ids that start with a dot
2018-04-20 15:23:35 +02:00
Nicolas Grekas
cea051ee5e [DI][FrameworkBundle] Hide service ids that start with a dot 2018-04-20 15:14:43 +02:00
Fabien Potencier
306c5992ec feature #26768 [DI] Allow autoconfigured calls in PHP (Gary PEGEOT, GaryPEGEOT)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI] Allow autoconfigured calls in PHP

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    |no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Allow to auto-configured method calls like:
```php
$container->registerForAutoconfiguration(LoggerAwareInterface::class)->addMethodCall('setLogger', array(new Reference(LoggerInterface::class)));
```

Commits
-------

1d811cb3f7 Add test for both _intanceof and manual method setting.
71bf3ced74 CS fix
15c45ee40a Add more test-cases
2612f81052 Allow autoconfigured calls in PHP.
2018-04-20 06:42:42 +02:00
Nicolas Grekas
782ffe2fd2 Merge branch '4.0'
* 4.0:
  [HttpKernel] Make ServiceValueResolver work if controller namespace starts with a backslash in routing
  Add d-block to bootstrap 4 alerts
  [Console] Don't go past exact matches when autocompleting
  [DI] Improve error message for non-autowirable scalar argument
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
  [HttpKernel] Dont create mock cookie for new sessions in tests
2018-04-14 11:36:26 -05:00
Nicolas Grekas
594925a934 Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Make ServiceValueResolver work if controller namespace starts with a backslash in routing
  Add d-block to bootstrap 4 alerts
  [Console] Don't go past exact matches when autocompleting
  [DI] Improve error message for non-autowirable scalar argument
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
  [HttpKernel] Dont create mock cookie for new sessions in tests
2018-04-14 11:34:42 -05:00
Nicolas Grekas
7f398117f4 [DI] Improve error message for non-autowirable scalar argument 2018-04-09 15:40:31 -05:00
Gary PEGEOT
2612f81052 Allow autoconfigured calls in PHP. 2018-04-04 01:22:26 +02:00
Nicolas Grekas
6e95c2ad27 Merge branch '4.0'
* 4.0: (24 commits)
  moved Twig runtime to proper class
  fixed deprecated messages in tests
  add PHP errors options to XML schema definition
  [HttpCache] Unlink tmp file on error
  Added LB translation for #26327 (Errors sign for people that do not see colors)
  [TwigBridge] Fix rendering of currency by MoneyType
  Import InvalidArgumentException in PdoAdapter
  [DI] Do not suggest writing an implementation when multiple exist
  [Intl] Update ICU data to 61.1
  Use 3rd person verb form in command description
  [Validator] Add Japanese translation
  Support phpdbg SAPI in Debug::enable()
  [HttpKernel] DumpDataCollector: do not flush when a dumper is provided
  [DI] Fix hardcoded cache dir for warmups
  [Routing] fix tests
  [Routing] Fixed the importing of files using glob patterns that match multiple resources
  [Ldap] cast to string when checking empty passwords
  [Validator] sync validator translation id
  [WebProfilerBundle] use the router to resolve file links
  no type errors with invalid submitted data types
  ...
2018-04-02 12:08:33 +02:00
Nicolas Grekas
a5a44472c9 Merge branch '3.4' into 4.0
* 3.4: (24 commits)
  moved Twig runtime to proper class
  fixed deprecated messages in tests
  add PHP errors options to XML schema definition
  [HttpCache] Unlink tmp file on error
  Added LB translation for #26327 (Errors sign for people that do not see colors)
  [TwigBridge] Fix rendering of currency by MoneyType
  Import InvalidArgumentException in PdoAdapter
  [DI] Do not suggest writing an implementation when multiple exist
  [Intl] Update ICU data to 61.1
  Use 3rd person verb form in command description
  [Validator] Add Japanese translation
  Support phpdbg SAPI in Debug::enable()
  [HttpKernel] DumpDataCollector: do not flush when a dumper is provided
  [DI] Fix hardcoded cache dir for warmups
  [Routing] fix tests
  [Routing] Fixed the importing of files using glob patterns that match multiple resources
  [Ldap] cast to string when checking empty passwords
  [Validator] sync validator translation id
  [WebProfilerBundle] use the router to resolve file links
  no type errors with invalid submitted data types
  ...
2018-04-02 11:52:41 +02:00
Robin Chalas
1ffdb50341 [DI] Do not suggest writing an implementation when multiple exist 2018-03-29 13:25:31 +02:00
Fabien Potencier
820b728a33 feature #26627 [DI] Add runtime service exceptions to improve the error message when controller arguments cannot be injected (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI] Add runtime service exceptions to improve the error message when controller arguments cannot be injected

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #23997
| License       | MIT
| Doc PR        | -

![image](https://user-images.githubusercontent.com/243674/37775694-e5c9814c-2de3-11e8-8290-8fd05086da28.png)

Commits
-------

9e8e0630a9 [DI] Add ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE
2018-03-28 20:04:39 +02:00
Roland Franssen
2c74fbc3c5 [DI] Validate env vars in config 2018-03-27 08:02:00 +02:00
Nicolas Grekas
9e8e0630a9 [DI] Add ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE 2018-03-24 17:54:13 +01:00
Nicolas Grekas
95fd81b5d8 [DI] deprecate TypedReference::canBeAutoregistered() and getRequiringClass() 2018-03-22 15:55:20 +01:00
Nicolas Grekas
9131bd1c4b Merge branch '4.0'
* 4.0:
  [DI] Dont tell about autoregistration in strict autowiring mode
  [DI] Cleanup remainings from autoregistration
  [Process] Remove a useless cast
  [PHPunit] suite variable should be used
2018-03-22 14:45:58 +01:00
Nicolas Grekas
0c8ca6acdb Merge branch '3.4' into 4.0
* 3.4:
  [DI] Dont tell about autoregistration in strict autowiring mode
  [PHPunit] suite variable should be used
2018-03-22 14:42:36 +01:00
Nicolas Grekas
5e922db4de [DI] Dont tell about autoregistration in strict autowiring mode 2018-03-22 12:44:08 +01:00
Nicolas Grekas
74afff8888 [DI] Cleanup remainings from autoregistration 2018-03-22 11:33:18 +01:00
Kévin Dunglas
24876f2adc [DI] Service decoration: autowire the inner service 2018-03-20 19:23:30 +01:00
Nicolas Grekas
a8dc953279 Merge branch '4.0'
* 4.0:
  [DI] Fix missing "id" normalization when dumping the container
  Add entry for `container.dumper.inline_class_loader` param at `UPGRADE-3.4.md` and `UPGRADE-4.0.md`
2018-03-02 15:22:00 +01:00
Nicolas Grekas
cb06d0f926 Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix missing "id" normalization when dumping the container
  Add entry for `container.dumper.inline_class_loader` param at `UPGRADE-3.4.md` and `UPGRADE-4.0.md`
2018-03-02 15:21:47 +01:00
Nicolas Grekas
4a5e43eae8 [DI] Fix missing "id" normalization when dumping the container 2018-03-02 14:51:21 +01:00
Nicolas Grekas
3609744ab8 Merge branch '4.0'
* 4.0:
  [Translation] Process multiple segments within a single unit.
  Document the container.autowiring.strict_mode option
  fix custom radios/inputs for checkbox/radio type
  Another PR template tweak
  [FrameworkBundle] Add missing XML config for circular_reference_handler. Add tests.
  fix CS
  [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties
  Clean calls to http_build_query()
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
  Add support for URL-like DSNs for the PdoSessionHandler
  removed version in @final @internal for version < 4.0
  [HttpFoundation] Fix missing "throw" in JsonResponse
  Improve the documentation of
  Suppress warning from sapi_windows_vt100_support on stream other than STDIO
  removed extra-verbose comments
  Fixes #26136: Avoid emitting warning in hasParameterOption()
  Added a README entry to the PR template
  [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
  [DI] Add null check for removeChild
2018-02-22 12:40:25 +01:00
Fabien Potencier
ed27b12d2c removed version in @final @internal for version < 4.0 2018-02-19 13:18:43 +01:00
Nicolas Grekas
302f33702d Merge branch '4.0'
* 4.0:
  fix merge
  Fix lock strategy tests
  [travis] cache compiled php extensions
  fix merge
  Allow remember-me factory creation when multiple user providers are configured.
  Add tests for glob loaders
  Improve assertions
  [DI][Routing] Fix tracking of globbed resources
  [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource
  always call the parent class' constructor
2018-02-04 14:10:55 +01:00
Nicolas Grekas
752c7cbbbe Merge branch '3.4' into 4.0
* 3.4:
  Fix lock strategy tests
  [travis] cache compiled php extensions
  fix merge
  Allow remember-me factory creation when multiple user providers are configured.
  Add tests for glob loaders
  Improve assertions
  [DI][Routing] Fix tracking of globbed resources
  [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource
  always call the parent class' constructor
2018-02-04 14:08:26 +01:00
Nicolas Grekas
67e821b94f [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource 2018-01-31 11:49:53 +01:00
Nicolas Grekas
87adf25091 Merge branch '4.0'
* 4.0:
  Have weak_vendors ignore deprecations from outside
  [HttpFoundation] fixed return type of method HeaderBag::get
  [HttpFoundation] Added "resource" type on Request::create docblock
  [Console] Fix using finally where the catch can also fail
  [Process] Skip environment variables with false value in Process
  Revert "bug #25789  Enableable ArrayNodeDefinition is disabled for empty configuration (kejwmen)"
  Formatting fix in upgrade 3.0 document
  don't split lines on carriage returns when dumping
  trim spaces from unquoted scalar values
  Revert "bug #25851 [Validator] Conflict with egulias/email-validator 2.0 (emodric)"
  [DI] compilation perf tweak
  [Validator] Conflict with egulias/email-validator 2.0
  [Validator] add missing parent isset and add test
2018-01-21 20:07:38 +01:00
Nicolas Grekas
ee04e5b58f Merge branch '3.4' into 4.0
* 3.4:
  Have weak_vendors ignore deprecations from outside
  [HttpFoundation] fixed return type of method HeaderBag::get
  [HttpFoundation] Added "resource" type on Request::create docblock
  [Process] Skip environment variables with false value in Process
  Revert "bug #25789  Enableable ArrayNodeDefinition is disabled for empty configuration (kejwmen)"
  Formatting fix in upgrade 3.0 document
  don't split lines on carriage returns when dumping
  Revert "bug #25851 [Validator] Conflict with egulias/email-validator 2.0 (emodric)"
  [DI] compilation perf tweak
  [Validator] Conflict with egulias/email-validator 2.0
  [Validator] add missing parent isset and add test
2018-01-21 20:06:11 +01:00
Nicolas Grekas
8d4e3c52c0 Merge branch '3.3' into 3.4
* 3.3:
  Have weak_vendors ignore deprecations from outside
  [HttpFoundation] fixed return type of method HeaderBag::get
  [HttpFoundation] Added "resource" type on Request::create docblock
  [Process] Skip environment variables with false value in Process
  Revert "bug #25789  Enableable ArrayNodeDefinition is disabled for empty configuration (kejwmen)"
  Formatting fix in upgrade 3.0 document
  don't split lines on carriage returns when dumping
  Revert "bug #25851 [Validator] Conflict with egulias/email-validator 2.0 (emodric)"
  [DI] compilation perf tweak
  [Validator] Conflict with egulias/email-validator 2.0
  [Validator] add missing parent isset and add test
2018-01-21 20:05:02 +01:00
Nicolas Grekas
ad8aff4203 [DI] compilation perf tweak 2018-01-20 09:34:19 +01:00
Nicolas Grekas
95dfa9343c Merge branch '4.0'
* 4.0: (23 commits)
  Clean up
  Update return type in docblock.
  PHP CS Fixer: no need to exclude xml and yml files
  PHP CS Fixer: no need to exclude json file
  [#22749] fix version in changelog
  Update LICENSE year... forever
  fixed some deprecation messages
  fixed CS
  Fixes for Oracle in PdoSessionHandler
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  Remove dead code
  [TwigBundle/Brige] catch missing requirements to throw meaningful exceptions
  [DI] fix CS
  [HttpKernel] Call Response->setPrivate() instead of sending raw header() when session is started
  [FrameworkBundle] Make cache:clear "atomic" and consistent with cache:warmup
  Suggest to write an implementation if the interface cannot be autowired
  [Debug] Skip DebugClassLoader checks for already parsed files
  ...
2018-01-02 17:38:14 +01:00
Nicolas Grekas
f9fdb228ce Merge branch '3.4' into 4.0
* 3.4:
  Clean up
  Update return type in docblock.
  PHP CS Fixer: no need to exclude xml and yml files
  PHP CS Fixer: no need to exclude json file
  Update LICENSE year... forever
  fixed some deprecation messages
  fixed CS
  Fixes for Oracle in PdoSessionHandler
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  [TwigBundle/Brige] catch missing requirements to throw meaningful exceptions
  [HttpKernel] Call Response->setPrivate() instead of sending raw header() when session is started
  [FrameworkBundle] Make cache:clear "atomic" and consistent with cache:warmup
  Suggest to write an implementation if the interface cannot be autowired
  [Debug] Skip DebugClassLoader checks for already parsed files
  [2.7][DX] Use constant message contextualisation for deprecations
  Remove group options without data and fix normalization
  Remove redundant translation path
2018-01-02 17:33:53 +01:00
Fabien Potencier
3a5c8a424e fixed some deprecation messages 2017-12-31 07:59:27 +01:00
Fabien Potencier
22c0e81d79 Merge branch '3.3' into 3.4
* 3.3:
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  fixed some deprecation messages
  [2.7][DX] Use constant message contextualisation for deprecations
2017-12-31 07:07:31 +01:00
Fabien Potencier
74383b6e59 fixed some deprecation messages 2017-12-31 06:50:45 +01:00
Samuel ROZE
961e3e719c
Suggest to write an implementation if the interface cannot be autowired 2017-12-24 11:30:04 +01:00
Nicolas Grekas
7ecfc7fedc Merge branch '4.0'
* 4.0: (25 commits)
  [Form] fix how form type is referenced in test
  fix merge
  [Console] Fix console tests by adding the missing condition
  [Translation] Fix InvalidArgumentException when using untranslated plural forms from .po files
  Fixed exit code with non-integer throwable code
  [HttpFoundation] Support 0 bit netmask in IPv6 ()
  [DI] Impossible to set an environment variable and then an array as container parameter
  [Process] remove false-positive BC breaking exception on Windows
  Tweaking class not found autowiring error
  [LDAP] added missing dots at the end of some exception messages.
  [TwigBridge] Add missing dev requirement for workflow
  fixed #25440
  empty lines don't count for indent detection
  Set `width: auto` on WebProfiler toolbar's reset.
  [Lock] Fix incorrect phpdoc
  [Process] Dont rely on putenv(), it fails on ZTS PHP
  [HttpKernel] detect deprecations thrown by container initialization during tests
  [HttpKernel] Fix logging of post-terminate errors/exceptions
  [DI] Add context to service-not-found exceptions thrown by service locators
  [Debug] Fix catching fatal errors in case of nested error handlers
  ...
2017-12-12 09:59:50 +01:00
Nicolas Grekas
15915fddf1 Merge branch '3.4' into 4.0
* 3.4: (22 commits)
  fix merge
  [Translation] Fix InvalidArgumentException when using untranslated plural forms from .po files
  Fixed exit code with non-integer throwable code
  [HttpFoundation] Support 0 bit netmask in IPv6 ()
  [DI] Impossible to set an environment variable and then an array as container parameter
  [Process] remove false-positive BC breaking exception on Windows
  Tweaking class not found autowiring error
  [LDAP] added missing dots at the end of some exception messages.
  [TwigBridge] Add missing dev requirement for workflow
  fixed #25440
  empty lines don't count for indent detection
  Set `width: auto` on WebProfiler toolbar's reset.
  [Lock] Fix incorrect phpdoc
  [Process] Dont rely on putenv(), it fails on ZTS PHP
  [HttpKernel] detect deprecations thrown by container initialization during tests
  [HttpKernel] Fix logging of post-terminate errors/exceptions
  [DI] Add context to service-not-found exceptions thrown by service locators
  [Debug] Fix catching fatal errors in case of nested error handlers
  [VarDumper] Fixed file links leave blank pages when ide is configured
  Fix hidden currency element with Bootstrap 3 theme
  ...
2017-12-12 09:41:51 +01:00
Fabien Potencier
966687672b Merge branch '3.3' into 3.4
* 3.3:
  Tweaking class not found autowiring error
  [TwigBridge] Add missing dev requirement for workflow
  fixed #25440
  empty lines don't count for indent detection
2017-12-11 12:38:23 -08:00
Fabien Potencier
5b66c269d2 bug #25381 [DI] Add context to service-not-found exceptions thrown by service locators (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Add context to service-not-found exceptions thrown by service locators

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes (DX)
| New feature?  | yes (...)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25342, #25196
| License       | MIT
| Doc PR        | -

Here hopefully is the fully-context aware message you're looking for @weaverryan @curry684.

![image](https://user-images.githubusercontent.com/243674/33726013-1db38a34-db74-11e7-91dd-ca9d53e58891.png)

Commits
-------

9512f268f4 [DI] Add context to service-not-found exceptions thrown by service locators
2017-12-11 12:28:19 -08:00
Ryan Weaver
48832e640a Tweaking class not found autowiring error 2017-12-11 12:15:52 -08:00
Nicolas Grekas
9512f268f4 [DI] Add context to service-not-found exceptions thrown by service locators 2017-12-09 20:32:41 +01:00
Nicolas Grekas
4ebea4e429 Merge branch '4.0'
* 4.0: (42 commits)
  fix merge
  Remove some unused variables and properties
  [appveyor] disable memory limit on composer up
  [HttpFoundation] don't prefix cookies with "Set-Cookie:"
  Remove some unused variables and properties
  [HttpFoundation] Fixed default user-agent (3.X -> 4.X)
  Fix debug:form definition
  Remove some unused variables, properties and methods
  fix some edge cases with indented blocks
  [ExpressionLanguage] Fix parse error on 5.3
  [HttpKernel] remove noisy frame in controller stack traces
  [DI] Force root-namespace for function calls in the dumper container
  [DI] Fix circular-aliases message
  register system cache clearer only if it's used
  doc : Namespace prefix must end with a "\"
  [ExpressionLanguage] throw an SyntaxError instead of letting a undefined index notice
  Prevent a loop in aliases within the `findDefinition` method
  [HttpKernel] Disable inlining on PHP 5
  Ensure that inlined services with parameterized class name can be dumped
  [DI] Fix non-string class handling in PhpDumper
  ...
2017-12-08 16:58:51 +01:00
Nicolas Grekas
0002c9b76d Merge branch '3.4' into 4.0
* 3.4: (37 commits)
  Remove some unused variables and properties
  [appveyor] disable memory limit on composer up
  [HttpFoundation] don't prefix cookies with "Set-Cookie:"
  Remove some unused variables and properties
  Fix debug:form definition
  Remove some unused variables, properties and methods
  fix some edge cases with indented blocks
  [ExpressionLanguage] Fix parse error on 5.3
  [HttpKernel] remove noisy frame in controller stack traces
  [DI] Force root-namespace for function calls in the dumper container
  [DI] Fix circular-aliases message
  register system cache clearer only if it's used
  doc : Namespace prefix must end with a "\"
  [ExpressionLanguage] throw an SyntaxError instead of letting a undefined index notice
  Prevent a loop in aliases within the `findDefinition` method
  [HttpKernel] Disable inlining on PHP 5
  Ensure that inlined services with parameterized class name can be dumped
  [DI] Fix non-string class handling in PhpDumper
  Throw a sensible exception when controller has been removed
  Remove LOCK_EX That Breaks Cache Usage on NFS
  ...
2017-12-08 16:46:13 +01:00
Nicolas Grekas
e9f7461ba9 Merge branch '3.3' into 3.4
* 3.3: (21 commits)
  [appveyor] disable memory limit on composer up
  Remove some unused variables and properties
  Remove some unused variables, properties and methods
  fix some edge cases with indented blocks
  [ExpressionLanguage] Fix parse error on 5.3
  [HttpKernel] remove noisy frame in controller stack traces
  [DI] Fix circular-aliases message
  [ExpressionLanguage] throw an SyntaxError instead of letting a undefined index notice
  Prevent a loop in aliases within the `findDefinition` method
  Fix php doc in Table class
  bumped Symfony version to 3.3.15
  updated VERSION for 3.3.14
  updated CHANGELOG for 3.3.14
  bumped Symfony version to 2.8.33
  updated VERSION for 2.8.32
  updated CHANGELOG for 2.8.32
  bumped Symfony version to 2.7.40
  updated VERSION for 2.7.39
  update CONTRIBUTORS for 2.7.39
  updated CHANGELOG for 2.7.39
  ...
2017-12-08 16:24:53 +01:00
Nicolas Grekas
344d93501e Merge branch '2.8' into 3.3
* 2.8:
  Remove some unused variables, properties and methods
  [ExpressionLanguage] Fix parse error on 5.3
  [HttpKernel] remove noisy frame in controller stack traces
  [ExpressionLanguage] throw an SyntaxError instead of letting a undefined index notice
  Fix php doc in Table class
  bumped Symfony version to 2.8.33
  updated VERSION for 2.8.32
  updated CHANGELOG for 2.8.32
  bumped Symfony version to 2.7.40
  updated VERSION for 2.7.39
  update CONTRIBUTORS for 2.7.39
  updated CHANGELOG for 2.7.39
2017-12-08 15:18:43 +01:00
Nicolas Grekas
af81bb5e24 Merge branch '2.7' into 2.8
* 2.7:
  Remove some unused variables, properties and methods
  [ExpressionLanguage] Fix parse error on 5.3
  [HttpKernel] remove noisy frame in controller stack traces
  [ExpressionLanguage] throw an SyntaxError instead of letting a undefined index notice
  Fix php doc in Table class
  bumped Symfony version to 2.7.40
  updated VERSION for 2.7.39
  update CONTRIBUTORS for 2.7.39
  updated CHANGELOG for 2.7.39
2017-12-08 13:32:59 +01:00
Titouan Galopin
30e227392a Remove some unused variables, properties and methods 2017-12-08 13:09:58 +01:00
Nicolas Grekas
19b03b5d7e Merge branch '4.0'
* 4.0:
  [DI] Fix missing unset leading to false-positive circular ref
  [DI] Fix deep-inlining of non-shared refs
  parse newlines in quoted multiline strings
  Fix collision between view properties and form fields
  Fix collision between view properties and form fields
  [SecurityBundle] Fix compat with HttpFoundation >=3.4
  [DI] turn $private to protected in dumped container, to make cache:clear BC
  Fix collision between view properties and form fields
2017-12-04 19:35:44 +01:00
Nicolas Grekas
8849fb907f Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix missing unset leading to false-positive circular ref
  [DI] Fix deep-inlining of non-shared refs
  parse newlines in quoted multiline strings
  Fix collision between view properties and form fields
  Fix collision between view properties and form fields
  [SecurityBundle] Fix compat with HttpFoundation >=3.4
  Fix collision between view properties and form fields
2017-12-04 19:34:52 +01:00
Fabien Potencier
9dff16479a Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix deep-inlining of non-shared refs
  parse newlines in quoted multiline strings
  Fix collision between view properties and form fields
2017-12-04 10:15:22 -08:00
Nicolas Grekas
eb2a15229a [DI] Fix deep-inlining of non-shared refs 2017-12-04 16:44:12 +01:00
Nicolas Grekas
5ed5dcf994 Merge branch '4.0'
* 4.0:
  SCA with Php Inspections (EA Extended)
  Add test case for #25264
  Fixed the null value exception case.
  Remove rc/beta suffix from composer.json files
  Ensure services & aliases can be referred to with `__toString`able objects
  Throw an exception is expression language is not installed
  [DI] Cast ids to string, as done on 3.4
  Fail as early and noisily as possible
  [Console][DI] Fail gracefully
  [FrameworkBundle] Fix visibility of a test helper
  [link] clear the cache after linking
  [DI] Trigger deprecation when setting a to-be-private synthetic service
  [Intl] Correct Typehint
  [link] Prevent warnings when running link with 2.7
  [Validator] ExpressionValidator should use OBJECT_TO_STRING to allow value in message
  do not eagerly filter comment lines
  [WebProfilerBundle], [TwigBundle] Fix Profiler breaking XHTML pages (Content-Type: application/xhtml+xml)
2017-12-04 13:32:14 +01:00
Nicolas Grekas
1da85910c7 Merge branch '3.4' into 4.0
* 3.4:
  SCA with Php Inspections (EA Extended)
  Add test case for #25264
  Fixed the null value exception case.
  Remove rc/beta suffix from composer.json files
  Throw an exception is expression language is not installed
  Fail as early and noisily as possible
  [Console][DI] Fail gracefully
  [FrameworkBundle] Fix visibility of a test helper
  [link] clear the cache after linking
  [DI] Trigger deprecation when setting a to-be-private synthetic service
  [link] Prevent warnings when running link with 2.7
  [Validator] ExpressionValidator should use OBJECT_TO_STRING to allow value in message
  do not eagerly filter comment lines
  [WebProfilerBundle], [TwigBundle] Fix Profiler breaking XHTML pages (Content-Type: application/xhtml+xml)
2017-12-04 13:31:58 +01:00
Nicolas Grekas
0b0542d45e bug #25285 [DI] Throw an exception if Expression Language is not installed (sroze)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Throw an exception if Expression Language is not installed

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25277
| License       | MIT
| Doc PR        | ø

The [`PhpDumper` already has this check](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php#L1688-L1690) but it is missing here.

Commits
-------

75b21e9 Throw an exception is expression language is not installed
2017-12-04 13:20:58 +01:00
Samuel ROZE
75b21e9c86
Throw an exception is expression language is not installed 2017-12-03 13:07:37 +00:00
Fabien Potencier
87f5876842 feature #24937 [DependencyInjection] Added support for variadics in named arguments (PabloKowalczyk)
This PR was squashed before being merged into the 4.1-dev branch (closes #24937).

Discussion
----------

[DependencyInjection] Added support for variadics in named arguments

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #24935
| License       | MIT

Commits
-------

b5c0e8977c [DependencyInjection] Added support for variadics in named arguments
2017-12-01 06:31:07 -08:00
pkowalczyk
b5c0e8977c [DependencyInjection] Added support for variadics in named arguments 2017-12-01 06:31:04 -08:00
Nicolas Grekas
ee71106da5 bug #25155 [DependencyInjection] Detect case mismatch in autowiring (Simperfit, sroze)
This PR was merged into the 4.0 branch.

Discussion
----------

[DependencyInjection] Detect case mismatch in autowiring

| Q             | A
| ------------- | ---
| Branch?       | 4.0
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25122
| License       | MIT
| Doc PR        | ø

If there is a case-sensitive typo in the service injection, this will suggest the non-typoed version.

Commits
-------

407f132 Test the suggestion of already registered services
decaf23 [DependencyInjection] Add more information to the message when passing miss matching class.
2017-11-30 15:32:51 +01:00
Samuel ROZE
407f132e43
Test the suggestion of already registered services 2017-11-30 11:00:15 +00:00
Nicolas Grekas
ff87b4c939 Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix circular reference when using setters
  [DI] Clear service reference graph
2017-11-29 17:55:50 +01:00
Nicolas Grekas
ad3ddebf90 bug #25204 [DI] Clear service reference graph (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Clear service reference graph

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes (memory usage)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Spotted while playing with the container: we keep this graph in memory even it its stale already.
Clearing it also leave circular refs for the php garbage collector, better clean ourselves.

Commits
-------

2744b41 [DI] Clear service reference graph
2017-11-29 17:40:14 +01:00
Christian Flothmann
1897ea087a Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Fix race condition when clearing old containers
  [DI] Fix infinite loop in InlineServiceDefinitionsPass
  [HttpKernel] Keep legacy container files for concurrent requests
  Do not cache cache attributes if `attributes` is in the context
  Test that it do not remove the new flashes when displaying the existing ones
  [HttpFoundation] AutExpireFlashBag should not clear new flashes
  [FrameworkBundle][Serializer] Remove YamlEncoder definition if Yaml component isn't installed
  [DI] Fix tracking of env vars in exceptions
  [Form] Don't rely on  if http-foundation isn't in FileType
  Fix merge
  substitute aliases in inline mappings
  added ability for substitute aliases when mapping in YAML is on single line
  [Console] Fix global console flag when used in chain
2017-11-29 14:42:03 +01:00
Christian Flothmann
f74ecedd0b Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix infinite loop in InlineServiceDefinitionsPass
  Do not cache cache attributes if `attributes` is in the context
  Test that it do not remove the new flashes when displaying the existing ones
  [HttpFoundation] AutExpireFlashBag should not clear new flashes
  [FrameworkBundle][Serializer] Remove YamlEncoder definition if Yaml component isn't installed
  [DI] Fix tracking of env vars in exceptions
  [Form] Don't rely on  if http-foundation isn't in FileType
  Fix merge
  substitute aliases in inline mappings
  added ability for substitute aliases when mapping in YAML is on single line
  [Console] Fix global console flag when used in chain
2017-11-29 14:28:14 +01:00
Nicolas Grekas
2744b41c83 [DI] Clear service reference graph 2017-11-29 09:18:28 +01:00
Nicolas Grekas
b988aa7c59 [DI] Fix infinite loop in InlineServiceDefinitionsPass 2017-11-29 09:04:31 +01:00
Christian Flothmann
d2496ab5d2 Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Better handling of legacy cache
  modify definitions only if the do exist
  [DI] Prevent a ReflectionException during cache:clear when the parent class doesn't exist
  [FrameworkBundle] Make MicroKernelTraitTest green
  don't override existing verbosity env var
  [HttpKernel] Read $_ENV when checking SHELL_VERBOSITY
  Remove unreachable code
  Automatically enable the CSRF protection if CSRF manager exists
  bumped Symfony version to 3.4.0
  adding checks for the expression language
  updated VERSION for 3.4.0-RC2
  updated CHANGELOG for 3.4.0-RC2
2017-11-28 23:05:27 +01:00
Nicolas Grekas
73f1ac5ea2 [DI] Fix tracking of env vars in exceptions 2017-11-26 20:37:03 +01:00
Fabien Potencier
7c0a59ffed bug #25158 [DI] Remove unreachable code (GawainLynch)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Remove unreachable code

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

#24033 added the ability to ignore uninitialized references, but the regex above the conditional would lead to an `InvalidArgumentException` being thrown.

Commits
-------

ced0857560 Remove unreachable code
2017-11-26 07:53:06 -08:00
Gawain Lynch
ced0857560
Remove unreachable code 2017-11-26 14:53:48 +01:00
Amrouche Hamza
decaf234dd
[DependencyInjection] Add more information to the message when passing miss matching class. 2017-11-25 14:01:35 +00:00
Nicolas Grekas
8b98282821 Merge branch '3.4' into 4.0
* 3.4:
  [DI] Dont resolve envs in service ids
  Add tests proving it can load annotated files
  [WebProfilerBundle] Reset letter-spacing in toolbar
  Prefer overflow-wrap to word-break
  remove more kernel.root_dir parameter refs
  [*Bundle] Replace some kernel.root_dir by kernel.project_dir
  removed some phpdocs
  [Routing] Fix "config-file-relative" annotation loader resources
  Make search in debug:container command case-insensitive
  `resolveEnvPlaceholders` will return a mixed value
  Update translation commands to work with default paths
  [FrameworkBundle] Fix AssetsInstallCommand
2017-11-24 15:34:08 +01:00
Nicolas Grekas
f897542cb2 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Dont resolve envs in service ids
  Add tests proving it can load annotated files
  [WebProfilerBundle] Reset letter-spacing in toolbar
  Prefer overflow-wrap to word-break
  [Routing] Fix "config-file-relative" annotation loader resources
  Make search in debug:container command case-insensitive
  `resolveEnvPlaceholders` will return a mixed value
2017-11-24 15:13:49 +01:00
Nicolas Grekas
7921255faf [DI] Dont resolve envs in service ids 2017-11-24 13:44:22 +01:00
Nicolas Grekas
5b6c1b3132 Merge branch '3.4'
* 3.4:
  [Bridge/PhpUnit] Sync the bridge version installed in vendor/ and in phpunit clone
  [DI] Analyze setter-circular deps more precisely
  fixing that PropertyNormalizer supports parent properties
  [SecurityBundle] Don't trigger auto-picking notice if provider is set per listener
  [TwigBundle][FrameworkBundle] Remove the internals from debug autowiring
  [DI] Skip hot_path tag for deprecated services as their class might also be
  [Cache] Memcached options should ignore "lazy"
  [FrameworkBundle] Dont create empty bundles directory
2017-11-20 22:12:12 +01:00
Nicolas Grekas
9cc4a213c9 [DI] Analyze setter-circular deps more precisely 2017-11-20 18:46:17 +01:00
Nicolas Grekas
1775bba68f [DI] Skip hot_path tag for deprecated services as their class might also be 2017-11-19 23:04:27 +01:00
Nicolas Grekas
a36fb5427e Merge branch '3.4'
* 3.4: (26 commits)
  [Bridge\PhpUnit] Disable broken auto-require mechanism of phpunit
  [Console] Fix disabling lazy commands
  [DI] Remove scalar typehint in class used in test case
  Remove the `server:log` command if monolog is not loaded
  [SecurityBundle] Fix syntax error in test
  [Console] Remove remaining dead code
  Throw on service:method factory notation in PHP-based DI configuration
  Test that named arguments are prioritized over typehinted
  bumped Symfony version to 3.3.14
  bumped Symfony version to 2.8.32
  bumped Symfony version to 2.7.39
  Prove that change is working with tests
  updated VERSION for 3.3.13
  updated CHANGELOG for 3.3.13
  updated VERSION for 2.8.31
  updated CHANGELOG for 2.8.31
  updated VERSION for 2.7.38
  updated CHANGELOG for 2.7.38
  Replace array|\Traversable by iterable
  [DI] Fix by-type args injection
  ...
2017-11-19 20:43:46 +02:00
Nicolas Grekas
2176be74d8
[DI] Fix by-type args injection 2017-11-16 13:36:51 +02:00
Nicolas Grekas
dd82ca8a58 Merge branch '3.4'
* 3.4:
  [DI] Add "container.hot_path" tag to flag the hot path and inline related services
  [FrameworkBundle] Fine-tune generated annotations.php cache
  [HttpFoundation] Prevent PHP from sending Last-Modified on session start
  Micro optim using explicit root namespaces
2017-11-09 18:30:28 +01:00
Nicolas Grekas
f7cb559a06 [DI] Add "container.hot_path" tag to flag the hot path and inline related services 2017-11-09 15:14:31 +01:00
Nicolas Grekas
aaf2265203 Replace more docblocks by type-hints 2017-11-07 15:45:01 +01:00
Nicolas Grekas
d7547f2e95 Merge branch '3.4'
* 3.4:
  [3.4] Remove useless docblocks
  [3.3] More docblock fixes
  [2.7] More docblock fixes
  [TwigBridge] Fix BC break due required twig environment
  Random fixes
  Docblock fixes
  [DI] Fix cannot bind env var
  Fix some signatures in PHP-DSLs
  [HttpKernel] Enhance deprecation message
  bumped Symfony version to 3.4.0
  updated VERSION for 3.4.0-BETA3
  updated CHANGELOG for 3.4.0-BETA3
  [SecurityBundle] Fix the datacollector to properly support decision.object being null
2017-11-07 15:34:02 +01:00
Maxime Steinhausser
f8f3a15b7a [DI] Fix cannot bind env var 2017-11-07 09:01:11 +01:00
Nicolas Grekas
4c1de3fbff Merge branch '3.4'
* 3.4:
  [HttpFoundation] refactoring: calculate when need
  [Serializer] Fix extra attributes when no group specified
  [Intl] Make intl-data tests pass and save language aliases again
  [FrameworkBundle][Config] fix: do not add resource checkers for debug=false
  [DI] Fix "almost-circular" dependencies handling
  [Console] Fix CommandTester::setInputs() docblock
  Only enabling validation if it is present
  Fix displaying errors for bootstrap 4
  [Serializer] readd default argument value
  Fix reference dump for deprecated nodes
  [PhpUnitBridge] Fixed fatal error in CoverageListener when something goes wrong in Test::setUpBeforeClass
  [HttpKernel] Let the storage manage the session starts
  [VarDumper] fix trailling comma when dumping an exception
  [Validator] Fix TraceableValidator is reset on data collector instantiation
  Remove useless docblocks
  [FrameworkBundle] Fix docblocks
  [PropertyInfo] Remove useless docblocks
2017-11-05 17:26:21 +01:00
Nicolas Grekas
73982760f7 Merge branch '3.3' into 3.4
* 3.3:
  [Serializer] Fix extra attributes when no group specified
  [Intl] Make intl-data tests pass and save language aliases again
  [Console] Fix CommandTester::setInputs() docblock
  [Serializer] readd default argument value
  [VarDumper] fix trailling comma when dumping an exception
  Remove useless docblocks
  [FrameworkBundle] Fix docblocks
  [PropertyInfo] Remove useless docblocks
2017-11-05 17:10:10 +01:00
Nicolas Grekas
b354d6ca84 Merge branch '2.8' into 3.3
* 2.8:
  [Intl] Make intl-data tests pass and save language aliases again
  Remove useless docblocks
  [PropertyInfo] Remove useless docblocks
2017-11-05 16:47:03 +01:00
Nicolas Grekas
9bc9474ff0 Merge branch '2.7' into 2.8
* 2.7:
  [Intl] Make intl-data tests pass and save language aliases again
  Remove useless docblocks
2017-11-05 16:25:56 +01:00
Nicolas Grekas
2443511324 Remove useless docblocks 2017-10-29 10:49:53 +01:00
Nicolas Grekas
5c74f11b52 Merge branch '3.4'
* 3.4:
  Ensure DeprecationErrorHandler::collectDeprecations() is triggered
  Config: mark builder property deprecated
  fix CachePoolPrunerPass to use correct command service id
  [TwigBridge] Re-add Bootstrap 3 Checkbox Layout
  [FrameworkBundle] Allow to disable assets via framework:assets xml configuration
  fixed $_ENV/$_SERVER precedence in test framework
  [HttpFoundation] Fix FileBag issue with associative arrays
  [DI] Throw when a service name or an alias contains dynamic values (prevent an infinite loop)
  [HttpFoundation] Fix caching of session-enabled pages
  [Guard] remove invalid deprecation notice
  fix the phpdoc that is not really inherited from response
  Minor docblock cleanup
  Remove redundant sprintf arguments.
2017-10-28 18:54:10 +02:00
Nicolas Grekas
c7e59b3a5b Merge branch '3.3' into 3.4
* 3.3:
  Ensure DeprecationErrorHandler::collectDeprecations() is triggered
  [FrameworkBundle] Allow to disable assets via framework:assets xml configuration
  fixed $_ENV/$_SERVER precedence in test framework
  [HttpFoundation] Fix FileBag issue with associative arrays
  [DI] Throw when a service name or an alias contains dynamic values (prevent an infinite loop)
  fix the phpdoc that is not really inherited from response
  Minor docblock cleanup
  Remove redundant sprintf arguments.
2017-10-28 18:49:05 +02:00
Kévin Dunglas
14e30857ea [DI] Throw when a service name or an alias contains dynamic values (prevent an infinite loop) 2017-10-25 18:14:47 -07:00
Nicolas Grekas
5eab353117 Remove some visual debt by adding type hints on final methods/classes 2017-10-24 16:36:35 +02:00
Nicolas Grekas
4058f2f284 Merge branch '3.4'
* 3.4:
  [DI] minor docblock fixes
2017-10-24 16:16:56 +02:00
Nicolas Grekas
1e1b37753c Merge branch '3.3' into 3.4
* 3.3:
  [DI] minor docblock fixes
2017-10-24 16:12:06 +02:00
Nicolas Grekas
7fb9f614ee Merge branch '2.8' into 3.3
* 2.8:
  [DI] minor docblock fixes
2017-10-24 16:05:06 +02:00
Nicolas Grekas
2b95ba3299 Merge branch '2.7' into 2.8
* 2.7:
  [DI] minor docblock fixes
2017-10-24 15:48:52 +02:00
Nicolas Grekas
a13befe38e Merge branch '3.4'
* 3.4:
  [DI] Handle container.autowiring.strict_mode to opt-out from legacy autowiring
  [2.8] Fix some docblocks
  Escape trailing \ in QuestionHelper autocompletion
  [FrameworkBundle][Serializer] Remove outdated condition
  Add "doctrine/annotations" to top-level composer.json
  Fix phpdoc inconsistencies, simplify no-op sprintf.
  Remove inapplicable phpdoc comment
  nit: Fix phpdoc inconsistency and unreachable statement
  [DI] Register default env var provided types
  Fix phpdoc and unnecessary sprintf
  [FrameworkBundle][Workflow] Fix deprectation when checking workflow.registry service in dump command
  [Security] Fix BC layer for AbstractGuardAuthenticator subclasses
  Prefer line formatter on missing cli dumper
  [DI] Enhance service locator error message
2017-10-24 14:50:36 +02:00
Nicolas Grekas
cb5e7912c7 Merge branch '3.3' into 3.4
* 3.3:
  [2.8] Fix some docblocks
  Escape trailing \ in QuestionHelper autocompletion
  [FrameworkBundle][Serializer] Remove outdated condition
  Add "doctrine/annotations" to top-level composer.json
  Fix phpdoc inconsistencies, simplify no-op sprintf.
  Remove inapplicable phpdoc comment
  nit: Fix phpdoc inconsistency and unreachable statement
  Prefer line formatter on missing cli dumper
  [DI] Enhance service locator error message
2017-10-24 14:44:53 +02:00
Nicolas Grekas
2a5759d7b7 feature #24671 [DI] Handle container.autowiring.strict_mode to opt-out from legacy autowiring (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Handle container.autowiring.strict_mode to opt-out from legacy autowiring

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

To preserve BC, autowiring still wires things in hybrid 2.8/3.3 modes.
But 2.8 mode is really a foot gun.
I propose to add a new parameter in SF3.4, to opt-out of this 2.8 mode, and enable this strict mode for all new projects.
WDYT?
(see https://github.com/symfony/recipes/pull/221 for corresponding change on Flex recipe)

Commits
-------

a4a0ae2 [DI] Handle container.autowiring.strict_mode to opt-out from legacy autowiring
2017-10-24 14:37:11 +02:00
Nicolas Grekas
0c9edaf336 [DI] minor docblock fixes 2017-10-24 13:40:19 +02:00
Nicolas Grekas
a4a0ae20ca [DI] Handle container.autowiring.strict_mode to opt-out from legacy autowiring 2017-10-24 09:38:31 +02:00
Roland Franssen
3cee7a65de [DI] Register default env var provided types 2017-10-21 10:39:15 +02:00
Nicolas Grekas
14de848cc4 Merge branch '3.4'
* 3.4:
  bumped Symfony version to 3.4.0
  updated VERSION for 3.4.0-BETA1
  updated CHANGELOG for 3.4.0-BETA1
  Do not process bindings in AbstractRecursivePass
  don't bind scalar values to controller method arguments
  Add extra autowiring aliases
  adding AdapterInterface alias for cache.app
  Adding a new debug:autowiring command
  [HttpFoundation] Make sessions secure and lazy
  [Routing] Ensure uniqueness without repeated check
  [Console] Sync ConsoleLogger::interpolate with the one in HttpKernel
2017-10-18 17:12:27 -07:00
Robin Chalas
6a6256c6a8 Do not process bindings in AbstractRecursivePass 2017-10-18 14:27:18 +02:00
Nicolas Grekas
fdb0ea9fdd [DI] Enhance service locator error message 2017-10-17 00:51:02 +02:00
Nicolas Grekas
2ab092034b Merge branch '3.4'
* 3.4:
  fix merge
  fix merge
  [FORM] Prevent forms from extending itself as a parent
  fix merge
  Fix 7.2 compat layer
  [DI] Prefixed env vars and load time inlining are incompatible
  bug #24499 [Bridge\PhpUnit] Fix infinite loop when running isolated method (bis) (nicolas-grekas)
  Fix PHP 7.2 support
  [HttpFoundation] Add missing session.lazy_write config option
  [DI] Exclude inline services declared in XML from autowiring candidates
  [HttpFoundation] Combine Cache-Control headers
  [Form] fix parsing invalid floating point numbers
  Escape command usage when displaying it in the text descriptor
  [DI] Throw accurate failures when accessing removed services
  [DI] Turn private defs to non-public ones before removing passes
  Use for=ID on radio/checkbox label.
2017-10-10 16:32:10 +02:00
Fabien Potencier
5904d34125 bug #24488 [DI] Prefixed env vars and load time inlining are incompatible (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Prefixed env vars and load time inlining are incompatible

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

That's because env var processors are not registered yet.

Commits
-------

91c9287c55 [DI] Prefixed env vars and load time inlining are incompatible
2017-10-09 21:05:35 -07:00
Fabien Potencier
7f899a965a bug #24468 [DI] Turn private defs to non-public ones before removing passes (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Turn private defs to non-public ones before removing passes

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #24465
| License       | MIT
| Doc PR        | -

As spotted by @stof in https://github.com/symfony/symfony/issues/24465#issuecomment-334786670.

Commits
-------

e5d0934b87 [DI] Turn private defs to non-public ones before removing passes
2017-10-09 21:03:01 -07:00
Nicolas Grekas
91c9287c55 [DI] Prefixed env vars and load time inlining are incompatible 2017-10-09 19:43:01 +02:00
Nicolas Grekas
d90e7212ea [DI] Exclude inline services declared in XML from autowiring candidates 2017-10-08 16:39:03 +02:00
Nicolas Grekas
e5d0934b87 [DI] Turn private defs to non-public ones before removing passes 2017-10-07 10:21:26 +02:00
Christian Flothmann
45dd40cde8 remove deprecated features 2017-10-06 14:47:08 +02:00
Maxime Steinhausser
2ada55878a [DI] Remove AutowireExceptionPass 2017-10-02 18:13:45 +02:00
Nicolas Grekas
f2594d246b Merge branch '3.4'
* 3.4:
  [DI] Fix missing CHANGELOG update + typo
2017-10-02 16:55:52 +02:00
Maxime Steinhausser
f9aeee5e63 [DI] Fix missing CHANGELOG update + typo 2017-10-02 14:00:46 +02:00
Nicolas Grekas
d3f3721715 Merge branch '3.4'
* 3.4: (33 commits)
  Remove remaining `@experimental` annotations
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Validator] Add unique entity violation cause
  [Lock] Automaticaly release lock when user forget it
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  fixed CS
  [FrameworkBundle] Don't clear app pools on cache:clear
  Hide label button when its setted to false
  removed useless PHPDoc
  [HttpFoundation] Return instance in StreamedResponse
  [Form] Fix FormInterface::submit() annotation
  [PHPUnitBridge] don't remove when set to  empty string
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  ...
2017-10-02 08:59:24 +02:00
Nicolas Grekas
fedcc91c8d Merge branch '3.3' into 3.4
* 3.3: (23 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  [PHPUnitBridge] don't remove when set to  empty string
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  ...
2017-10-02 08:49:52 +02:00
Nicolas Grekas
a707bbf090 Merge branch '2.8' into 3.3
* 2.8: (22 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  [Filesystem] Fixed makePathRelative
  ...
2017-10-02 08:42:24 +02:00
Nicolas Grekas
d4cbc70c50 Merge branch '2.7' into 2.8
* 2.7: (22 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  [Filesystem] Fixed makePathRelative
  ...
2017-10-01 23:00:16 +02:00
Nicolas Grekas
3fde0f0644 Merge branch '3.4'
* 3.4:
  Adding a shortcuts for the main security functionality
  [DI] Reference tagged services in config
2017-09-28 17:44:33 +02:00
Nicolas Grekas
648a8953dd feature #22200 [DI] Reference tagged services in config (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Reference tagged services in config

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #12269
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/8404

This is a proof of concept to reference a sequence of tagged services.

The problem bugs me for some time, and at first i thought the solution was to have some super generic compiler pass. If it could replace a lot of compilers in core.. perhaps worth it, but eventually each tag comes with it's own logic, including how to deal with tag attributes.

However, writing the passes over and over again becomes tedious for the most basic usecase. So given the recent developments, this idea came to mind.

```yml
services:
    a:
        class: stdClass
        properties: { a: true }
        tags: [foo]

    b:
        class: stdClass
        properties: { b: true }
        tags: [foo]

    c:
        class: stdClass
        properties:
            #stds: !tagged_services foo (see #22198)
            stds: !tagged_services
                foo
```

```
dump(iterator_to_array($this->get('c')->stds));
```

```
array:2 [▼
  0 => {#5052 ▼
    +"a": true
  }
  1 => {#4667 ▼
    +"b": true
  }
]
```

Given the _basic_ example at https://symfony.com/doc/current/service_container/tags.html, this could replace that.

Any thoughts?

Commits
-------

979e58f [DI] Reference tagged services in config
2017-09-28 17:24:12 +02:00
Roland Franssen
979e58f370 [DI] Reference tagged services in config 2017-09-28 16:10:08 +02:00
Christian Flothmann
1e46891f55 Merge branch '3.4'
* 3.4:
  [DI] Fix missing use + minor tweaks
  [Routing] Enhance PHP DSL traits docblocks
  Fix AclSchemaListener deprecation
  Set a NullLogger in ApcuAdapter when Apcu is disabled in CLI
  Minor reword
  [HttpKernel] Make array vs "::" controller definitions consistent
  Fix tests
  [TwigBundle] Remove profiler related scripting
  [TwigBundle][WebProfilerBundle] Switch to DOMContentLoaded event
  [WebProfilerBundle] Hide inactive tabs from CSS
  [TwigBundle] Make deprecations scream in logs
  [TwigBundle] Hide logs if unavailable, i.e. webprofiler
  [TwigBundle] Break long lines in exceptions
  [WebProfilerBundle] Added missing link to profile token
  [DI] Fix decorated service merge in ResolveInstanceofConditionalsPass
  Preserve URI fragment in HttpUtils::generateUri()
  [PhpUnitBridge] do not require an error context
2017-09-28 15:19:12 +02:00
Christian Flothmann
b7d0b09f31 Merge branch '3.3' into 3.4
* 3.3:
  Set a NullLogger in ApcuAdapter when Apcu is disabled in CLI
  Minor reword
  [HttpKernel] Make array vs "::" controller definitions consistent
  Fix tests
  [TwigBundle] Remove profiler related scripting
  [TwigBundle][WebProfilerBundle] Switch to DOMContentLoaded event
  [WebProfilerBundle] Hide inactive tabs from CSS
  [TwigBundle] Make deprecations scream in logs
  [TwigBundle] Hide logs if unavailable, i.e. webprofiler
  [TwigBundle] Break long lines in exceptions
  [WebProfilerBundle] Added missing link to profile token
  [DI] Fix decorated service merge in ResolveInstanceofConditionalsPass
  Preserve URI fragment in HttpUtils::generateUri()
  [PhpUnitBridge] do not require an error context
2017-09-28 15:03:46 +02:00
Tobias Schultze
d40820b32f Merge branch '3.4' 2017-09-26 14:31:37 +02:00
Nicolas Grekas
5dcd573ecf bug #24313 [DI] Fix tracking of bound arguments when using autoconfiguration (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix tracking of bound arguments when using autoconfiguration

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

An exception is currently thrown when using arguments bindings on an autoconfigured controller action.
This fixes the issue.

Commits
-------

091f943 [DI] Fix tracking of bound arguments when using autoconfiguration
2017-09-26 11:47:50 +02:00
Nicolas Grekas
091f943900 [DI] Fix tracking of bound arguments when using autoconfiguration 2017-09-26 11:38:39 +02:00
Maxime Steinhausser
af9e2534df Fix merge 2017-09-26 08:23:35 +02:00
Maxime Steinhausser
3640585bfd Merge branch '3.4'
* 3.4:
  use the parseFile() method of the YAML parser
  [Yaml] support parsing files
  Adding Definition::addError() and a compiler pass to throw errors as exceptions
  [DI] Add AutowireRequiredMethodsPass to fix bindings for `@required` methods
  [Cache] Add ResettableInterface to allow resetting any pool's local state
  [DI][DX] Throw exception on some ContainerBuilder methods used from extensions
  added missing @author tag for new class
  allow forms without translations and validator
  [VarDumper] Make `dump()` a little bit more easier to use
  [Form] Add ambiguous & exception debug:form tests
  Reset the authentication token between requests.
  [Serializer] Getter for extra attributes in ExtraAttributesException
  [DI] Dont use JSON_BIGINT_AS_STRING

# Conflicts:
#	src/Symfony/Component/Routing/composer.json
#	src/Symfony/Component/Translation/composer.json
#	src/Symfony/Component/Yaml/Inline.php
#	src/Symfony/Component/Yaml/Tests/ParserTest.php
#	src/Symfony/Component/Yaml/Yaml.php
2017-09-26 08:12:47 +02:00
Maxime Steinhausser
55aa662480 feature #24295 [DI][DX] Throw exception on some ContainerBuilder methods used from extensions (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI][DX] Throw exception on some ContainerBuilder methods used from extensions

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no (unlikely, that would mean there already was an issue in userland code)
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #24282 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

88549fff5b [DI][DX] Throw exception on some ContainerBuilder methods used from extensions
2017-09-26 07:54:41 +02:00
Nicolas Grekas
8136fa5050 feature #24290 Adding Definition::addError() and a compiler pass to throw errors as exceptions (weaverryan)
This PR was squashed before being merged into the 3.4 branch (closes #24290).

Discussion
----------

Adding Definition::addError() and a compiler pass to throw errors as exceptions

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes & no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes (very minor)
| Tests pass?   | yes
| Fixed tickets | #23606
| License       | MIT
| Doc PR        | Not needed

Hi guys!

Very simple: when there is an error with a Definition, we can now call `Definition::addError()` instead of throwing an exception. Then, a new compiler pass (after removal) actually throws an exception. The advantage is that we can avoid throwing exceptions for services that are ultimately removed from the container. That's important for auto-registration, where we commonly register all services in `src/`... but then many of them are removed later.

A few interesting notes:
- We can probably convert more things from exceptions to `Definition::addError()`. I've only converted autowiring errors and things in `CheckArgumentsValidityPass` (that was necessary because it was throwing exceptions in some cases due to autowiring failing... which was the true error)
- `Definition` can hold multiple errors, but I'm only showing the first error in the exception message. The reason is clarity: I think usually the first error is the most (or only) important. But having `Definition::addError()` avoids the possibility of a later error overriding an earlier one

Cheers!

Commits
-------

a85b37a Adding Definition::addError() and a compiler pass to throw errors as exceptions
2017-09-25 11:29:01 +02:00
Ryan Weaver
a85b37a0e6 Adding Definition::addError() and a compiler pass to throw errors as exceptions 2017-09-25 11:28:57 +02:00
Nicolas Grekas
dc55dd2c99 [DI] Add AutowireRequiredMethodsPass to fix bindings for @required methods 2017-09-25 10:48:11 +02:00
Maxime Steinhausser
88549fff5b [DI][DX] Throw exception on some ContainerBuilder methods used from extensions 2017-09-24 17:28:40 +02:00
Nicolas Grekas
7a9eb2c654 Merge branch '3.4'
* 3.4:
  [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface
  [DI] Add "PHP fluent format" for configuring the container
  [Routing] Add PHP fluent DSL for configuring routes
  [Bridge\Doctrine] Add "DoctrineType::reset()" method
  [Serializer] Add local cache to normalizers
2017-09-20 15:30:08 +02:00
Nicolas Grekas
6973a1ae3b [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface 2017-09-20 15:13:20 +02:00
Nicolas Grekas
cc2abd9d1c fix merge 2017-09-20 06:13:06 +02:00
Nicolas Grekas
ff2ab5831a [DI] Fix private-by-default BC layer 2017-09-19 23:28:23 +02:00
Nicolas Grekas
e266fedfe0 Merge branch '3.4'
* 3.4:
  [DI] Turn services and aliases private by default, with BC layer
  [WebProfiler] Fix z-index for pinned AJAX block
  Require v3.4+ of the var-dumper component
2017-09-19 21:46:02 +02:00
Nicolas Grekas
9948b09c6d [DI] Turn services and aliases private by default, with BC layer 2017-09-19 11:28:48 +02:00
Nicolas Grekas
3da645efed [DI] remove confusing code 2017-09-18 17:50:14 +02:00
Kévin Dunglas
2a30908bcd
[DI] Fix decorated service merge in ResolveInstanceofConditionalsPass 2017-09-16 20:21:20 +02:00
Nicolas Grekas
537db6a6b6 Merge branch '3.4'
* 3.4:
  Fix travis php7.0
  fix oups
  Add support to environment variables APP_ENV/DEBUG in KernelTestCase
  [Routing] Cleanup apache fixtures
2017-09-13 13:47:04 +02:00
Nicolas Grekas
30a13baef3 fix oups 2017-09-13 13:33:28 +02:00
Nicolas Grekas
f1aaae3c8b Merge branch '3.4'
* 3.4:
  [DI] Resolve nested refs to aliases
2017-09-13 13:30:40 +02:00
Nicolas Grekas
8729f9fd6a [DI] Resolve nested refs to aliases 2017-09-13 13:21:02 +02:00
Nicolas Grekas
68a478befa Merge branch '3.4'
* 3.4:
  Make as many services private as possible
2017-09-13 10:49:19 +02:00
Nicolas Grekas
1936491f9b Make as many services private as possible 2017-09-13 09:59:43 +02:00
Fabien Potencier
6700d448ed Merge branch '3.4'
* 3.4:
  [CS] Apply phpdoc_annotation_without_dot
  bumped Symfony version to 3.3.10
  updated VERSION for 3.3.9
  updated CHANGELOG for 3.3.9
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Remove `protected_to_private` rule.
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 13:45:27 -07:00
Fabien Potencier
8cb614df9f Merge branch '3.3' into 3.4
* 3.3:
  [CS] Apply phpdoc_annotation_without_dot
  bumped Symfony version to 3.3.10
  updated VERSION for 3.3.9
  updated CHANGELOG for 3.3.9
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Remove `protected_to_private` rule.
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 13:45:17 -07:00
Fabien Potencier
e844b640de Merge branch '2.8' into 3.3
* 2.8:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:43:11 -07:00
Fabien Potencier
4e1c65c6f9 Merge branch '2.7' into 2.8
* 2.7:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:39:16 -07:00
Dariusz
7a97b49436 [CS] Apply phpdoc_annotation_without_dot 2017-09-11 13:37:52 -07:00
Nicolas Grekas
8357f2ae4a Merge branch '3.4'
* 3.4:
  Do not display short exception trace for built-in console exceptions
  Deprecated the web_profiler.position option
  [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass
  Throw a meaningful exception when an undefined user provider is used inside a firewall
  [DI] Allow processing env vars
2017-09-08 10:28:59 +02:00
Fabien Potencier
7dfb5aa321 feature #24122 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Because that name makes things harder to understand now.
This uses exactly the same BC layer logic as the one we have for the renaming of DefinitionDecorator to ChildDefinition.

Commits
-------

a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass
2017-09-07 07:45:15 -07:00
Nicolas Grekas
a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass 2017-09-07 10:45:01 +02:00
Nicolas Grekas
1f92e459db [DI] Allow processing env vars 2017-09-07 08:08:52 +02:00
Nicolas Grekas
8c70b3939c Merge branch '3.4'
* 3.4:
  Improved the design of the redirection method in the web toolbar
  Mark SemaphoreStore::isSupported() as internal
  [DI] Add ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE
  [FrameworkBundle] Fix form conflict rule
  [Security] add impersonator_user to "User was reloaded" log message
  [DI] Add upgrade note about case insenstive params
  add (pdo|chain) cache (adapter|simple) prune method
  Update NoSuchPropertyException message for writeProperty
  [Routing] added the possibility to define a prefix for all routes of a controller
  [DI] Don't track merged configs when the extension doesn't expose it
  [Cache] Use namespace versioning for backends that dont support clearing by keys
  [VarDumper] add force-collapse/expand + use it for traces
2017-09-03 10:15:12 +02:00
Nicolas Grekas
012c56b8cb Merge branch '3.3' into 3.4
* 3.3:
  Improved the design of the redirection method in the web toolbar
  Update NoSuchPropertyException message for writeProperty
  [DI] Don't track merged configs when the extension doesn't expose it
  [Cache] Use namespace versioning for backends that dont support clearing by keys
2017-09-03 10:01:11 +02:00
Nicolas Grekas
0db3358ddb [DI] Add ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE 2017-08-31 23:26:27 +02:00
Robin Chalas
0537e03e72 Merge branch '3.4'
* 3.4: (38 commits)
  Fix merge
  [Lock] Expose an expiringDate and isExpired method in Lock
  [VarDumper] fix DateCasterTest
  [config] Add ability to deprecate a node
  feature #22382 [config] Add abbitily to deprecate a node (Nyholm, fabpot, sanpii)
  Fix segfault in period caster
  Create an interface for TranslationReader and moved TranslationLoader to Translation component
  Always require symfony/polyfill-apcu to provide APCuIterator everywhere
  [Lock] Fix some tests that require pcntl_sigwaitinfo() function
  bumped Symfony version to 3.3.9
  updated VERSION for 3.3.8
  updated CHANGELOG for 3.3.8
  [DI] Fix tracking env var placeholders nested in object graphs
  bumped Symfony version to 3.3.8
  updated VERSION for 3.3.7
  updated CHANGELOG for 3.3.7
  Add period caster
  [DI] improve psr4-based service discovery with namespace option
  [DI] Fix tracking env vars when merging configs (bis)
  removed obsolete comment
  ...
2017-08-30 01:06:25 +02:00
Fabien Potencier
2e111b3cca Merge branch '3.3' into 3.4
* 3.3: (27 commits)
  Always require symfony/polyfill-apcu to provide APCuIterator everywhere
  bumped Symfony version to 3.3.9
  updated VERSION for 3.3.8
  updated CHANGELOG for 3.3.8
  [DI] Fix tracking env var placeholders nested in object graphs
  bumped Symfony version to 3.3.8
  updated VERSION for 3.3.7
  updated CHANGELOG for 3.3.7
  [DI] Fix tracking env vars when merging configs (bis)
  removed obsolete comment
  install PHPUnit 6 on PHP 7.2
  [Cache] Use zend.detect_unicode instead of zend.multibyte
  Fix case sensitive typo in use class name
  [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)
  [Debug] Remove false-positive check in DebugClassLoader
  [Validator] Fix use of GroupSequenceProvider in child classes
  Change number PHPDoc type to int|float
  [Cache] Workaround zend.detect_unicode + zend.multibyte
  [VarDumper] Strengthen dumped JS
  [VarDumper] Strengthen dumped JS
  ...
2017-08-29 14:00:42 -07:00
Nicolas Grekas
a8e6aac2f5 [DI] Don't track merged configs when the extension doesn't expose it 2017-08-29 15:24:02 +02:00
Nicolas Grekas
a8397cf1c7 [DI] Fix tracking env var placeholders nested in object graphs 2017-08-29 00:20:37 +02:00
Nicolas Grekas
baaff20f4a [DI] Fix tracking env vars when merging configs (bis) 2017-08-28 17:49:50 +02:00
Phil Taylor
6fe9072c42 Fix case sensitive typo in use class name
closes #24001

Simple typo fix
2017-08-27 14:23:17 +01:00
Nicolas Grekas
18ed089e80 Merge branch '3.4'
* 3.4:
  [Webprofiler] Added blocks that allows extension of the profiler page.
  [Dotenv] Get env using $_SERVER to work with fastcgi_param and workaround thread safety issues
  [Dotenv][WebServerBundle] Override previously loaded variables
  Create an interface for TranslationWriter
  [Translation] Adding the ability do dump <notes> in xliff2.0
  [DI] Use GlobResource for non-tracked directories
  [DI] Fix resolving env vars when compiling a ContainerBuilder
  [SecurityBundle] resolve class name parameter inside AddSecurityVotersPass
  [FrameworkBundle] Add soft conflict rule of "cache:clear" + HttpKernel 3.4
  [WebProfilerBundle] Re add missing link to the controller
2017-08-22 18:07:47 +02:00
Nicolas Grekas
3db39f453f Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix resolving env vars when compiling a ContainerBuilder
2017-08-21 18:05:35 +02:00
Nicolas Grekas
921959422f [DI] Fix resolving env vars when compiling a ContainerBuilder 2017-08-21 17:49:07 +02:00
Nicolas Grekas
c8d7a6fea0 Merge branch '3.4'
* 3.4:
  [HttpKernel][FrameworkBundle] Add RebootableInterface, fix and un-deprecate cache:clear with warmup
  [DI] Fix merging of env vars in configs
  Allow to get alternatives when ServiceNotFoundException occurs.
  [DI] Rererence parameter arrays when possible
  Revert "feature #21038 [FrameworkBundle] deprecated cache:clear with warmup (fabpot)"
2017-08-18 17:05:10 +02:00
Nicolas Grekas
3fa5b3aeba Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix merging of env vars in configs
2017-08-18 16:18:15 +02:00
Nicolas Grekas
00b927322c [DI] Fix merging of env vars in configs 2017-08-18 13:25:49 +02:00
Nicolas Grekas
8a58d96111 Merge branch '3.4'
* 3.4:
  [VarDumper] Fix tests with phpredis 3.1.3
  [Routing] Use "controller" keyword for configuring routes controllers
  [VarDumper] Fix interval caster with PT3600S-like spec
  [DI] Fix reading env vars from fastcgi params
  [HttpKernel] Remove old container files
  Allow phpdocumentor/reflection-docblock 4.
  [VarDumper] play nice with open_basedir when looking for composer.json
2017-08-17 15:45:39 +02:00
Nicolas Grekas
16d34ebcae Merge branch '3.3' into 3.4
* 3.3:
  [VarDumper] Fix tests with phpredis 3.1.3
  [DI] Fix reading env vars from fastcgi params
  Allow phpdocumentor/reflection-docblock 4.
  [VarDumper] play nice with open_basedir when looking for composer.json
2017-08-17 15:38:59 +02:00
Nicolas Grekas
adff65a602 [DI] Fix reading env vars from fastcgi params 2017-08-16 16:07:29 +02:00
Nicolas Grekas
8088661d6b Merge branch '3.4'
* 3.4:
  [DependencyInjection] Support local binding
2017-08-09 11:32:29 +02:00
Nicolas Grekas
fd16993a37 feature #22187 [DependencyInjection] Support local binding (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #22187).

Discussion
----------

[DependencyInjection] Support local binding

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/22167, #23718
| License       | MIT
| Doc PR        |

> A great idea came out on Slack about local bindings.
> We could allow injecting services based on type hints on a per service/file basis:
> ```yml
> services:
>     _defaults:
>         bind:
>             BarInterface: '@usual_bar'
>
>     Foo:
>         bind:
>             BarInterface: '@alternative_bar'
>             $quz: 'quzvalue'
> ```
>
> This way, `@usual_bar` will be injected in any parameter type hinted as `BarInterface` (in a constructor or a method signature), but only for this service/file.
> Note that bindings could be unused, giving a better solution than https://github.com/symfony/symfony/pull/22152 to https://github.com/symfony/symfony/pull/21711.
>
> As named parameters are usable in arguments, bindings could be usable in arguments too:
> ```yml
> services:
>     Foo:
>         arguments:
>             BarInterface: '@bar'
> ```

~Named parameters aren't supported yet.~

Edit:

> Note that bindings could be unused

Current behavior is throwing an exception when a binding is not used at all, in no services of a file if it was inherited from `_defaults` or in no services created from a prototype.
It will pass if the bindings are all used in at least one service.

Commits
-------

81f2652 [DependencyInjection] Support local binding
2017-08-09 11:26:28 +02:00
Guilhem Niot
81f2652371 [DependencyInjection] Support local binding 2017-08-09 11:26:25 +02:00
Nicolas Grekas
257b2c9459 Merge branch '3.4'
* 3.4:
  [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services
  Consistently use 7 chars of sha256 for hash-based id generation
  Docblock improvement
  bumped Symfony version to 2.8.27
  updated VERSION for 2.8.26
  updated CHANGELOG for 2.8.26
  bumped Symfony version to 2.7.34
  updated VERSION for 2.7.33
  update CONTRIBUTORS for 2.7.33
  updated CHANGELOG for 2.7.33
2017-08-03 14:18:13 +02:00
Fabien Potencier
ce1050820f minor #23766 Consistently use 7 chars of sha256 for hash-based id generation (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Consistently use 7 chars of sha256 for hash-based id generation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This prevents generating over long service ids, and for filesystem-related changes, makes the Windows 258 chars limit farther.

Commits
-------

bc22cdd034 Consistently use 7 chars of sha256 for hash-based id generation
2017-08-03 14:04:31 +02:00
Nicolas Grekas
bc22cdd034 Consistently use 7 chars of sha256 for hash-based id generation 2017-08-03 13:27:37 +02:00
Nicolas Grekas
24fc394ad3 Merge branch '3.4'
* 3.4:
  [Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS
  [DependencyInjection] Deprecate autowiring service auto-registration
  Removed useless argument $definition
  [DI] Generate shorter method names for class-based ids
  Fix comment
  [Config] Fix checking class existence freshness
  bumped Symfony version to 3.3.7
  updated VERSION for 3.3.6
  updated CHANGELOG for 3.3.6
  Autoconfigure instances of ArgumentValueResolverInterface
  Deprecate Filesystem/LockHandler
  improve sql explain table display
  Bump minimal PHP version to ^5.5.9|>=7.0.8
2017-08-03 11:50:20 +02:00
Nicolas Grekas
2454a4f3f9 feature #23712 [DependencyInjection] Deprecate autowiring service auto-registration (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #23712).

Discussion
----------

[DependencyInjection] Deprecate autowiring service auto-registration

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/23350
| License       | MIT
| Doc PR        |

Fix https://github.com/symfony/symfony/issues/23350, to make autowiring more predictable.

Commits
-------

969a207 [DependencyInjection] Deprecate autowiring service auto-registration
2017-08-03 11:15:05 +02:00
Guilhem Niot
969a20780e [DependencyInjection] Deprecate autowiring service auto-registration 2017-08-03 11:07:16 +02:00
Nicolas Grekas
643c54ce52 Merge branch '3.4'
* 3.4:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS
  [DI] Fix test
  [Cache] Handle unserialization failures for Memcached
  Remove unused prop + added @deprecated
  Remove unused mocks/vars
  feature #22317 [Console] Make SymfonyQuestionHelper::ask optional by default (ro0NL)
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
  Router: allow HEAD method to be defined first
  [WebProfilerBundle] Display trace and context in the logger profiler
  Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-26 08:59:36 +02:00
Nicolas Grekas
4a3b3bef03 Merge branch '3.3' into 3.4
* 3.3:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS
  [DI] Fix test
  [Cache] Handle unserialization failures for Memcached
  Remove unused prop + added @deprecated
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
  Router: allow HEAD method to be defined first
  [WebProfilerBundle] Display trace and context in the logger profiler
  Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-26 08:46:38 +02:00
Nicolas Grekas
d56947698f Merge branch '3.2' into 3.3
* 3.2:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:42:48 +02:00
Nicolas Grekas
f3da6cf6a2 [DI] Fix using private services in expressions 2017-07-25 13:50:49 +02:00
Nicolas Grekas
d024d79559 Merge branch '3.4'
* 3.4: (22 commits)
  use Precise on Travis to keep PHP LDAP support
  Fix case sensitive sameSite cookie
  [PropertyInfo] Use rawurlencode to escape PSR-6 keys
  fix(security): ensure the 'route' index is set before attempting to use it
  Fix registering lazy command services with autoconfigure enabled
  Fix the design of the profiler exceptions when there is no message
  [Config] Minor fix
  document the TwigRenderer class deprecation
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
  [VarDumper] Use "C" locale when using "comma" flags
  [Config] Make ClassExistenceResource throw on invalid parents
  [DebugBundle] Added min_depth to Configuration
  [Console] Add a factory command loader for standalone application with lazy-loading needs
  ...
2017-07-21 13:08:07 +02:00
Ryan Weaver
178a0f73b7 Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required 2017-07-20 19:10:01 -04:00
Fabien Potencier
8c028bd956 Merge branch '3.3' into 3.4
* 3.3:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
  [VarDumper] Use "C" locale when using "comma" flags
  [Config] Make ClassExistenceResource throw on invalid parents
2017-07-19 11:38:19 +02:00
Fabien Potencier
2d8fb99d57 Merge branch '3.2' into 3.3
* 3.2:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
2017-07-19 11:37:49 +02:00
Shaun Simmons
04b7b04b65 Change "this" to "that" to avoid confusion 2017-07-18 17:34:47 -04:00
Nicolas Grekas
53b01903ce [Config] Make ClassExistenceResource throw on invalid parents 2017-07-18 16:40:06 +02:00
Nicolas Grekas
46c729033f Merge branch '3.4'
* 3.4: (22 commits)
  Fix lazy commands registration
  [TwigBridge] deprecate TwigRenderer
  [FrameworkBundle] Set default public directory on install assets
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Stopwatch] Fix precision for root section
  [Cache] add constructor docblocks for clarity
  [WebServerBundle] allowed public/ root directory to be auto-discovered along side web/
  [WebServerBundle] remove duplicate code
  [SecurityBundle] Clarify deprecation in UserPasswordEncoderCommand::getContainer
  [Profiler][Validator] ValidatorDataCollector: use new DataCollector::getCasters() method
  [Profiler] Fix data collector getCasters() call
  [VarDumper] Added setMinDepth to VarCloner
  remove symfony/process suggestion
  [DI] Remove unused dynamic property
  [Cache] add constructor docblocks for clarity
  [Security] validate empty passwords again
  [Process] Fixed issue between process builder and exec
  non-conflicting anonymous service ids across files
  ...
2017-07-17 17:37:04 +02:00
Fabien Potencier
1e88b35380 Merge branch '3.3' into 3.4
* 3.3:
  [FrameworkBundle] Set default public directory on install assets
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Cache] add constructor docblocks for clarity
  [WebServerBundle] allowed public/ root directory to be auto-discovered along side web/
  [WebServerBundle] remove duplicate code
  [SecurityBundle] Clarify deprecation in UserPasswordEncoderCommand::getContainer
  [Cache] add constructor docblocks for clarity
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:07:19 +02:00
Fabien Potencier
649e2cd8bb Merge branch '3.2' into 3.3
* 3.2:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Cache] add constructor docblocks for clarity
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:07:10 +02:00
Fabien Potencier
d3ca5083bf Merge branch '2.8' into 3.2
* 2.8:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:04:01 +02:00
Alessandro Chitolina
6ab8ca0d36
disable inlining deprecated services 2017-07-17 11:57:18 +02:00
Kévin Dunglas
8f6a0f7694
[DI] Remove an unused property in the Compiler 2017-07-14 21:31:42 +02:00
Nicolas Grekas
4bd7b921f4 [DI] Remove remaining deprecated features 2017-07-12 12:42:06 +02:00
Christian Flothmann
22f6091bc7 Merge branch '3.4'
* 3.4: (83 commits)
  add missing version attribute
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  [SecurityBundle] Add user impersonation info and exit action to the profiler
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  Fix Predis client cluster with pipeline
  [Dotenv] Test load() with multiple paths
  [Console] Fix catching exception type in QuestionHelper
  Improved the exception page when there is no message
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Profiler][Validator] Add a validator panel in profiler
  [Validator] replace hardcoded service id
  [Routing] Fix XmlFileLoader exception message
  Remove duplicate changelog entries
  [DI] Dedup tags when using instanceof/autoconfigure
  [Translation] Fix FileLoader::loadResource() php doc
  [Serializer] Fix workaround min php version
  ...
2017-06-24 14:58:08 +02:00
Christian Flothmann
411d9fa7a1 Merge branch '3.3' into 3.4
* 3.3: (64 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  Fix Predis client cluster with pipeline
  [Dotenv] Test load() with multiple paths
  [Console] Fix catching exception type in QuestionHelper
  Improved the exception page when there is no message
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Validator] replace hardcoded service id
  [Routing] Fix XmlFileLoader exception message
  [DI] Dedup tags when using instanceof/autoconfigure
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  fixed CS
  [WebProfilerBundle] Fix the icon for the Cache panel
  [WebServerBundle] Fix router script path and check existence
  ...
2017-06-24 11:47:31 +02:00
Maxime Steinhausser
03f33b592a [DI] Uncomment code 2017-06-21 11:27:03 +02:00
Fabien Potencier
035d5260b9 bug #23218 [DI] Dedup tags when using instanceof/autoconfigure (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Dedup tags when using instanceof/autoconfigure

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes, failures unrelated (8dc00bbe8d)
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This fixes uselessly duplicated tags shown when using the `debug:container` command, or in the dumped container in xml format:
<img width="554" alt="screenshot 2017-06-17 a 20 41 27" src="https://user-images.githubusercontent.com/2211145/27255375-de79fc4e-539d-11e7-98d9-c10074ddcffb.PNG">
<img width="494" alt="screenshot 2017-06-17 a 20 41 54" src="https://user-images.githubusercontent.com/2211145/27255376-de7ff5b8-539d-11e7-97ae-ccd31b1d5254.PNG">
<img width="1371" alt="screenshot 2017-06-17 a 20 42 33" src="https://user-images.githubusercontent.com/2211145/27255377-de869ba2-539d-11e7-8cd7-6005f8a499d6.PNG">

(duplicates here are explained by the twig namespaced and unnamespaced versions, and the controllers being tagged explicitly in https://github.com/symfony/symfony-demo/blob/master/app/config/services.yml#L25, while also being tagged by autoconfiguration ([which is expected](https://github.com/symfony/symfony-docs/pull/7921#discussion_r117585827)))

Commits
-------

9f877efb39 [DI] Dedup tags when using instanceof/autoconfigure
2017-06-20 07:01:46 -07:00
Maxime Steinhausser
9f877efb39 [DI] Dedup tags when using instanceof/autoconfigure 2017-06-17 21:02:43 +02:00
Nicolas Grekas
7c3d0c7a46 [DI] Reference instead of inline for array-params 2017-06-13 13:14:06 +02:00
Fabien Potencier
f309c09ed8 Merge branch '3.4'
* 3.4:
  [FrameworkBundle] removed doctrine/cache as a dependency
  drop hard dependency on the Stopwatch component
  Fix the conditional definition of the SymfonyTestsListener
  [DI] Fix keys resolution in ResolveParameterPlaceHoldersPass
  [FrameworkBundle] Fix colliding service ids
  [FrameworkBundle] deprecated validator.mapping.cache.doctrine.apc
  remove now useless condition
  Lazy load security listeners
  [EventDispatcher] Remove dead code in WrappedListener
  [Process] Deprecate ProcessBuilder
  Fix non-dumped voters in security panel
  search case insensitive
  [VarDumper] Cyclic searching dumps
  [Yaml] Remove line number in deprecation notices
  [SecurityBundle] Made 2 service aliases private
  Automatically enable the routing annotation loader
  [FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS
2017-06-12 11:12:26 -07:00
Nicolas Grekas
9251a2143d [DI] Fix keys resolution in ResolveParameterPlaceHoldersPass 2017-06-12 12:11:53 +02:00
Nicolas Grekas
9a8f779a5d Merge branch '3.4'
* 3.4:
  [Config] Always protect ClassExistenceResource against bad parents
2017-06-02 20:47:32 +02:00
Nicolas Grekas
86bf26c466 [Config] Always protect ClassExistenceResource against bad parents 2017-06-02 20:07:20 +02:00
Fabien Potencier
461bb11dc4 Merge branch '3.4'
* 3.4: (31 commits)
  Using FQ name for PHP_VERSION_ID
  [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument
  Fix CacheCollectorPass priority
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  [Routing] Allow GET requests to be redirected. Fixes #23004
  [DI] Deal with inlined non-shared services
  [Cache] Ignore missing annotations.php
  [DI] Autowiring exception thrown when inlined service is removed
  Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available
  Harden the debugging of Twig filters and functions
  Fixing a bug where an autowiring exception was thrown even when that service was removed
  Remove extra arg in call to TraceableAdapter::start()
  Support unknown compiler log format
  [Config] Allow empty globs
  Fix decorating TagAware adapters in dev
  [Profiler] Fix clicking on links inside toggle
  [Profiler] Fix text selection on exception pages
  bumped Symfony version to 3.3.1
  updated VERSION for 3.3.0
  updated CHANGELOG for 3.3.0
  ...
2017-06-01 14:04:19 -07:00
Nicolas Grekas
996698d996 [DI] Deal with inlined non-shared services 2017-06-01 08:31:18 +02:00
Fabien Potencier
9cd68ee77e bug #22993 [DI] Autowiring exception thrown when inlined service is removed (weaverryan)
This PR was squashed before being merged into the 3.3 branch (closes #22993).

Discussion
----------

[DI] Autowiring exception thrown when inlined service is removed

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | yes (on a new & internal method)
| Tests pass?   | yes
| Fixed tickets | #22977
| License       | MIT
| Doc PR        | n/a

We suppress autowiring exceptions if a service is ultimately removed from the container. This fixes a bug where we incorrectly report that a service was NOT removed, when really, it WAS removed. This happens when `ServiceA` is inlined in `ServiceB`... but then `ServiceB` is removed from the container for being unused.

Commits
-------

793b9a001f [DI] Autowiring exception thrown when inlined service is removed
2017-05-31 11:16:22 -07:00
Ryan Weaver
793b9a001f [DI] Autowiring exception thrown when inlined service is removed 2017-05-31 11:16:20 -07:00
Ryan Weaver
a990d5c558 Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available 2017-05-31 13:54:02 -04:00
Ryan Weaver
2d3e44e11e Fixing a bug where an autowiring exception was thrown even when that service was removed
The specific report was for a service with a private constructor. This also clarifies
that the AutowirePass throws AutowiringFailedException for all situations. And a bug
was fixed in the constructor of AutowiringFailedException
2017-05-31 09:52:17 -04:00
Nicolas Grekas
3574455c59 Merge branch '3.4'
* 3.4:
  [DI] prepare for signature change in 4.0
  [DI] Add missing deprecation on Extension::getClassesToCompile
  [Lock] Re-add the Lock component in 3.4
  [Routing] remove an unused routing fixture
  [Yaml] fix multiline block handling
  [WebProfilerBundle] Fix sub-requests display in time profiler panel
  [FrameworkBundle] Handle project dir in cache:clear command
  [WebServerBundle] Mark ServerCommand as internal
  [DI] Fix autowire error for inlined services
  Close PHP code in phpt file
  [Profiler][VarDumper] Fix searchbar css when in toolbar
  Prevent auto-registration of UserPasswordEncoderCommand
  [Process] Fixed incorrectly escaping arguments on Windows when inheritEnvironmentVariables is set to false
  avoid double blanks while rendering form attributes
  use getProjectDir() when possible
  [PhpUnitBridge] add a changelog file
  [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator
2017-05-24 13:42:26 +02:00
Ryan Weaver
4bcef3d67c [DI] Fix autowire error for inlined services 2017-05-23 10:56:44 +02:00
Nicolas Grekas
fe6cf73aa8 Merge branch '3.4'
* 3.4:
  [Serializer] Remove a useless legacy annotation
  Fixed extra semi-colon
  fix docblock position
  [DependencyInjection] remove unused variable
  [PhpUnitBridge] add changelog entries for #21140
  [DI] Remove dead service_container checks
2017-05-22 11:57:18 +02:00
Hugo Hamon
6fdcb8496b [DependencyInjection] remove deprecated autowiring_types feature 2017-05-22 11:28:45 +02:00
Robin Chalas
21114f84e6 CS Fixes 2017-05-22 11:03:40 +02:00
Hugo Hamon
1c2383f1a5 [DependencyInjection] remove unused variable 2017-05-21 23:03:33 +02:00
Nicolas Grekas
d3449e6a24 Merge branch '3.4'
* 3.4:
  bug #22814 [FrameworkBundle] FC with EventDispatcher 4.0 (xabbuh)
  [PhpUnitBridge] remove unused use statement
  do not used deprecated validator test case class
  do not mock a deprecated interface
  [DI] Added missing deprecation in changelog
  [Ldap] add a changelog file
  [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0
  [MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows
  [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument
  [DI][Serializer] Fix missing de(normalizer|coder) autoconfig
  Use 0.0.0.0 as the server log host default.
2017-05-21 10:58:35 +02:00
Maxime Steinhausser
b973b3072a [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0 2017-05-20 12:13:18 +02:00
Kévin Dunglas
372e96e157
[DependencyInjection] Remove dead code with PHP 7+ 2017-05-18 16:14:41 +02:00
Fabien Potencier
a3f78608e8 feature #22665 [DI] Do not throw autowiring exceptions for a service that will be removed (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Do not throw autowiring exceptions for a service that will be removed

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no (arguable)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Hi guys!

tl;dr Do no throw a "Cannot autowire service id foo_bar" if that service (`foo_bar`) is private and is ultimately removed from the container.

I ran into a problem with the new PSR-4 service loader: our existing projects often contains directories with a mixture of services and model classes. In reality, that's not a problem: since the services are private, if any "extra" classes are registered as service, they're removed from the container because they're not referenced. In other words, the system is great: model classes do *not* become services naturally... because nobody tries to inject them as services.

However, if your model classes have constructor args... then things blow up on compilation. This fixes that: it delays autowiring errors until after `RemoveUnusedDefinitionsPass` runs and then does *not* throw those exceptions if the service is gone.

Cheers!

Commits
-------

f4913feaa8 Fixing a bug where services that were eventually removed could cause autowire errors
2017-05-11 10:07:41 -07:00
Ryan Weaver
f4913feaa8 Fixing a bug where services that were eventually removed could cause autowire errors 2017-05-10 09:32:00 -04:00
Ryan Weaver
7cc7c85919 Fixing bug where indexed args were set wrong in pass in some situations 2017-05-09 05:53:08 -04:00
Ryan Weaver
5a3c156798 Improving autowire exception when you type-hint a class and there is an interface alias available 2017-05-05 11:28:37 -04:00
Nicolas Grekas
0656284f7f [DI] Defaults to public=false in all service config files 2017-05-03 19:24:51 +02:00