* 2.4:
[Form][2.3] Fixes empty file-inputs getting treated as extra field.
changed some PHPUnit assertions to more specific ones
fixed Kernel::stripComments() normalizing new-lines
added a BC comment
Update FileLoader to fix issue #10339
bumped Symfony version to 2.3.12
updated VERSION for 2.3.11
update CONTRIBUTORS for 2.3.11
updated CHANGELOG for 2.3.11
Throw exception when unable to normalize embedded object
Fixed evaluation of short circuit operators
Follow-up to #10312: Fixed minor performance related issues in Yaml\Inline.
[2.4][HttpKernel] Fix issue #10209 When the profiler has `only_exception` option activated and a subrequest throw an exception, the parent profile cannot be found.
This PR was squashed before being merged into the 2.3 branch (closes#10251).
Discussion
----------
[Form][2.3] Fixes empty file-inputs getting treated as extra field.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8575 (https://github.com/symfony/symfony/pull/8575#issuecomment-34867485)
| License | MIT
Re-applies 968fe23 (PR #8575).
The test for this already exists, it was just this line that got overwritten by eb9f76d5ba (diff-ca5e25b47f3ecc94cd557946aeb486c6L542)
To clarify, this is a PR into 2.3 branch - this already exists in 2.4 (and later from this PR: https://github.com/symfony/symfony/pull/9146)
Commits
-------
8d99d75 [Form][2.3] Fixes empty file-inputs getting treated as extra field.
This PR was merged into the 2.5-dev branch.
Discussion
----------
[Console] A better progress bar
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #9573, #9574, #10187, #9951, related to #9788
| License | MIT
| Doc PR | symfony/symfony-docs#3626
TODO:
- [x] add some docs
See what this PR allows you to do easily:
![cwzpvk](https://f.cloud.github.com/assets/47313/2302190/30cd80e4-a170-11e3-8d88-80c4e4ca8b23.gif)
## New ProgressBar class
First, this PR deprecates `ProgressHelper` in favor of `ProgressBar`. The main difference is that the new `ProgressBar` class represents a single progress bar, which allows for more than one bar to be displayed at a time:
```php
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Output\ConsoleOutput;
$output = new ConsoleOutput();
$bar1 = new ProgressBar($output, 10);
$bar2 = new ProgressBar($output, 20);
$bar2->setProgressCharacter('#');
$bar1->start();
print "\n";
$bar2->start();
for ($i = 1; $i <= 20; $i++) {
// up one line
$output->write("\033[1A");
usleep(100000);
if ($i <= 10) {
$bar1->advance();
}
print "\n";
$bar2->advance();
}
```
And here is how it looks like when run:
![progress-bars](https://f.cloud.github.com/assets/47313/2300612/4465889a-a0fd-11e3-8bc2-b1d2a0f5dc3d.gif)
## Format Placeholders
This pull request refactors the way placeholders in the progress bar are managed. It is now possible to add new placeholders or replace existing ones:
```php
// set a new placeholder
ProgressBar::setPlaceholderFormatterDefinition('remaining_steps', function (ProgressBar $bar) {
return $bar->getMaxSteps() - $bar->getStep();
});
// change the behavior of an existing placeholder
ProgressBar::setPlaceholderFormatterDefinition('max', function (ProgressBar $bar) {
return $bar->getMaxSteps() ?: '~';
});
```
Several new built-in placeholders have also been added:
* `%remaining%`: Display the remaining time
* `%estimated%`: Display the estimated time of the whole "task"
* `%memory%`: Display the memory usage
## Formats
Formats can also be added (or built-in ones modified):
```php
ProgressBar::setFormatDefinition('simple', '%current%');
$bar->setFormat('simple');
// is equivalent to
$bar->setFormat('%current%');
```
Built-in formats are:
* `quiet`
* `normal`
* `verbose`
* `quiet_nomax`
* `normal_nomax`
* `verbose_nomax`
## Format Messages
You can also set arbitrary messages that depends on the progression in the progress bar:
```php
$bar = new ProgressBar($output, 10);
$bar->setFormat("%message% %current%/%max% [%bar%]");
$bar->setMessage('started');
$bar->start();
$bar->setMessage('advancing');
$bar->advance();
$bar->setMessage('finish');
$bar->finish();
```
You are not limited to a single message (`message` being just the default one):
```php
$bar = new ProgressBar($output, 10);
$bar->setFormat("%message% %current%/%max% [%bar%] %end%");
$bar->setMessage('started');
$bar->setMessage('', 'end');
$bar->start();
$bar->setMessage('advancing');
$bar->advance();
$bar->setMessage('finish');
$bar->setMessage('ended...', 'end');
$bar->finish();
```
## Multiline Formats
A progress bar can now span more than one line:
```php
$bar->setFormat("%current%/%max% [%bar%]\n%message%");
```
## Flexible Format Definitions
The hardcoded formatting for some placeholders (like `%percent%` or `%elapsed%`) have been removed in favor of a `sprintf`-like format:
```php
$bar->setFormat("%current%/%max% [%bar%] %percent:3s%");
```
Notice the `%percent:3s%` placeholder. Here, `%3s` is going to be used when rendering the placeholder.
## ANSI colors and Emojis
The new progress bar output can now contain ANSI colors and.or Emojis (see the small video at the top of this PR).
Commits
-------
0d1a58c [Console] made formats even more flexible
8c0022b [Console] fixed progress bar when using ANSI colors and Emojis
38f7a6f [Console] fixed PHP comptability
244d3b8 [Console] added a way to globally add a progress bar format or modify a built-in one
a9d47eb [Console] added a way to add a custom message on a progress bar
7a30e50 [Console] added support for multiline formats in ProgressBar
1aa7b8c [Console] added more default placeholder formatters for the progress bar
2a78a09 [Console] refactored the progress bar to allow placeholder to be extensible
4e76aa3 [Console] added ProgressBar (to replace the stateful ProgressHelper class)
* 2.3:
changed some PHPUnit assertions to more specific ones
fixed Kernel::stripComments() normalizing new-lines
added a BC comment
Update FileLoader to fix issue #10339
This PR was merged into the 2.3 branch.
Discussion
----------
PHPUnit more specific assertions
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #10357
| License | MIT
| Doc PR | n/a
Commits
-------
4927d0c changed some PHPUnit assertions to more specific ones
This PR was merged into the 2.5-dev branch.
Discussion
----------
[DataCollector] Improves the readability of the collected arrays in the profiler
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
This PR is based on #10155.
Original description:
It simply improves the readability of the collected arrays in the profiler:
__before__:
```
Array(date => Array(year => , month => , day => ), time => Array(hour => ))
```
__after__:
```
[
date => [
year => ,
month => ,
day =>
],
time => [
hour =>
]
]
```
Commits
-------
dce66c9 removed double-stringification of values in the profiler
1cda2d4 [HttpKernel] tweaked value exporter
3f297ea Improves the readability of the collected arrays in the profiler.
This PR was merged into the 2.5-dev branch.
Discussion
----------
removed as many usage of the request service as possible without breaking BC
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
d638369 removed as many usage of the request service as possible without breaking BC
This PR was merged into the 2.5-dev branch.
Discussion
----------
[Debug] ExceptionHandlerInterface to allow third party exception handlers to handle fatal errors caught by ErrorHandler
| Q | A
| ------------- | ---
| Bug fix? | yes (other project)
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| Related tickets | schmittjoh/JMSDebuggingBundle#68
| License | MIT
| Doc PR |
The current `ErrorHandler` is extremely strict on how it selects whether to run an `ExceptionHandler` when an `E_FATAL` occurs.
This modification allows any class that implements `ExceptionHandlerInterface` to handle a `FatalErrorException` created by the `ErrorHandler`.
Commits
-------
15d063b Create ExceptionHandlerInterface to allow third party exception handlers' to handle fatal errors
This PR was merged into the 2.4 branch.
Discussion
----------
[2.4][HttpKernel] Fix issue #10209
When the profiler has `only_exception` option activated and a subrequest which
throw an exception, the parent profile cannot be found.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
Fix issue #10209
Commits
-------
b949c49 [2.4][HttpKernel] Fix issue #10209 When the profiler has `only_exception` option activated and a subrequest throw an exception, the parent profile cannot be found.
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpKernel] fix stripComments() normalizing new-lines
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #10227
| License | MIT
| Doc PR |
This makes normalizing new-lines less error-prone
when a string contains multiple new line-lines
Commits
-------
63032c7 fixed Kernel::stripComments() normalizing new-lines
This PR was merged into the 2.3 branch.
Discussion
----------
Update FileLoader to fix issue #10339
This fixes an issue in Symfony\Component\Config\Loader\FileLoader
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #10339
| License | MIT
| Doc PR | none
Commits
-------
3988728 Update FileLoader to fix issue #10339
FileLoader now uses resolved FileLoader's (the one that explicitly
supports that resource) FileLocatorInterface instance before falling
back to its own when trying to load resources in import() method.
* 2.3:
bumped Symfony version to 2.3.12
updated VERSION for 2.3.11
update CONTRIBUTORS for 2.3.11
updated CHANGELOG for 2.3.11
Follow-up to #10312: Fixed minor performance related issues in Yaml\Inline.
Conflicts:
src/Symfony/Component/HttpKernel/Kernel.php
This PR was submitted for the 2.1 branch but it was merged into the 2.4 branch instead (closes#10306).
Discussion
----------
[Serializer] Throw exception when unable to normalize embedded object
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
This PR intends to prevent Fatal Error about calling undefined method `normalize()` on object `$serializer` in the `GetSetMethodNormalizer` when injected serializer does not implement the `NormalizerInterface`.
Commits
-------
8a54920 [Serializer] Throw exception when unable to normalize embedded object
This PR was submitted for the 2.4-dev branch but it was merged into the 2.4 branch instead (closes#10338).
Discussion
----------
[ExpressionLanguage] Fixed evaluation of short circuit operators
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
fba0a40 [ExpressionLanguage] Fixed evaluation of short circuit operators
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes#10323).
Discussion
----------
[Yaml] Fixed minor performance related issues in Yaml\Inline.
Follow-up to #10312
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
a36fef5 Follow-up to #10312: Fixed minor performance related issues in Yaml\Inline.
* 2.4:
[Process] minor fixes
Improve performance of getNextEmbedBlock by removing unnecessary preg_match and function calls.
Avoid unnecessary line indentation calculation.
Optimise Inline::evaluateScalar() for parsing strings.
fixed CS
fixed parsing Mongo DSN and added Test for it
() is also a valid delimiter
Adding PHP 5.6 to travis-ci tests
Update BCryptPasswordEncoder.php
[Validator] Removed PHP <5.3.3 specific code which is not officially supported.
Fixed wrong redirect url if path contains some query parameters
* 2.3:
[Process] minor fixes
Improve performance of getNextEmbedBlock by removing unnecessary preg_match and function calls.
Avoid unnecessary line indentation calculation.
Optimise Inline::evaluateScalar() for parsing strings.
fixed CS
fixed parsing Mongo DSN and added Test for it
() is also a valid delimiter
Adding PHP 5.6 to travis-ci tests
Update BCryptPasswordEncoder.php
[Validator] Removed PHP <5.3.3 specific code which is not officially supported.
Fixed wrong redirect url if path contains some query parameters
This PR was squashed before being merged into the 2.3 branch (closes#10305).
Discussion
----------
[Process] minor fixes
| Q | A
| ------------- | ---
| Fixed tickets | [n/a]
| License | MIT
The "same" PR as #10220, but on "2.3" branch
Commits
-------
f03e5dc [Process] minor fixes