Commit Graph

16655 Commits

Author SHA1 Message Date
Maxime Steinhausser
f1cc090465 [DI] Fixes aliases visibility with and without defaults 2017-01-09 20:25:31 +01:00
Fabien Potencier
e66e6afcc1 feature #21188 [HttpFoundation] Add File\Stream for size-unknown BinaryFileResponse (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpFoundation] Add File\Stream for size-unknown BinaryFileResponse

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

Replaces #19740. Native "getSize" is reported to return false on error, so using false as return type doesn't break the signature.

Commits
-------

8011209a18 [HttpFoundation] Add File\Stream for size-unknown BinaryFileResponse
2017-01-09 06:38:12 -08:00
Fabien Potencier
bb1e076899 minor #21191 [Yaml] Remove unused argument (GuilhemN)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Yaml] Remove unused argument

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

This PR removes an unused argument of `Inline::parseScalar()`. I based it on master as that's not really a bug fix but the lowest applicable branch is 3.0 (the method was not internal in 2.x).

Commits
-------

1a14a1f274 [Yaml] Remove an unused argument
2017-01-09 06:37:34 -08:00
Nicolas Grekas
8011209a18 [HttpFoundation] Add File\Stream for size-unknown BinaryFileResponse 2017-01-09 15:30:01 +01:00
WouterJ
28a1b5ac47 Allow setting services as null 2017-01-09 13:12:14 +01:00
Fabien Potencier
9b99fffb9d Merge branch '3.2'
* 3.2:
  [TwigBundle] fixed usage when Templating is not installed
  [Validator] Check cascasdedGroups for being countable
  [Cache] Add changelog for 3.2
  [Cache] Add changelog
  [Filesystem] Check that the directory is writable after created it in dumpFile()
  [HttpFoundation] Improved set cookie header tests
  [Serializer] int is valid when float is expected when deserializing JSON
  [Console] increased code coverage of Output classes
  Added missing headers in fixture files
  [Profiler][VarDumper] Fix minor color issue & duplicated selector
2017-01-08 13:15:04 -08:00
Fabien Potencier
831d0a0553 Merge branch '3.1' into 3.2
* 3.1:
  [TwigBundle] fixed usage when Templating is not installed
  [Validator] Check cascasdedGroups for being countable
  [Cache] Add changelog
  [Filesystem] Check that the directory is writable after created it in dumpFile()
  [HttpFoundation] Improved set cookie header tests
  [Serializer] int is valid when float is expected when deserializing JSON
  [Console] increased code coverage of Output classes
  Added missing headers in fixture files
  [Profiler][VarDumper] Fix minor color issue & duplicated selector
2017-01-08 12:47:33 -08:00
Fabien Potencier
789111c52a Merge branch '2.8' into 3.1
* 2.8:
  [TwigBundle] fixed usage when Templating is not installed
  [Validator] Check cascasdedGroups for being countable
  [Filesystem] Check that the directory is writable after created it in dumpFile()
  [HttpFoundation] Improved set cookie header tests
  [Console] increased code coverage of Output classes
  [Profiler][VarDumper] Fix minor color issue & duplicated selector
2017-01-08 12:43:43 -08:00
Fabien Potencier
4546377125 Merge branch '2.7' into 2.8
* 2.7:
  [TwigBundle] fixed usage when Templating is not installed
  [Validator] Check cascasdedGroups for being countable
  [Filesystem] Check that the directory is writable after created it in dumpFile()
  [HttpFoundation] Improved set cookie header tests
  [Console] increased code coverage of Output classes
2017-01-08 12:43:03 -08:00
Fabien Potencier
efe2a93bba feature #20612 [Filesystem] Add appendToFile() (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Filesystem] Add appendToFile()

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

So we could append content to a file:

```php
(new Filesystem)->appendToFile($file, 'bar');
```

instead of doing it in two steps:

```php
if (false === $content = @file_get_contents($file)) {
    throw new \Exception();
}

(new Filesystem)->dumpFile($file, $content.'bar');
```

Doing it opt-in using `dumpFile(..., $append = false)` would have been enough but not possible for BC.

Commits
-------

1f7b753670 [Filesystem] Add appendToFile()
2017-01-08 12:18:13 -08:00
Robin Chalas
1f7b753670
[Filesystem] Add appendToFile() 2017-01-08 21:06:51 +01:00
Fabien Potencier
2ee8626e60 feature #20612 [Filesystem] Add appendToFile() (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Filesystem] Add appendToFile()

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

