Commit Graph

194 Commits

Author SHA1 Message Date
Nicolas Grekas
1f92e459db [DI] Allow processing env vars 2017-09-07 08:08:52 +02:00
Nicolas Grekas
0db3358ddb [DI] Add ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE 2017-08-31 23:26:27 +02:00
Nicolas Grekas
85f03e19cd Merge branch '3.3' into 3.4
* 3.3:
  [Dotenv] Get env using $_SERVER to work with fastcgi_param and workaround thread safety issues
  [Dotenv][WebServerBundle] Override previously loaded variables
  [DI] Use GlobResource for non-tracked directories
  [WebProfilerBundle] Re add missing link to the controller
2017-08-22 18:06:26 +02:00
Nicolas Grekas
f76e420e09 [Dotenv] Get env using $_SERVER to work with fastcgi_param and workaround thread safety issues 2017-08-22 15:55:16 +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
aef502b1a2 Merge branch '3.3' into 3.4
* 3.3:
  Update JsonBundleReader.php
  [HttpKernel] Clean test directory on tear down
  [Console] Remove useless http-kernel dev dep
  Fix testHtml method with regexp
  Fixed some param/return annotations in PHPDOC blocks.
  [Workflow] fixed InvalidDefinitionException message for StateMachineValidator
2017-08-15 15:32:22 +02:00
Alexander M. Turek
423656f8ea Fixed some param/return annotations in PHPDOC blocks. 2017-08-14 00:08:09 +02:00
Nicolas Grekas
4037009490 [DI] Generate one file per service factory 2017-08-06 20:25:40 +02:00
Nicolas Grekas
8be06c45f9 Merge branch '3.3' into 3.4
* 3.3:
  [Profiler] Fix request_collector check in main layout
  Github template: Remove EOM 3.2 from branch suggestion
  [Security] Fix security.interactive_login event const doc block
  Update Container.php: Deprecated -> @deprecated
  allow phpdocumentor/reflection-docblock >=3.2.1
  Avoid infinite loops when profiler data is malformed
  [FrameworkBundle] Warmup annotations for bundle-less controllers and entities
  [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-06 15:42:33 +02:00
Yurii K
259f9cc4ad Update Container.php: Deprecated -> @deprecated
Deprecated -> @deprecated
2017-08-06 02:56:19 +03: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
2725fd6080 [DI] Mark Container::$privates as internal 2017-07-18 09:06:47 +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
Fabien Potencier
f49cc11021 Merge branch '2.7' into 2.8
* 2.7:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:02:19 +02:00
Roland Franssen
c4b6066c9f [DI] Check privates before resolving alias in Container::initialized 2017-07-12 20:41:02 +02:00
Roland Franssen
595a225a0f [DI] Remove irrelevant comment from container 2017-07-08 10:35:50 +02:00
Nicolas Grekas
9a081d83c4 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Check privates before aliases consistently
  [Yaml] Add missing deprecation annotation
  [DI] Check for privates before shared services
2017-05-24 16:44:14 +02:00
Nicolas Grekas
b494106e2f Merge branch '3.2' into 3.3
* 3.2:
  [DI] Check privates before aliases consistently
2017-05-24 16:39:04 +02:00
Nicolas Grekas
1d9b1af4a3 [DI] Check privates before aliases consistently 2017-05-24 16:36:51 +02:00
Nicolas Grekas
d7981e5838 Merge branch '3.2' into 3.3
* 3.2:
  [Yaml] Add missing deprecation annotation
  [DI] Check for privates before shared services
2017-05-24 16:31:45 +02:00
Roland Franssen
4f683a9a5b [DI] Check for privates before shared services 2017-05-23 19:58:02 +02:00
Roland Franssen
e0eb247229 [DI] Deprecate Container::initialized() for privates 2017-05-22 13:20:30 +02:00
Nicolas Grekas
b07da3dc1e [DI] Enhance DX by throwing instead of triggering a deprecation notice 2017-03-28 08:18:44 +02:00
Roland Franssen
6abd312800 [DI] Deprecate Container::isFrozen and introduce isCompiled 2017-03-22 19:49:34 +01:00
Roland Franssen
fdb2140b81 [DI] Deprecate (un)setting pre-defined services 2017-02-05 11:30:27 +01:00
Fabien Potencier
735d0a6ce7 Revert "fixed typo"
This reverts commit 6830d9f4c9.
2017-01-21 08:37:26 -08:00
Fabien Potencier
6830d9f4c9 fixed typo 2017-01-21 08:33:48 -08:00
Nicolas Grekas
c1e1e999f3 [DI] Remove synthetic services from methodMap + generated methods 2017-01-15 16:01:29 +01:00
Nicolas Grekas
d08f1101df [DI] Deprecate case insentivity of service identifiers 2017-01-11 16:25:44 +01:00
Christophe Coevoet
03b91089e0 Use the method map as authoritative list of factories for dumped containers
The initial implementation of the method factory discovery was based on a
naming convention for factory methods. However, this naming convention allowed
to generate the same name for multiple ids. In the meantime, a method map was
introduced to solve this issue (and others).
When accessing a service with a different id than the official one (thanks to
ambiguities), this breaks the sharing of the service, as it creates a new
instance each time and replaces the existing shared instance. This was also
inconsistent between a dumped container (affected by this) and a non-dumped
container (reporting a service not found error for the other id).

The method map is now the authoritative way to discover available service
factories. When the dumped container was generated with a method map (which
is the case when using the dumper shipped in the component), the logic based
on defined methods is not executed anymore. This forbids using another id than
the real one to access the service (preventing to trigger the broken behavior).
When using a dumper which does not fill the method map, the old logic is still
applied, but deprecation warnings are triggered on access to dumped services.
2016-10-05 19:22:04 +02: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
bac2132aeb [DI] Allow injecting ENV parameters at runtime using %env(MY_ENV_VAR)% syntax 2016-09-10 12:12:34 +02:00
Nicolas Grekas
ccf63e6b8d Merge branch '2.7' into 2.8
* 2.7:
  [FrameworkBundle] Check for class existence before is_subclass_of
  Update GroupSequence.php
  Code enhancement and cleanup
  [DI] Add anti-regression test
  Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)"
  [BrowserKit] Fix cookie expiration on 32 bit systems
  bumped Symfony version to 2.7.18
  updated VERSION for 2.7.17
  update CONTRIBUTORS for 2.7.17
  updated CHANGELOG for 2.7.17
  Update misleading comment about RFC4627
2016-09-06 12:55:00 +02:00
Nicolas Grekas
ac742dfc48 Revert "minor #19689 [DI] Cleanup array_key_exists (ro0NL)"
This reverts commit c89f80a9cd, reversing
changes made to 386e5e78b4.
2016-09-04 19:06:49 +02: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
Nicolas Grekas
3596cb26ad bug #19685 [DI][2.7] Include dynamic services in alternatives (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI][2.7] Include dynamic services in alternatives

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License       | MIT
| Doc PR        | reference to the documentation PR, if any

Commits
-------

428b5cc include dynamic services in list of alternatives
2016-08-23 09:00:45 +02:00
Roland Franssen
3306c70a34 [DI] Cleanup array_key_exists 2016-08-22 08:32:51 -07:00
Roland Franssen
428b5cc6a8 include dynamic services in list of alternatives 2016-08-20 13:46:51 +00:00
Hugo Hamon
4ed70c4a4e [DependencyInjection] deprecate access to private shared services. Fixes issue #19117. 2016-06-28 09:16:13 +02:00