Commit Graph

617 Commits

Author SHA1 Message Date
Nicolas Grekas
320cf40b71 [DI] Fix resetting private services 2017-07-24 21:54:53 +02:00
Fabien Potencier
1cac0a0bba feature #23561 [DI] Optimize use of private and pre-defined services (nicolas-grekas)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[DI] Optimize use of private and pre-defined services

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

By making private services really private and taking into account that (un)setting pre-defined services is not allowed anymore, we can go one step further into optimizing the dumped container.

Commits
-------

c0c1881fe4 [DI] Optimize use of private and pre-defined services
2017-07-19 06:19:43 +02:00
Nicolas Grekas
4b30b6efc0 Merge branch '3.4'
* 3.4:
  remove useless comment
  [FrameworkBundle] Make RouterCacheWarmer implement ServiceSubscriberInterface
  fix merge
2017-07-18 15:13:09 +02:00
Nicolas Grekas
a1846f0637 Merge branch '3.3' into 3.4
* 3.3:
  remove useless comment
  fix merge
2017-07-18 13:59:19 +02:00
Nicolas Grekas
c0c1881fe4 [DI] Optimize use of private and pre-defined services 2017-07-18 10:12:28 +02:00
Nicolas Grekas
4917b30718 fix merge 2017-07-18 10:09:42 +02:00
Nicolas Grekas
75701bc378 Merge branch '3.4'
* 3.4:
  [DI] Resolve aliases earlier
  [DI] Mark Container::$privates as internal
  [DI] Minor dumping logic simplification
  bumped Symfony version to 3.3.6
  updated VERSION for 3.3.5
  updated CHANGELOG for 3.3.5
  bumped Symfony version to 3.2.13
  updated VERSION for 3.2.12
  updated CHANGELOG for 3.2.12
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 10:02:14 +02:00
Nicolas Grekas
a0795c7186 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Resolve aliases earlier
  [DI] Mark Container::$privates as internal
  [DI] Minor dumping logic simplification
  bumped Symfony version to 3.3.6
  updated VERSION for 3.3.5
  updated CHANGELOG for 3.3.5
  bumped Symfony version to 3.2.13
  updated VERSION for 3.2.12
  updated CHANGELOG for 3.2.12
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:59:12 +02:00
Nicolas Grekas
72aaecc0ff Merge branch '3.2' into 3.3
* 3.2:
  [DI] Resolve aliases earlier
  [DI] Mark Container::$privates as internal
  bumped Symfony version to 3.2.13
  updated VERSION for 3.2.12
  updated CHANGELOG for 3.2.12
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:56:35 +02:00
Nicolas Grekas
30b409a295 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Resolve aliases earlier
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:52:56 +02:00
Nicolas Grekas
f8f5c028d1 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Resolve aliases earlier
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:49:35 +02:00
Nicolas Grekas
9922827cc2 [DI] Resolve aliases earlier 2017-07-18 09:15:21 +02:00
Nicolas Grekas
37d8495a59 [DI] Minor dumping logic simplification 2017-07-17 22:48:54 +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
Nicolas Grekas
b24a338f71 Merge branch '3.3' into 3.4
* 3.3:
  [Profiler] Fix data collector getCasters() call
  remove symfony/process suggestion
  [DI] Remove unused dynamic property
  [Process] Fixed issue between process builder and exec
  non-conflicting anonymous service ids across files
2017-07-15 10:52:56 +02:00
Kévin Dunglas
6de81a7756
[DI] Remove unused dynamic property 2017-07-14 23:11:01 +02:00
Nicolas Grekas
bdaa7b118e Merge branch '3.4'
* 3.4:
  Add TokenProcessor
  [DI] Handle root namespace in service definitions
  Add support for command lazy-loading
  Use rawurlencode() to transform the Cookie into a string
  [TwigBundle] Added a RuntimeExtensionInterface to take advantage of autoconfigure
  [Process] Fix parsing args on Windows
  Add exculde verbosity test
  [HttpKernel][VarDumper] Truncate profiler data & optim perf
  [DI] Allow imports in string format for YAML
  [Validator] Allow to use a property path to get value to compare in comparison constraints
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
  add option to define the access decision manager
  Add support for doctrin/dbal 2.6 types
