Commit Graph

1152 Commits

Author SHA1 Message Date
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
a8397cf1c7 [DI] Fix tracking env var placeholders nested in object graphs 2017-08-29 00:20:37 +02:00
Kevin Bond
00d7f6fa71
[DI] improve psr4-based service discovery with namespace option 2017-08-28 12:51:31 -04:00
Nicolas Grekas
baaff20f4a [DI] Fix tracking env vars when merging configs (bis) 2017-08-28 17:49:50 +02:00
Nicolas Grekas
3a9653df72 Merge branch '3.4'
* 3.4:
  [Console] Add protected static $defaultName to set the default name of a Command
  removed sf2 references
  [Console] Allow commands to provide a default name for compile time registration
  [DI] Case sensitive parameter names
2017-08-25 12:57:40 +02:00
Fabien Potencier
481e31c2d1 feature #23874 [DI] Case sensitive parameter names (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Case sensitive parameter names

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #23809
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

@GuilhemN took your patch.. but i use the same deprecation messages as for case sensitive service id's, i found it more clear. Also comparing to $origName to keep the diff smaller

Commits
-------

8a1d16839e [DI] Case sensitive parameter names
2017-08-22 15:02:44 -07: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
Fabien Potencier
50fe6a3c76 feature #23915 [DI] Allow get available services from service locator (Koc)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow get available services from service locator

| 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        | -

<!--
- 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 3.4,
  legacy code removals go to the master branch.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

Sometimes we are using service locators and throw context specific exceptions if service not found inside it. Would be nice inform user about available services in our custom exception, like:

```php
try {
    return $this->transports->get($transport);
} catch (NotFoundExceptionInterface $e) {
    $availableTransports = method_exists($e, 'getAlternatives') ? $e->getAlternatives() : [];

    throw TransportNotFoundException::create($transport, $availableTransports, $e);
}
```

Commits
-------

4993b1c14c Allow to get alternatives when ServiceNotFoundException occurs.
2017-08-18 14:05:45 +02:00
Nicolas Grekas
00b927322c [DI] Fix merging of env vars in configs 2017-08-18 13:25:49 +02:00
Fabien Potencier
9306fec43e minor #23912 [DI] Rererence parameter arrays when possible (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Rererence parameter arrays when possible

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

This a minor optim that might save memory and CPU for cases where big array parameters are inlined by DI extensions. This re-references them when possible.

Commits
-------

62c1bb5d3b [DI] Rererence parameter arrays when possible
2017-08-18 10:12:20 +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
Konstantin.Myakshin
4993b1c14c Allow to get alternatives when ServiceNotFoundException occurs. 2017-08-17 15:22:42 +03:00
Nicolas Grekas
62c1bb5d3b [DI] Rererence parameter arrays when possible 2017-08-17 11:23:46 +02:00
Nicolas Grekas
adff65a602 [DI] Fix reading env vars from fastcgi params 2017-08-16 16:07:29 +02:00
Nicolas Grekas
501c1b5d0e Merge branch '3.4'
* 3.4:
  Made some SecurityBundle tests case-insensitive to prepare for future Symfony versions
  [Console] Added a case-insensitive fallback for console command names
  fix merge
  [DI] Fix dumping abstract with YamlDumper
  restrict reflection doc block
  [DI] Fix YamlDumper not dumping abstract and autoconfigure
2017-08-15 10:24:11 +02:00
Roland Franssen
8a1d16839e [DI] Case sensitive parameter names 2017-08-14 17:16:04 +02:00
Nicolas Grekas
d1c754d8ca Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix dumping abstract with YamlDumper
  restrict reflection doc block
  [DI] Fix YamlDumper not dumping abstract and autoconfigure