So we could append content to a file:

```php
(new Filesystem)->appendToFile($file, 'bar');
```

instead of doing it in two steps:

```php
if (false === $content = @file_get_contents($file)) {
    throw new \Exception();
}

(new Filesystem)->dumpFile($file, $content.'bar');
```

Doing it opt-in using `dumpFile(..., $append = false)` would have been enough but not possible for BC.

Commits
-------

9fb5293122 [Filesystem] Add appendToFile()
2017-01-08 11:58:00 -08:00
Robin Chalas
9fb5293122
[Filesystem] Add appendToFile() 2017-01-08 20:22:13 +01:00
Fabien Potencier
2e5b69f8d8 [DependencyInjection] moved up ResolveClassPass in the container pass list 2017-01-08 10:25:16 -08:00
Fabien Potencier
23294e59ca bug #21155 [Validator] Check cascasdedGroups for being countable (scaytrase)
This PR was squashed before being merged into the 2.7 branch (closes #21155).

Discussion
----------

[Validator] Check cascasdedGroups for being countable

Prevents notice for PHP 7.2

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

Just repeated for this place https://github.com/symfony/symfony/pull/20859
Waiting travis to fill in the `Tests pass` field

`cascasdedGroups` can be null at this point (according to failures and phpdoc)

Commits
-------

8fa45a130b [Validator] Check cascasdedGroups for being countable
2017-01-08 08:16:04 -08:00
Pavel Batanov
8fa45a130b [Validator] Check cascasdedGroups for being countable 2017-01-08 08:16:02 -08:00
Fabien Potencier
95043b2cb6 feature #21114 [Yaml] parse multi-line strings (xabbuh)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Yaml] parse multi-line strings

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

When working on #21084, I discovered that the YAML parser does not support (unquoted) multi-line strings (neither as plain strings nor as values for mappings). This PR adds support for them.

Commits
-------

ec593b923b [Yaml] parse multi-line strings
2017-01-08 08:01:14 -08:00
Nicolas Grekas
9aaa8acbc9 [Cache] Add changelog for 3.2 2017-01-08 15:05:34 +01:00
Nicolas Grekas
d087d0ffea [Cache] Add changelog 2017-01-08 14:57:38 +01:00
Nicolas Grekas
03d160fe04 Merge branch '3.2'
* 3.2:
  [TwigBundle] Disable form in tests
2017-01-08 14:47:57 +01:00
Robin Chalas
dbc4148535
[Filesystem] Check that the directory is writable after created it in dumpFile() 2017-01-08 13:55:49 +01:00
Fabien Potencier
e1d39005bd feature #20937 [EventDispatcher] Deprecate ContainerAwareEventDispatcher (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[EventDispatcher] Deprecate ContainerAwareEventDispatcher

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

These methods shouldn't be available to end users.

Commits
-------

c4a6a8a47c [EventDispatcher] Deprecate ContainerAwareEventDispatcher
2017-01-07 18:00:26 -08:00
Fabien Potencier
96c9e202c3 minor #21192 [DI] Dont call get() when not required - µ-optim (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Dont call get() when not required - µ-optim

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

(could be applied on 3.2, please advise)
Helps a bit on https://rawgit.com/kocsismate/php-di-container-benchmarks/master/var/benchmark.html

note: if we want more performance, we should consider deprecating case insensitivity of service identifiers.

Commits
-------

7a42199115 [DI] Dont call get() when not required - µ-optim
2017-01-07 09:36:06 -08:00
Nicolas Grekas
7a42199115 [DI] Dont call get() when not required - µ-optim 2017-01-07 17:52:01 +01:00
Nicolas Grekas
beec1cff8f [DI] Allow definitions to inherit tags from parent context 2017-01-07 17:43:10 +01:00
Maxime Steinhausser
05f24d5a6d [DI] Add "defaults" tag to XML services configuration 2017-01-07 17:40:58 +01:00
Nicolas Grekas
7b4a18b044 [DI] Add "_defaults" key to Yaml services configuration 2017-01-07 17:40:58 +01:00
Nicolas Grekas
c4a6a8a47c [EventDispatcher] Deprecate ContainerAwareEventDispatcher 2017-01-07 16:57:09 +01:00
Martin Hasoň
a18c4b6ab2 [DI] Add tests for class named services 2017-01-07 16:55:01 +01:00
Nicolas Grekas
71b17c7790 [DI] Optional class for named services 2017-01-07 16:55:01 +01:00
Fabien Potencier
6ba968424c feature #20953 [DI][EventDispatcher] Add & wire closure-proxy argument type (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI][EventDispatcher] Add & wire closure-proxy argument type

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

By resolving event subscribers at compile time, then wrapping listeners in a closure, we get laziness almost for free. This should solve/replaced all the above linked issues.

(WIP because tests are missing)

Commits
-------

ecdf857b61 [DI][EventDispatcher] Add & wire closure-proxy argument type
2017-01-07 06:13:19 -08:00
Guilhem N
1a14a1f274
[Yaml] Remove an unused argument 2017-01-07 12:16:59 +01:00
Robin Chalas
5b0504c926
[Console] Ease writing to stderr using styles 2017-01-06 19:34:44 +01:00
Nicolas Grekas
36aedd8b2c Merge branch '3.2'
* 3.2:
  [Bridge/PhpUnit] Relax expectedDeprecation for forward compat
  [FrameworkBundle] Remove Response* from classes to compile
  [Workflow] Removed twig from composer.json (dev section, not used)
2017-01-06 18:58:22 +01:00
Fabien Potencier
182dd8f7e6 minor #20972 [HttpFoundation] Improved set cookie header tests (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #20972).

Discussion
----------

[HttpFoundation] Improved set cookie header tests

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

Separated from #20569

Commits
-------

05bce71d7a [HttpFoundation] Improved set cookie header tests
2017-01-06 09:20:46 -08:00
Roland Franssen
05bce71d7a [HttpFoundation] Improved set cookie header tests 2017-01-06 09:20:45 -08:00
Fabien Potencier
dda376032d feature #20735 Deprecate ClassCollectionLoader and Kernel::loadClassCache (dbrumann)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Deprecate ClassCollectionLoader and Kernel::loadClassCache

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

As suggested by @nicolas-grekas in #20668 I added deprecation notices to ClassCollectionLoader and Kernel::loadClassCache.

Commits
-------

660d79a186 Deprecates ClassCache-cache warmer.
2017-01-06 07:22:02 -08:00
Grégoire Pineau
4a81af6fa6 [Workflow] Removed twig from composer.json (dev section, not used) 2017-01-06 16:20:14 +01:00
Fabien Potencier
c36f25f038 bug #21165 [Serializer] int is valid when float is expected when deserializing JSON (dunglas)
This PR was squashed before being merged into the 3.1 branch (closes #21165).

Discussion
----------

[Serializer] int is valid when float is expected when deserializing JSON

| Q             | A
| ------------- | ---
| Branch?       | 3.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | api-platform/api-platform#37
| License       | MIT
| Doc PR        | n/a

JSON only has a Number type corresponding to both `int` and `float` PHP types.
PHP's `json_encode`, JavaScript's `JSON.stringify`, Go's `json.Marshal` as well as most other JSON encoders convert floating-point numbers like `12.0` to `12` (the decimal part is dropped when possible).
PHP's `json_decode` automatically converts Numbers without a decimal part to integers.

Actually, the Serializer rejects integers when a float is expected, this PR fixes this behavior when denormalizing JSON-based formats.

Port of api-platform/core#714.

/cc @gorghoa @Shine-neko

Commits
-------

4125455775 [Serializer] int is valid when float is expected when deserializing JSON
2017-01-06 07:11:28 -08:00
Kévin Dunglas
4125455775 [Serializer] int is valid when float is expected when deserializing JSON 2017-01-06 07:11:08 -08:00
Nicolas Grekas
1038221d51 minor #21124 [Console] increased code coverage of Output classes (ShinDarth)
This PR was squashed before being merged into the 2.7 branch (closes #21124).

Discussion
----------

[Console] increased code coverage of Output classes

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

This PR increases the coverage of Output classes of the Console component from 80.81% to 94.95%

Commits
-------

ab4ba23 [Console] increased code coverage of Output classes
2017-01-06 14:13:12 +01:00
ShinDarth
ab4ba23931 [Console] increased code coverage of Output classes 2017-01-06 14:13:10 +01:00
Nicolas Grekas
66f7126569 minor #21156 No fallback to REQUEST_TIME in TimeDataCollector (iltar)
This PR was merged into the 3.3-dev branch.

Discussion
----------

No fallback to REQUEST_TIME in TimeDataCollector

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

As of PHP 5.4 the `REQUEST_TIME_FLOAT` is available and the minimum version of PHP is 5.5 in Symfony. I think it's safe to use as I can't find cases where this is _not_ defined.

Commits
-------

ba00543 No fallback to REQUEST_TIME in TimeDataCollector
2017-01-06 14:09:06 +01:00
Nicolas Grekas
ecdf857b61 [DI][EventDispatcher] Add & wire closure-proxy argument type 2017-01-06 08:57:26 +01:00
Iltar van der Berg
c9c2474a2c Added missing headers in fixture files 2017-01-06 08:41:29 +01:00
Fabien Potencier
924469c47e feature #21109 [Profiler][VarDumper] Add a search feature to the HtmlDumper (ogizanagi)
This PR was squashed before being merged into the 3.3-dev branch (closes #21109).

Discussion
----------

[Profiler][VarDumper] Add a search feature to the HtmlDumper

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

I finally took some time to continue this. Here is the result so far:

| Raw        | Profiler           | Profiler Bar |
|:-------------:|:-------------:|:-----:|
| ![sfdump](https://cloud.githubusercontent.com/assets/2211145/21567183/4edfcd98-ceaa-11e6-9c51-873663551f32.gif) | ![sfdump profiler](https://cloud.githubusercontent.com/assets/2211145/21567181/4eb8013c-ceaa-11e6-8ed9-f9cb40090d55.gif) | ![sfdump profilerbar](https://cloud.githubusercontent.com/assets/2211145/21567180/4eb71740-ceaa-11e6-92dd-cc61d68a8def.gif) |

New outputs:

| Raw        | Profiler Bar |
|:-------------:|:-----:|
| ![capture d ecran 2017-01-03 a 16 20 54](https://cloud.githubusercontent.com/assets/2211145/21612323/f6b275c4-d1d0-11e6-9f78-059940fe1c2f.png) | <img width="245" alt="capture d ecran 2017-01-03 a 16 21 34" src="https://cloud.githubusercontent.com/assets/2211145/21612337/0641ad34-d1d1-11e6-92ac-a0fff2721241.png"> |

| Profiler Dump Panel | Profiler - Request Panel |
|:-------------:|:-----:|
| ![capture d ecran 2017-01-03 a 16 21 57](https://cloud.githubusercontent.com/assets/2211145/21612329/00a0ead4-d1d1-11e6-958e-e11bc87c0a7d.png) | ![capture d ecran 2017-01-03 a 16 22 22](https://cloud.githubusercontent.com/assets/2211145/21612330/00a2135a-d1d1-11e6-867d-18c55b86897e.png) ![capture d ecran 2017-01-03 a 16 22 33](https://cloud.githubusercontent.com/assets/2211145/21612331/00a2e000-d1d1-11e6-8f2a-2965a837fa60.png) |

Usage:

1. Click on the dump
1. <kbd>CTRL</kbd>/<kbd>CMD</kbd> + <kbd>F</kbd>.
1. <kbd>ESC</kbd> to quit.

Code, styles and rendering might not be perfect, but I think it's enough polished to be considered.
Anyway, I'll accept any PR on my own branch if anyone wishes to contribute to it 😃

~~I moved javascript and css into dedicated files, as I find it easier to maintain (but will complicate diff with other branches). I know PHPStorm is already able to do partial language injection in PHP files, so it might not be needed... But still looks more elegant to me ^^'~~

Commits
-------

1fe82fa49b [Profiler][VarDumper] Add a search feature to the HtmlDumper
2017-01-05 20:44:38 -08:00
Maxime Steinhausser
1fe82fa49b [Profiler][VarDumper] Add a search feature to the HtmlDumper 2017-01-05 20:44:37 -08:00
Fabien Potencier
0f50b4de80 feature #20907 [DependencyInjection] Implement lazy collection type using generators (tgalopin, nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DependencyInjection] Implement lazy collection type using generators

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

Following the RFC https://github.com/symfony/symfony/issues/20875, this PR aims to implement lazy services collections using generators internally.

For now, I suggest to support only XML and PHP definitions. Supporting YAML means adding another convention to the language and this is not the aim of this PR.

- [x] value object holding the semantic (IteratorArgument)
- [x] iterator dumping
- [x] lazyness awareness in CheckCircularReferencesPass & GraphvizDumper
- [x] rewindable iterators
- [x] `*_ON_INVALID_REFERENCE` behavior
- [x] ContainerBuilder::createService
- [x] ArgumentInterface handling in compiler passes

Commits
-------

1dbf52ad03 [DI] Add "=iterator" arguments to Yaml loader
5313943692 [DependencyInjection] Implement lazy collection type using generators
2017-01-05 19:07:12 -08: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