2017-07-12 16:12:10 +02:00
Nicolas Grekas
4324804357 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Process] Fix parsing args on Windows
  [HttpKernel][VarDumper] Truncate profiler data & optim perf
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:09:21 +02:00
Nicolas Grekas
6b5d35f058 Merge branch '3.2' into 3.3
* 3.2:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:03:20 +02:00
Nicolas Grekas
e51c1a5658 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:02:55 +02:00
Nicolas Grekas
0c6096fc32 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 14:59:33 +02:00
Roland Franssen
05170c84a2 [DI] Handle root namespace in service definitions 2017-07-12 13:53:12 +02:00
Roland Franssen
63e26fcba6 [DI] Remove deprecated case insensitive service ids 2017-07-11 16:00:59 +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
Nicolas Grekas
7c3d0c7a46 [DI] Reference instead of inline for array-params 2017-06-13 13:14:06 +02:00
Nicolas Grekas
6f8430e84c Merge branch '3.4'
* 3.4:
  [TwigBridge] Fix namespaced classes
  bumped Symfony version to 3.3.2
  updated VERSION for 3.3.1
  updated CHANGELOG for 3.3.1
  [DependencyInjection] Fix named args support in ChildDefinition
  [Cache] Fallback to positional when keyed results are broken
  [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break
  [Cache] MemcachedAdapter not working with TagAwareAdapter
  Remove closure-proxy leftovers
  fix used class name in deprecation message
  [DependencyInjection] Use more clear message when unused environment variables detected
  [Form][Profiler] Fixes form collector triggering deprecations
  mitigate BC break with empty trusted_proxies
  [Profiler] Never wrap in code excerpts
  [Form][FrameworkBundle] Remove non-existing arg for data_collector.form
  explain that a role can be an instance of Role
  [Cache] fix Redis scheme detection
  Implement ServiceSubscriberInterface in optional cache warmers
  Deprecate passing a concrete service in optional cache warmers
  mix attr options between type-guess options and user options
2017-06-06 07:08:36 +02:00
Nicolas Grekas
7769179e0f Merge branch '3.2' into 3.3
* 3.2:
  [TwigBridge] Fix namespaced classes
  [Cache] MemcachedAdapter not working with TagAwareAdapter
  [DependencyInjection] Use more clear message when unused environment variables detected
  mix attr options between type-guess options and user options
2017-06-06 05:13:52 +02:00
Oleg Voronkovich
6dbdb1b750 [DependencyInjection] Use more clear message when unused environment variables detected 2017-06-03 08:50:11 -07:00
Nicolas Grekas
86cae494b6 Merge branch '3.4'
* 3.4:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [Di] Remove closure-proxy arguments
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 12:06:41 +02:00
Nicolas Grekas
57daadbf67 [Di] Remove closure-proxy arguments 2017-06-01 22:59:07 +02:00
Fabien Potencier
4c7da9fc56 Merge branch '3.4'
* 3.4:
  [HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const
  [DI] Avoid private call to Container::has()
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  [Yaml] parse PHP constants in mapping keys
  don't call getTrustedHeaderName() if possible
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 16:11:32 -07:00
Fabien Potencier
bf85c7d4e2 Merge branch '3.2' into 3.3
* 3.2:
  [DI] Avoid private call to Container::has()
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 16:10:31 -07:00
Fabien Potencier
810623df5e Merge branch '2.8' into 3.2
* 2.8:
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 15:59:05 -07:00
Fabien Potencier
321e41cb6b Merge branch '2.7' into 2.8
* 2.7:
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 15:57:22 -07:00
Roland Franssen
56892819e3 [DI] Avoid private call to Container::has() 2017-05-25 14:59:08 +02:00
Ryan Weaver
40f60ec60d Fixing missing abstract attribute in XmlDumper
Caused mis-reporting of abstract key (always no) in debug:container
2017-05-25 08:56:45 -04: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
Roland Franssen
c1c525cdfe [DI] Remove deprecated dumping an uncompiled container 2017-05-22 09:11:02 +02:00
Maxime Steinhausser
7091fb4df5 Remove PHP < 7.1.3 code 2017-05-22 08:50:05 +02:00
Nicolas Grekas
619f01c193 feature #22763 [DI] Remove deprecated isFrozen() (ro0NL)
This PR was squashed before being merged into the 4.0-dev branch (closes #22763).

Discussion
----------

[DI] Remove deprecated isFrozen()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | should be
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

See #19673

Test failure seems unrelated.

Commits
-------

04b39a3 [DI] Remove deprecated isFrozen()
2017-05-21 21:26:24 +02:00
Roland Franssen
04b39a3a20 [DI] Remove deprecated isFrozen() 2017-05-21 21:26:22 +02:00
Roland Franssen
9a8ea93139 [DI] Remove dead service_container checks 2017-05-21 12:19:15 +02:00
meyerbaptiste
c2db0c14e1 [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument 2017-05-19 23:56:58 +02:00
Fabien Potencier
428b9bfa4f Merge branch '3.2'
* 3.2:
  [Console] Do not duplicate Helper::strlen() code
  [FrameworkBundle] Adding the extension XML
  [Form] Minor: Fix comment in ChoiceType
  [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice
  fixed CS
  fixed CS
  [DI] Fix PhpDumper blank lines around namespace
  fixed CS
  [Workflow] fix use directives
  [Workflow] Move twig extension registration to twig bundle
  Filesystem: annotate the one network test with a "network" group.
  [DependencyInjection] Don't store default deprecation template in every service definition instance
2017-05-11 09:47:52 -07:00
Fabien Potencier
b81a6629ee Merge branch '2.8' into 3.2
* 2.8:
  fixed CS
  [DI] Fix PhpDumper blank lines around namespace
  fixed CS
  Filesystem: annotate the one network test with a "network" group.
  [DependencyInjection] Don't store default deprecation template in every service definition instance
2017-05-07 18:51:21 -07:00
Fabien Potencier
ae3d88c215 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Fix PhpDumper blank lines around namespace
2017-05-07 18:18:23 -07:00
Maxime Steinhausser
c9f6c1680f [DI] Fix PhpDumper blank lines around namespace 2017-05-07 19:29:35 +02:00
Nicolas Grekas
8783602946 [DI] Fix invalid callables dumped for ArgumentInterface objects 2017-04-29 20:26:39 +02:00
Nicolas Grekas
8701cae777 Merge branch '3.2'
* 3.2:
  Fixed the flickering when loading complex profiler panels
  [Console] Fix bar width with multilines ProgressBar's format
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:46:15 -04:00
Nicolas Grekas
8a8d92d793 Merge branch '2.8' into 3.2
* 2.8:
  Fixed the flickering when loading complex profiler panels
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:39:17 -04:00
Nicolas Grekas
3adff11d72 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:38:53 -04:00
Fabien Potencier
3471b58318 bug #22496 [DI] Fix inlining conflict by restricting IteratorArgument to Reference[] (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fix inlining conflict by restricting IteratorArgument to Reference[]

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

`Reference` found in `ArgumentInterface::getValue()` are currently not inlined.
While trying to do so (hint: I failed), I noticed that the current code is broken for `IteratorArgument` which can contain anonymous `Definition` for now, which are then not inlined correctly.

This PR restricts `IteratorArgument` to arrays of `Reference`, and improves a few related things found while doing it.

(fabbot failure is false positive)

Commits
-------

4d3dce1c0f [DI] Fix inlining conflict by restricting IteratorArgument to Reference[]
2017-04-23 15:36:34 -07:00
Nicolas Grekas
4d3dce1c0f [DI] Fix inlining conflict by restricting IteratorArgument to Reference[] 2017-04-21 14:38:43 +02:00
Nicolas Grekas
5cabf880d6 [DI] Add missing check in PhpDumper 2017-04-21 13:48:46 +02:00
Fabien Potencier
f730ffae49 feature #22234 [DI] Introducing autoconfigure: automatic _instanceof configuration (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22234).

Discussion
----------

[DI] Introducing autoconfigure: automatic _instanceof configuration

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes (mostly, a continuation of a new feature)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/7538

This is a proposal to allow the user to opt into some automatic `_instanceof` config. Suppose I want to auto-tag all of my voters and event subscribers

```yml
# current
services:
    _defaults:
        autowire: true

    _instanceof:
        Symfony\Component\Security\Core\Authorization\Voter\VoterInterface:
            tags: [security.voter]

        Symfony\Component\EventDispatcher\EventSubscriberInterface:
            tags: [kernel.event_subscriber]

    # services using the above tags
    AppBundle\Security\PostVoter: ~
    AppBundle\EventListener\CheckRequirementsSubscriber: ~
```

If I'm registering a service with a class that implements `VoterInterface`, when would I ever *not* want that to be tagged with `security.voter`? Here's the proposed code:

```yml
# proposed
services:
    _defaults:
        autowire: true
        autoconfigure: true

    # services using the auto_configure_instanceof functionality
    AppBundle\Security\PostVoter: ~
    AppBundle\EventListener\CheckRequirementsSubscriber: ~
```

The user must opt into this and it only applies locally to this configuration file. It works because each enabled bundle would have the opportunity to add one or more "automatic instanceof" definitions - e.g. SecurityBundle would add the `security.voter` instanceof config, FrameworkBundle would add the `kernel.event_subscriber` instanceof config, etc.

For another example, you can check out the proposed changes to `symfony-demo` - symfony/symfony-demo#483 - the `_instanceof` section is pretty heavy: 81694ac21e/app/config/services.yml (L20)

Thanks!

Commits
-------

18627bf9f6 [DI] Introducing autoconfigure: automatic _instanceof configuration
2017-04-20 11:20:32 -06:00
Ryan Weaver
18627bf9f6 [DI] Introducing autoconfigure: automatic _instanceof configuration 2017-04-20 11:20:30 -06:00
Nicolas Grekas
1dd3285c91 [DI] Reduce memory overhead of id normalization 2017-04-20 10:02:26 +02:00
Nicolas Grekas
cc5e582dcf [BC BREAK][DI] Always autowire "by id" instead of using reflection against all existing services 2017-04-05 23:48:42 +02:00
Fabien Potencier
3aeac5aa3f Merge branch '3.2'
* 3.2:
  bumped Symfony version to 3.2.8
  updated VERSION for 3.2.7
  updated CHANGELOG for 3.2.7
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  [Workflow] update documentation URL in readme
  bumped Symfony version to 2.8.20
  updated VERSION for 2.8.19
  updated CHANGELOG for 2.8.19
  Dont call sprintf() when no placeholders are used
2017-04-05 06:44:55 -07:00
Fabien Potencier
f53e81dd6a Merge branch '2.8' into 3.2
* 2.8:
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  bumped Symfony version to 2.8.20
  updated VERSION for 2.8.19
  updated CHANGELOG for 2.8.19
  Dont call sprintf() when no placeholders are used
2017-04-05 06:44:24 -07:00
Fabien Potencier
f92ada80f4 Merge branch '2.7' into 2.8
* 2.7:
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  Dont call sprintf() when no placeholders are used
2017-04-05 06:42:13 -07:00
Nicolas Grekas
4951d3c962 Dont call sprintf() when no placeholders are used 2017-04-04 20:32:29 +02:00
Fabien Potencier
6cc9dc7586 feature #22060 [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention

| 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 PR adds a new autowiring mode, based only on the class <> id convention.
This way of autowiring is free from any conflicting behavior, which is what I was looking for to begin with.

The expected DX is a bit more involving than the current way we do autowiring. But it's worth it to me, because it's plain predictable - a lot less "magic" imho.

So in this mode, for each `App\Foo` type hint, a reference to an "App\Foo" service will be created. If no such service exists, an exception will be thrown. To me, this opens a nice DX: when type hinting interfaces (which is the best practice), this will tell you when you need to create the explicit interface <> id mapping that is missing - thus encourage things to be made explicit, but only when required, and gradually, in a way that will favor discoverability by devs.

Of course, this is opt-in, and BC. You'd need to do eg in yaml: `autowire: by_id`.
For consistency, the current mode (`autowire: true`) can be configured using `autowire: by_type`.

Commits
-------

c298f2a90c [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention
2017-03-25 13:18:59 -07:00
Nicolas Grekas
23fa3a09bf Revert "feature #20973 [DI] Add getter injection (nicolas-grekas)"
This reverts commit 2183f98f54, reversing
changes made to b465634a55.
2017-03-25 15:07:47 +01:00
Nicolas Grekas
c298f2a90c [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention 2017-03-24 15:54:23 +01:00
Roland Franssen
6abd312800 [DI] Deprecate Container::isFrozen and introduce isCompiled 2017-03-22 19:49:34 +01:00
Nicolas Grekas
4d48b58d19 Merge branch '3.2'
* 3.2:
  [Yaml] CS
  [DI] Fix PhpDumper generated doc block
  #20411 fix Yaml parsing for very long quoted strings
  [Workflow] add Phpdoc for better IDE support
  fix package name in conflict rule
  improve message when workflows are missing
  [Doctrine Bridge] fix priority for doctrine event listeners
  Use PHP functions as array_map callbacks when possible
  [Validator] revert wrong Phpdoc change
  Use proper line endings
2017-03-20 11:06:58 +01:00
Nicolas Grekas
d7e74b964f Merge branch '2.8' into 3.2
* 2.8:
  [DI] Fix PhpDumper generated doc block
  #20411 fix Yaml parsing for very long quoted strings
  [Doctrine Bridge] fix priority for doctrine event listeners
  Use PHP functions as array_map callbacks when possible
  [Validator] revert wrong Phpdoc change
  Use proper line endings
2017-03-20 10:32:19 +01:00
Nicolas Grekas
58b3ee7616 [DI] Fix PhpDumper generated doc block 2017-03-20 09:19:13 +01:00
Nicolas Grekas
5d230b5871 [DI] Introduce "container.service_locator" tag, replaces ServiceLocatorArgument 2017-03-17 17:49:32 +01:00
Nicolas Grekas
b77d97a6a3 bug #21937 [DependencyInjection] Handle void return types in closure-proxy (pierredup)
This PR was squashed before being merged into the 3.3-dev branch (closes #21937).

Discussion
----------

[DependencyInjection] Handle void return types in closure-proxy

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

I recently got an error when registering an event listener that specifies a `void` return type. Dumping the container generates a closure proxy that always returns a value, which then conflicts with the return type hint.

E.G the following code is generated (some class names removed for readability)

```
$instance->addListener('kernel.view', /** @closure-proxy ... */ function (...\GetResponseForControllerResultEvent $event): void {
    return ${($_ = isset($this->services[listener']) ? $this->services['listener'] : $this->get('listener')) && false ?: '_'}->onKernelView($event);
}, 128);
```

This then causes the error `A void function must not return a value in ...`

So void return types should be handled by removing the `return` inside the closure

Commits
-------

a5c5ad1 [DependencyInjection] Handle void return types in closure-proxy
2017-03-10 10:24:40 +01:00
Pierre du Plessis
a5c5ad1db1 [DependencyInjection] Handle void return types in closure-proxy 2017-03-10 10:24:38 +01:00
Nicolas Grekas
35977fdf0a [DI] Fix dumping null ServiceClosureArgument 2017-03-09 09:35:59 +01:00
Baptiste Clavié
a6590b3659
[DI] Add a check on the getReflectionClass call 2017-03-07 18:13:07 +01:00
Nicolas Grekas
372ff7ce7d [DI] Replace PHP7-conditional return-type checks by regular type-hints that work on PHP5 2017-03-06 09:56:20 +01:00
Nicolas Grekas
1d9663326e [DI] Allow creating ServiceLocator-based services in extensions 2017-03-05 14:36:05 +01:00
Fabien Potencier
adc6ba5d9d bug #21797 [DI] Simplify AutowirePass and other master-only cleanups (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Simplify AutowirePass and other master-only cleanups

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

A few minor cleanups and fixes, and an overall simplification of AutowirePass.

Commits
-------

34e5cc7698 [DI] Simplify AutowirePass and other master-only cleanups
2017-02-28 07:41:20 -08:00
Nicolas Grekas
6bede45549 Merge branch '3.2'
* 3.2:
  [2.7] Fix issues reported by static analyse
  [Serializer] Reduce nesting in YamlFileLoader
  [DependencyInjection] add missing dumped private services list in a container frozen constructor.
2017-02-28 14:19:28 +01:00
Nicolas Grekas
b69ca56e1c bug #21782 [DependencyInjection] add missing dumped private services list in a container frozen constructor. (hhamon)
This PR was merged into the 3.2 branch.

Discussion
----------

[DependencyInjection] add missing dumped private services list in a container frozen constructor.

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

Commits
-------

838d9ca [DependencyInjection] add missing dumped private services list in a container frozen constructor.
2017-02-28 13:46:37 +01:00
Nicolas Grekas
2afd781afe Merge branch '3.2'
* 3.2:
  Revert "bug #21791 [SecurityBundle] only pass relevant user provider (xabbuh)"
  [DependencyInjection] inline conditional statements.
2017-02-28 13:42:54 +01:00
Nicolas Grekas
fcde9e689d Merge branch '2.8' into 3.2
* 2.8:
  Revert "bug #21791 [SecurityBundle] only pass relevant user provider (xabbuh)"
  [DependencyInjection] inline conditional statements.
2017-02-28 13:37:44 +01:00
Nicolas Grekas
15106bf918 Merge branch '2.7' into 2.8
* 2.7:
  Revert "bug #21791 [SecurityBundle] only pass relevant user provider (xabbuh)"
  [DependencyInjection] inline conditional statements.
2017-02-28 13:31:05 +01:00
Nicolas Grekas
34e5cc7698 [DI] Simplify AutowirePass and other master-only cleanups 2017-02-28 12:39:23 +01:00
Hugo Hamon
b7b7c5433a [DependencyInjection] inline conditional statements. 2017-02-28 10:12:48 +01:00
Hugo Hamon
838d9ca6c0 [DependencyInjection] add missing dumped private services list in a container frozen constructor. 2017-02-27 16:48:04 +01:00
Maxime Steinhausser
aa9074d25a [DI][FrameworkBundle] ServiceLocator: Tests dumpers & update descriptors 2017-02-13 20:22:27 +01:00
Robin Chalas
e7935c0adb
[DI] Replace container injection by explicit service locators
[SecurityBundle] Avoid container injection in FirewallMap
2017-02-13 11:05:06 +01:00
Nicolas Grekas
5a388042bb feature #21194 [Yaml] Add tags support (GuilhemN)
This PR was squashed before being merged into the 3.3-dev branch (closes #21194).

Discussion
----------

[Yaml] Add tags support

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

This PR adds custom tags support to the Yaml component.
Symfony tags (`!!binary`, `!str`, etc.) are still managed in the parser to have a lighter diff but we'll be able to convert them later if we want to.

The primary addition of this PR is the `TagInterface`:
```php
interface TagInterface
{
    public function construct(mixed $value): mixed;
}
```

It can be used to register custom tags. An example that could be used to convert [the syntax `=iterator`](https://github.com/symfony/symfony/pull/20907#issuecomment-270728216) to a tag:
```php
final class IteratorTag implements TagInterface
{
    public function construct(mixed $value): mixed
    {
        return new IteratorArgument($value);
    }
}

$parser = new Parser(['iterator' => new IteratorTag()]);
```

If you think this is too complex, @nicolas-grekas [proposed an alternative](https://github.com/symfony/symfony/issues/21185#issuecomment-271074840) to my proposal externalizing this support by introducing a new class `TaggedValue`.

Commits
-------

4744107 [Yaml] Add tags support
2017-02-10 15:54:52 +01:00
Guilhem N
47441070e4 [Yaml] Add tags support 2017-02-10 15:48:44 +01:00
Nicolas Grekas
ad5b5b5d93 [DI] Refacto / cleanup / minor fixes 2017-02-08 13:32:07 +01:00
Fabien Potencier
03b7cf72dc feature #21419 [DI][Config] Add & use ReflectionClassResource (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI][Config] Add & use ReflectionClassResource

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

With new changes comming to 3.3, we need a more generic reflection tracking logic than the one already managed by the autowiring subsystem.

This PR adds a new ReflectionClassResource in the Config component, and a new ContainerBuilder::getReflectionClass() method in the DI one (for fetching+tracking reflection-related info).

ReflectionClassResource tracks changes to any public or protected properties/method.

PR updated and ready, best viewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/21419/files?w=1).

changelog:

* added `ReflectionClassResource` class
* added second `$exists` constructor argument to `ClassExistenceResource` - with a special mode that prevents fatal errors from happening when some parent class is broken (logic generalized from AutowiringPass)
* made `ClassExistenceResource` also work with interfaces and traits
* added `ContainerBuilder::getReflectionClass()` for retrieving and tracking reflection class info
* deprecated `ContainerBuilder::getClassResource()`, use `ContainerBuilder::getReflectionClass()` or `ContainerBuilder::addObjectResource()` instead

Commits
-------

37e44939ef [DI][Config] Add & use ReflectionClassResource
2017-02-02 10:28:05 -08:00
Nicolas Grekas
caba97a62b feature #21455 [DI] Allow to count on lazy collection arguments (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Allow to count on lazy collection arguments

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/21450#issuecomment-275931764
| License       | MIT
| Doc PR        | todo (with https://github.com/symfony/symfony-docs/issues/7336)

When using the new iterator feature of the DI component to lazy load collection, we always know the number of arguments in the collection (only the invalidBehavior set to `IGNORE_ON_INVALID_REFERENCE` may change this number). So we are able to generate and use a `RewindableGenerator` implementing `\Countable` by computing this value ahead.

So, in a service accepting `array|iterable`, like in the `GuardAuthenticationListener` (see #21450):

```php
class GuardAuthenticationListener implements ListenerInterface
{
    private $guardAuthenticators;

    /**
       * @param iterable|GuardAuthenticatorInterface[]  $guardAuthenticators   The authenticators, with keys that match what's passed to GuardAuthenticationProvider
       * @param LoggerInterface                         $logger                A LoggerInterface instance
    */
    public function __construct($guardAuthenticators, LoggerInterface $logger = null)
    {
          // ...
    }

    public function handle(GetResponseEvent $event)
    {
        if (null !== $this->logger) {
            $context = array()
            if (is_array($this->guardAuthenticators) || $this->guardAuthenticators instanceof \Countable) {
                $context['authenticators'] = count($this->guardAuthenticators);
            }
            $this->logger->debug('Checking for guard authentication credentials.', $context);
        }
        // ...
    }
}
```

we still keep the ability to call count without loosing the lazy load benefits.

Commits
-------

f23e460 [DI] Allow to count on lazy collection arguments
2017-02-02 15:11:42 +01:00
Nicolas Grekas
37e44939ef [DI][Config] Add & use ReflectionClassResource 2017-02-02 14:15:15 +01:00
Jean Pasqualini
2440b0f05d [DI] : Fix bad generation of proxy class when use overriden getter on class with constructor
- [X] Add test fail
- [X] Fix bug
- [X] Run test pass
2017-02-02 11:50:54 +01:00
Nicolas Grekas
b11d391cb7 [DI] Deprecate autowiring-types in favor of aliases 2017-02-01 19:42:39 +01:00
Maxime Steinhausser
f23e460fad [DI] Allow to count on lazy collection arguments 2017-01-31 10:40:15 +01:00
Nicolas Grekas
cb498580d1 [DI] Add getter injection 2017-01-28 08:49:57 +01:00
Maxime Steinhausser
e6d85700d5 [DependencyInjection] Use current class as default class for factory declarations 2017-01-24 00:01:39 +01:00
Fabien Potencier
f7679f74ae feature #21244 [DI] Remove synthetic services from methodMap + generated methods (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Remove synthetic services from methodMap + generated methods

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

For synthetic services, the generated methods are just dead code to fill opcache ;)
And having them in "methodMap" prevents using the property for checking if a service comes from a (non-synthetic) definition or not.
This prepares some changes that we'd like to do in 4.0, see #19668.

Commits
-------

c1e1e999f3 [DI] Remove synthetic services from methodMap + generated methods
2017-01-15 08:42:11 -08:00
Nicolas Grekas
c1e1e999f3 [DI] Remove synthetic services from methodMap + generated methods 2017-01-15 16:01:29 +01:00
Nicolas Grekas
ce0ee1e484 [DI] Mark generated containers as final 2017-01-13 08:23:38 +01:00
Nicolas Grekas
d08f1101df [DI] Deprecate case insentivity of service identifiers 2017-01-11 16:25:44 +01:00
Nicolas Grekas
16d33e1fff Merge branch '3.2'
* 3.2:
  [DI] Add missing legacy group on testLegacy
  Minor tweaks
  Fix merge
  [DI] Dont share service when no id provided
  Fix Container and PhpDumper test inaccuracies
  [DI] Fix missing new line after private alias
  [ClassLoader] Throw an exception if the cache is not writeable
  Fixing regression in TwigEngine exception handling.
2017-01-10 15:32:56 +01:00
Nicolas Grekas
783abab7ae Merge branch '3.1' into 3.2
* 3.1:
  Fix merge
  [DI] Dont share service when no id provided
  Fix Container and PhpDumper test inaccuracies
  [DI] Fix missing new line after private alias
  [ClassLoader] Throw an exception if the cache is not writeable
  Fixing regression in TwigEngine exception handling.
2017-01-10 15:14:38 +01:00
Nicolas Grekas
15ff7f9195 Merge branch '2.8' into 3.1
* 2.8:
  Fix merge
  [DI] Dont share service when no id provided
  Fix Container and PhpDumper test inaccuracies
  [DI] Fix missing new line after private alias
  [ClassLoader] Throw an exception if the cache is not writeable
  Fixing regression in TwigEngine exception handling.
2017-01-10 15:09:41 +01:00
Nicolas Grekas
144eb54fcd Merge branch '2.7' into 2.8
* 2.7:
  [DI] Dont share service when no id provided
  Fix Container and PhpDumper test inaccuracies
  [DI] Fix missing new line after private alias
  [ClassLoader] Throw an exception if the cache is not writeable
  Fixing regression in TwigEngine exception handling.
2017-01-10 15:03:07 +01:00
Maxime Steinhausser
101a165d0d [DI] Fix missing new line after private alias 2017-01-09 19:49:53 +01:00
Nicolas Grekas
7a42199115 [DI] Dont call get() when not required - µ-optim 2017-01-07 17:52:01 +01:00
Nicolas Grekas
ecdf857b61 [DI][EventDispatcher] Add & wire closure-proxy argument type 2017-01-06 08:57:26 +01:00
Nicolas Grekas
1dbf52ad03 [DI] Add "=iterator" arguments to Yaml loader 2017-01-05 21:40:35 +01:00
Titouan Galopin
5313943692 [DependencyInjection] Implement lazy collection type using generators 2017-01-05 21:34:37 +01:00
Roland Franssen
da50fdb8e2 [DI] Deprecate dumping an uncompiled container 2016-12-19 09:23:24 +01:00
Nicolas Grekas
a28c522790 Merge branch '3.1' into 3.2
* 3.1: (28 commits)
  Fix merge
  [Validator] add class name to the cache key
  [Serializer] Remove AbstractObjectNormalizer::isAttributeToNormalize
  Throw less misleading exception when property access not found
  [Twig] Fix deprecations with Twig 1.29
  Fixed typo
  [FrameworkBundle] Removed the kernel.debug parameter from the cache pool namespace seed
  Fix email address
  fix the docblock in regard to the role argument
  Don't use the "app" global variable in the profiler
  [VarDumper] fix tests when xdebug is enabled
  Fix merge
  FIXED NON EXISTING TYPE DECLARATION
  [Cache] Fix dumping SplDoublyLinkedList iter mode
  [Console] fixed PHP7 Errors when not using Dispatcher
  Regression test for missing controller arguments (3.1)
  Regression test for missing controller arguments
  fix a test checking for a value
  [Form][DX] FileType "multiple" fixes
  fixed CS
  ...
2016-12-08 16:18:22 +01:00
Nicolas Grekas
73099f3555 Merge branch '2.8' into 3.1
* 2.8:
  [Twig] Fix deprecations with Twig 1.29
  Fixed typo
  Fix email address
  fix the docblock in regard to the role argument
  [VarDumper] fix tests when xdebug is enabled
  Fix merge
  [Cache] Fix dumping SplDoublyLinkedList iter mode
  [Console] fixed PHP7 Errors when not using Dispatcher
  Regression test for missing controller arguments
  fix a test checking for a value
  [Form][DX] FileType "multiple" fixes
  fixed CS
  [TwigBundle] Fix twig loader registered twice
  [WebProfilerBundle] Fix dump block is unfairly restrained
  [Console] Fix wrong handling of multiline arg/opt descriptions
  [DependencyInjection] PhpDumper.php: hasReference() should not search references in lazy service arguments.
  [Form] fixed "empty_value" option deprecation
  Cast result to int before adding to it
2016-12-08 15:58:14 +01:00
Fabien Potencier
1188b4d6f4 Merge branch '2.7' into 2.8
* 2.7:
  Regression test for missing controller arguments
  fix a test checking for a value
  [Form][DX] FileType "multiple" fixes
  fixed CS
  [TwigBundle] Fix twig loader registered twice
  [Console] Fix wrong handling of multiline arg/opt descriptions
  [DependencyInjection] PhpDumper.php: hasReference() should not search references in lazy service arguments.
  [Form] fixed "empty_value" option deprecation
2016-12-05 09:41:28 +01:00
Fabien Potencier
5f62f01943 fixed CS 2016-12-03 11:50:08 +01:00
Antanas Arvasevicius
595a9781e2 [DependencyInjection] PhpDumper.php: hasReference() should not search references in lazy service arguments. 2016-11-28 16:07:09 +02:00
Nicolas Grekas
5461c1ed53 Merge branch '3.1' into 3.2
* 3.1:
  [Routing] Fail properly when a route parameter name cannot be used as a PCRE subpattern name
  [FrameworkBundle] Improve performance of ControllerNameParser
  Update documentation link to the component
  [HttpFoundation] Add links to RFC-7231
  [DI] Initialize properties before method calls
  Tag missing internals
  [WebProfilerBundle] Dont use request attributes in RouterController
  Fix complete config tests
2016-11-25 13:32:42 +01:00
Nicolas Grekas
966d45f889 Merge branch '2.8' into 3.1
* 2.8:
  [Routing] Fail properly when a route parameter name cannot be used as a PCRE subpattern name
  [FrameworkBundle] Improve performance of ControllerNameParser
  Update documentation link to the component
  [HttpFoundation] Add links to RFC-7231
  [DI] Initialize properties before method calls
  Tag missing internals
  [WebProfilerBundle] Dont use request attributes in RouterController
  Fix complete config tests
2016-11-25 13:27:14 +01:00
Nicolas Grekas
4d04c40ae3 Merge branch '2.7' into 2.8
* 2.7:
  [Routing] Fail properly when a route parameter name cannot be used as a PCRE subpattern name
  [FrameworkBundle] Improve performance of ControllerNameParser
  Update documentation link to the component
  [HttpFoundation] Add links to RFC-7231
  [DI] Initialize properties before method calls
  Tag missing internals
  [WebProfilerBundle] Dont use request attributes in RouterController
  Fix complete config tests
2016-11-25 13:26:42 +01:00
Roland Franssen
0af433b01f [DI] Initialize properties before method calls 2016-11-25 10:44:31 +01:00
Nicolas Grekas
e449af0e15 Revert "feature #18728 deprecate get() for uncompiled container builders (xabbuh)"
This reverts commit 27f4680294, reversing
changes made to e4177a0744.
2016-11-16 15:37:53 -05:00
Fabien Potencier
1bcade56e6 feature #19681 [DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)% (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)%

| Q             | A
| ------------- | ---
| Branch?       | master
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |  #10138, #7555, #16403, #18155
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/6918

This is an alternative approach to #18155 for injecting env vars into container configurations.

With this PR, anywhere parameters are allowed, one can use `%env(ENV_VAR)%` to inject a dynamic env var. Additionally, if one sets a value to such parameters in e.g. the `parameter.yml` file (`env(ENV_VAR): foo`), this value will be used as a default value when the env var is not defined. If no default value is specified, an `EnvVarNotFoundException` will be thrown at runtime.

Unlike previous attempts that also used parameters (#16403), the implementation is compatible with DI extensions: before being dumped, env vars are resolved to uniquely identifiable string placeholders that can get through DI extensions manipulations. When dumped, these unique placeholders are replaced by dynamic calls to a getEnv method..

ping @magnusnordlander @dzuelke @fabpot

Commits
-------

bac2132 [DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)% syntax
2016-09-15 10:44:52 -07:00
Nicolas Grekas
f5c1b1c077 Merge branch '3.1'
* 3.1:
  [travis/appveyor] Wire simple-phpunit
  [Console] fixed PHP7 Errors are now handled and converted to Exceptions
  Fix #19721
  Fix translation:update command count
  bumped Symfony version to 2.8.12
  updated VERSION for 2.8.11
  updated CHANGELOG for 2.8.11
  bumped Symfony version to 2.7.19
  updated VERSION for 2.7.18
  update CONTRIBUTORS for 2.7.18
  updated CHANGELOG for 2.7.18
  [Security] Optimize RoleHierarchy's buildRoleMap method
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  [Security] Added note inside phpdoc.
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-12 21:03:45 +02:00
Nicolas Grekas
bac2132aeb [DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)% syntax 2016-09-10 12:12:34 +02:00
Fabien Potencier
86f8d74ba1 Merge branch '2.8' into 3.1
* 2.8:
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  [Security] Added note inside phpdoc.
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-06 16:30:54 -07:00
Fabien Potencier
9e9b41d0ea Merge branch '2.7' into 2.8
* 2.7:
  [FrameworkBundle] Fix Incorrect line break in exception message (500 debug page)
  Minor cleanups and improvements
  [form] lazy trans `post_max_size_message`.
  [DI] Fix setting synthetic services on ContainerBuilder
  [ClassLoader] Fix ClassCollectionLoader inlining with declare(strict_types=1)
2016-09-06 16:19:39 -07:00
Javier Eguiluz
e4193c746c Minor cleanups and improvements 2016-09-06 09:06:41 -07:00
Fabien Potencier
15cb83bfa0 bug #19708 [DI] Dont use Container::get() when fetching private services internally (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DI] Dont use Container::get() when fetching private services internally

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19683, #19682, #19680
| License       | MIT

As spotted by @wouterj, we forgot to remove the deprecation notice when doing internal calls to get private services.

Yet, we don't need to get through this `get()` method, because we can already resolve many things at compile time for private services. This will provide another small performance optim, and fix the issue.

Commits
-------

a9c79fb [DI] Dont use Container::get() when fetching private services internally
2016-09-01 10:39:44 -07:00
Nicolas Grekas
a9c79fb64e [DI] Dont use Container::get() when fetching private services internally 2016-08-26 17:24:58 +02:00
Nicolas Grekas
ab93dd8241 Merge branch '3.1'
* 3.1:
  [ClassLoader] Fix tests
  [Debug][HttpKernel][VarDumper] Prepare for committed 7.2 changes
  [DependencyInjection] PhpDumper::isFrozen inconsistency
  [DI] Cleanup array_key_exists
  include dynamic services in list of alternatives
  [Debug] Swap dumper services at bootstrap
2016-08-23 15:40:05 +02:00
Nicolas Grekas
e0acca67e0 Merge branch '2.8' into 3.1
* 2.8:
  [ClassLoader] Fix tests
  [Debug][HttpKernel][VarDumper] Prepare for committed 7.2 changes
  [DependencyInjection] PhpDumper::isFrozen inconsistency
  [DI] Cleanup array_key_exists
  include dynamic services in list of alternatives
  [Debug] Swap dumper services at bootstrap
2016-08-23 15:39:15 +02:00
Nicolas Grekas
69fbdc93cf Merge branch '2.7' into 2.8
* 2.7:
  [ClassLoader] Fix tests
  [Debug][HttpKernel][VarDumper] Prepare for committed 7.2 changes
  [DependencyInjection] PhpDumper::isFrozen inconsistency
  [DI] Cleanup array_key_exists
  include dynamic services in list of alternatives
  [Debug] Swap dumper services at bootstrap
2016-08-23 15:37:31 +02:00
Taras Girnyk
7c0a62c6a7 [DependencyInjection] PhpDumper::isFrozen inconsistency 2016-08-22 09:38:12 -07:00
Fabien Potencier
ed6267d562 feature #19146 [DependencyInjection] deprecate access to private shared services. (hhamon)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DependencyInjection] deprecate access to private shared services.

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

Commits
-------

4ed70c4 [DependencyInjection] deprecate access to private shared services. Fixes issue #19117.
2016-06-29 07:51:25 +02:00
Fabien Potencier
c53cb57b9d Merge branch '3.1'
* 3.1:
  fixed CS
  fixed CS
  fixed CS
  fixed form tests
  [Console] Fix formatting of SymfonyStyle::comment()
  [Form] fix post max size translation type extension for >= 2.8
  [Security] Allow LDAP loadUser override
  removed dots at the end of @param and @return
  fixed typo
2016-06-29 07:43:10 +02:00
Fabien Potencier
6bed60b467 Merge branch '3.0' into 3.1
* 3.0:
  fixed CS
  fixed CS
  fixed form tests
  [Console] Fix formatting of SymfonyStyle::comment()
  [Form] fix post max size translation type extension for >= 2.8
  removed dots at the end of @param and @return
  fixed typo
2016-06-29 07:41:56 +02:00
Fabien Potencier
b1a4d56965 Merge branch '2.8' into 3.0
* 2.8:
  fixed CS
  fixed form tests
  [Console] Fix formatting of SymfonyStyle::comment()
  [Form] fix post max size translation type extension for >= 2.8
  removed dots at the end of @param and @return
  fixed typo
2016-06-29 07:40:00 +02:00
Fabien Potencier
bd1e3e3093 Merge branch '2.7' into 2.8
* 2.7:
  removed dots at the end of @param and @return
  fixed typo
2016-06-29 07:29:29 +02:00
Hugo Hamon
4ed70c4a4e [DependencyInjection] deprecate access to private shared services. Fixes issue #19117. 2016-06-28 09:16:13 +02:00
Fabien Potencier
554303e339 removed dots at the end of @param and @return 2016-06-28 08:24:06 +02:00
Fabien Potencier
27f4680294 feature #18728 deprecate get() for uncompiled container builders (xabbuh)
This PR was squashed before being merged into the 3.2-dev branch (closes #18728).

Discussion
----------

deprecate get() for uncompiled container builders

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

Commits
-------

f2e35cb deprecate get() for uncompiled container builders
2016-06-08 13:34:19 +02:00
Christian Flothmann
f2e35cbb9e deprecate get() for uncompiled container builders 2016-06-08 13:34:16 +02:00
Nicolas Grekas
a249f5d582 Merge branch '3.0' into 3.1
* 3.0:
  `@throws` annotations should go after `@return`
  Fix merge
  updated VERSION for 2.3.42
  update CONTRIBUTORS for 2.3.42
  updated CHANGELOG for 2.3.42
  Revert "bug #18908 [DependencyInjection] force enabling the external XML entity loaders (xabbuh)"
  Partial revert of previous PR
  [DependencyInjection] Skip deep reference check for 'service_container'
  Catch \Throwable
  [Serializer] Add missing @throws annotations
  Fix for #18843
  force enabling the external XML entity loaders
  Removed UTC specification with timestamp

Conflicts:
	src/Symfony/Component/Yaml/Tests/InlineTest.php
2016-06-06 13:42:41 +02:00
Nicolas Grekas
0ed0e64d43 Merge branch '2.8' into 3.0
* 2.8:
  `@throws` annotations should go after `@return`
  Fix merge
  updated VERSION for 2.3.42
  update CONTRIBUTORS for 2.3.42
  updated CHANGELOG for 2.3.42
  Revert "bug #18908 [DependencyInjection] force enabling the external XML entity loaders (xabbuh)"
  Partial revert of previous PR
  [DependencyInjection] Skip deep reference check for 'service_container'
  Catch \Throwable
  [Serializer] Add missing @throws annotations
  Fix for #18843
  force enabling the external XML entity loaders
  Removed UTC specification with timestamp

Conflicts:
	CHANGELOG-2.3.md
	src/Symfony/Bundle/FrameworkBundle/Routing/DelegatingLoader.php
	src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php
	src/Symfony/Component/Config/Loader/FileLoader.php
	src/Symfony/Component/DependencyInjection/Container.php
	src/Symfony/Component/DependencyInjection/ContainerBuilder.php
	src/Symfony/Component/Finder/Expression/Expression.php
	src/Symfony/Component/Finder/Finder.php
	src/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php
	src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
2016-06-06 13:33:26 +02:00
Nicolas Grekas
c4716d2511 Merge branch '2.7' into 2.8
* 2.7:
  `@throws` annotations should go after `@return`
  Fix merge
  updated VERSION for 2.3.42
  update CONTRIBUTORS for 2.3.42
  updated CHANGELOG for 2.3.42
  Revert "bug #18908 [DependencyInjection] force enabling the external XML entity loaders (xabbuh)"
  Partial revert of previous PR
  [DependencyInjection] Skip deep reference check for 'service_container'
  Catch \Throwable
  [Serializer] Add missing @throws annotations
  Fix for #18843
  force enabling the external XML entity loaders
  Removed UTC specification with timestamp

Conflicts:
	src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
	src/Symfony/Component/Finder/Finder.php
	src/Symfony/Component/Security/Acl/Dbal/MutableAclProvider.php
	src/Symfony/Component/Security/Acl/Domain/ObjectIdentity.php
	src/Symfony/Component/Security/Acl/Model/AclInterface.php
	src/Symfony/Component/Security/Acl/Model/MutableAclProviderInterface.php
	src/Symfony/Component/Security/Acl/Permission/MaskBuilder.php
	src/Symfony/Component/Translation/Loader/XliffFileLoader.php
	src/Symfony/Component/Yaml/Tests/InlineTest.php
2016-06-06 13:11:27 +02:00
Nicolas Grekas
cb850fef26 Fix merge 2016-06-06 11:00:08 +02:00
Fabien Potencier
011d2dcd26 Merge branch '2.3' into 2.7
* 2.3:
  updated VERSION for 2.3.42
  update CONTRIBUTORS for 2.3.42
  updated CHANGELOG for 2.3.42
  Revert "bug #18908 [DependencyInjection] force enabling the external XML entity loaders (xabbuh)"
  Partial revert of previous PR
  [DependencyInjection] Skip deep reference check for 'service_container'
  Catch \Throwable
  [Serializer] Add missing @throws annotations
  Fix for #18843
  force enabling the external XML entity loaders
  Removed UTC specification with timestamp
2016-06-06 10:55:42 +02:00
Robert Meijers
6f3673364e [DependencyInjection] Skip deep reference check for 'service_container'
Deep checks on whether a service references another service need to
exclude the 'service_container' service as it doesn't exist. Without this
dumping the container will fail if a service definition references an
inlined service which has a direct or indirect dependency to the
service_container.
2016-05-30 10:16:14 +02:00