2017-08-10 21:43:00 +02:00
Nicolas Grekas
9295a4f1eb Merge branch '3.4'
* 3.4: (23 commits)
  [DI] Allow dumping inline services in Yaml
  fixed CS
  [2.8] Modify 2.8 upgrade doc - key option is deprecated.
  Fix lock failling test
  [Debug] Correctly detect methods not from the same vendor
  [HttpKernel] Deprecated commands auto-registration
  Fix minors in date caster
  [FrameworkBundle] Catch Fatal errors in commands registration
  [Debug] Detect internal and deprecated methods
  [Profiler] Make the validator toolbar item consistent with the form one
  [DebugBundle] Reword an outdated comment about var dumper wiring
  updated CHANGELOG
  [HttpFoundation] Remove length limit on ETag
  [DI] Fix some docblocks
  [DI] Fix some docblocks
  Fixed the exception page design in responsive mode
  [Console] Log exit codes as debug messages instead of errors
  Fixed UPGRADE-4.0 about Container::set
  Ignore memcached missing key error on dession destroy
  [FrameworkBundle] Allow micro kernel to subscribe events easily
  ...
2017-08-10 16:21:53 +02:00
Nicolas Grekas
e5bbf3f4f3 [DI] Allow dumping inline services in Yaml 2017-08-10 13:54:24 +02:00
Nicolas Grekas
685ff0e280 [DI] Fix YamlDumper not dumping abstract and autoconfigure 2017-08-10 13:45:16 +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
7511fd3fdb Merge branch '3.4'
* 3.4:
  [Debug] Trigger a deprecation when using an internal class/trait/interface
  [DI] Generate one file per service factory
2017-08-07 20:06:09 +02:00
Nicolas Grekas
4037009490 [DI] Generate one file per service factory 2017-08-06 20:25:40 +02:00
Christian Flothmann
b27c96558d Merge branch '3.4'
* 3.4:
  [Yaml] Deprecate tags using colon
  better errors when security deps are missing
2017-08-04 17:24:51 +02:00
Christian Flothmann
baa1e7f677 minor #22913 [Yaml] Deprecate tags using colon (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #22913).

Discussion
----------

[Yaml] Deprecate tags using colon

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

Using a colon in a tag doesn't look like yaml and causes trouble (see https://github.com/symfony/symfony/pull/22878), so I propose to just deprecate these tags in favor of more consistent tags.

```yml
- !php/const:PHP_INT_MAX
- !php/object:O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}
```
would become
```yml
- !php/const PHP_INT_MAX
- !php/object O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}
```

Commits
-------

9815af3 [Yaml] Deprecate tags using colon
2017-08-04 15:29:48 +02:00
Guilhem Niot
9815af3810 [Yaml] Deprecate tags using colon 2017-08-04 15:29:32 +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
5cc1648ba4 [DI] Generate shorter method names for class-based ids 2017-08-02 17:38:38 +02:00
Nicolas Grekas
81bce547b2 Merge branch '3.4'
* 3.4:
  [DI] Remove unused props from the PhpDumper
  [VarDumper] Keep and reuse array stubs in memory
  [DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode()
  [Workflow] Adding workflow name to the announce event
  [ProxyManager] Cleanup fixtures
  [Console][WebServerBundle] Use "exec" when possible
  [Debug] HTML-escape array key
  Add some phpdocs for IDE autocompletion and better SCA
  Fixed typo in docblock
2017-07-28 17:35:42 +02:00
Nicolas Grekas
0caed939cd [DI] Inline trivial private servives 2017-07-27 20:26:34 +02:00
Nicolas Grekas
0754617c52 [DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode() 2017-07-27 19:12:50 +02:00
Nicolas Grekas
01f05e3a62 minor #23672 [DI] cleanup (nicolas-grekas)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[DI] cleanup

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

master-only cleanups

Commits
-------

8b11997 [DI] cleanup
2017-07-26 10:53:17 +02:00
Nicolas Grekas
3ea90b4802 Merge branch '3.4'
* 3.4:
  minor fix
  [DI] Make dumped docblocks less verbose
  [VarDumper] Dont use Stub objects for arrays
  [Form] Allow pass filter callback to delete_empty option.
2017-07-26 10:20:24 +02:00
Nicolas Grekas
f9c4621800 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Make dumped docblocks less verbose
  [VarDumper] Dont use Stub objects for arrays
2017-07-26 10:10:47 +02:00
Nicolas Grekas
34c68f956c Merge branch '3.2' into 3.3
* 3.2:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:58:57 +02:00
Nicolas Grekas
ceb4393ca5 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:58:16 +02:00
Nicolas Grekas
57bf748d6e Merge branch '2.7' into 2.8
* 2.7:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:56:01 +02:00