This PR was merged into the 2.7 branch.
Discussion
----------
[TwigBundle] make date formats and number formats configurable
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13552
| License | MIT
| Doc PR | TODO
This adds new Twig configuration options that make it possible to
configure the format of both numbers and dates as well as timezones
without the need to write custom code.
For example, using the new configuration options can look like this:
```yaml
twig:
date:
format: d.m.Y, H:i:s
interval_format: %%d days
timezone: Europe/Berlin
number_format:
decimals: 2
decimal_point: ,
thousands_separator: .
```
Commits
-------
e9bc23b make date formats and number formats configurable
This PR was squashed before being merged into the 2.7 branch (closes#14196).
Discussion
----------
Tweaked some console command styles
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14174
| License | MIT
| Doc PR | -
As discussed, after updating the first console commands to the new style guide, we were going to introduce the needed tweaks. This PR is the first one with those tweaks.
### Tables
Headers now are displayed in the usual green color used frequently by Symfony commands:
![table_header](https://cloud.githubusercontent.com/assets/73419/6980286/a126e8cc-d9ef-11e4-8d1e-9a5be21564eb.png)
### Command tiles and section titles
I see these titles in a beautiful blue color ... but lots of people use color schemes which make them almost unreadable. Now they use the yellow color frequently used by Symfony commands:
![command_section_titles](https://cloud.githubusercontent.com/assets/73419/6980292/b499627c-d9ef-11e4-9940-e134ee0eb02f.png)
### Listings
Elements in a listing no longer add an extra blank line. See #14174 for the rationale.
Commits
-------
dcf1801 Tweaked some console command styles
This PR was merged into the 2.7 branch.
Discussion
----------
[Translation][Profiler] fixed infiinite loop when collect msg from fallback
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | ~
| Tests pass? | yes
| License | MIT
Commits
-------
59f2172 [Translation][Profiler] fixed infiinite loop when collect msg from fallback.
This PR was merged into the 2.7 branch.
Discussion
----------
[Debug] Updated the default log level when a PHP error occurs
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
According to https://github.com/Seldaek/monolog#log-levels
the level `NOTICE` means "Normal but significant events".
So when a PHP notice occurs, it's not a "normal" event,
but an error.
That's why all PHP errors should use at least the `WARNING` error
level.
Commits
-------
d2f85ed [Debug] Updated the default log level when a PHP error occurs
This adds new Twig configuration options that make it possible to
configure the format of both numbers and dates as well as timezones
without the need to write custom code.
For example, using the new configuration options can look like this:
```yaml
twig:
date:
format: d.m.Y, H:i:s
interval_format: %%d days
timezone: Europe/Berlin
number_format:
decimals: 2
decimal_point: ,
thousands_separator: .
```
This PR was merged into the 2.7 branch.
Discussion
----------
[2.7][Translation] generate translation cache at warmup
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13919
| License | MIT
| Doc PR | NA
This PR uses the parameters "locale" and "fallback_locales" to generate the catalogues at warmup, avoiding the creation of files at runtime.
Commits
-------
94d3876FIX#13919 added TranslationsCacheWarmer to generate catalogues at warmup
The word 'movies' was singularified to 'movy'. There seem to be only two
words ending in 'ovies', which are 'movies' and 'anchovies'. The singular
of the latter is 'anchovy'. All other words ending in 'vies' singularify to
'vy', so the word 'movies' is an exception to the general rule.
According to https://github.com/Seldaek/monolog#log-levels
the level `NOTICE` means "Normal but significant events".
So when a PHP notice occurs, it's not a "normal" event,
but an error.
That's why all PHP errors should use at lease the `WARNING` error
level.
This PR was merged into the 2.3 branch.
Discussion
----------
[CS] Fix some phpdocs for Twig extensions & templating helpers
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| Tests pass? | yes
| License | MIT
Commits
-------
a95f7f3 Fix some phpdocs for Twig extensions & templating helpers
This PR was merged into the 2.3 branch.
Discussion
----------
[DoctrineBridge] Add missing variable declaration in testcase
| Q | A
| ------------- | ---
| Bug fix? | yes?
| New feature? | no
| BC breaks? | no
| Tests pass? | yes
| License | MIT
Commits
-------
52885f0 [DoctrineBridge] Add missing variable declaration in testcase
This PR was merged into the 2.7 branch.
Discussion
----------
[FrameworkBundle] added a protected shortcut getParameter() method in the base Controller class.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
5d96f4d [FrameworkBundle] added a protected shortcut getParameter() method in the base Controller class.
This PR was merged into the 2.7 branch.
Discussion
----------
Remove dead code from FrameworkExtension & LogoutUrlHelper
| Q | A
| ------------- | ---
| Bug fix? | yes?
| New feature? | no
| BC breaks? | no
| Tests pass? | yes
| License | MIT
Commits
-------
13ec9ff Remove dead code from FrameworkExtension & LogoutUrlHelper
This PR was squashed before being merged into the 3.0-dev branch (closes#14147).
Discussion
----------
Removed deprecations in Process component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
8ef1960 Removed deprecations in Process component
The fix for IE8 which does not have the addEventListener method on
XMLHttpRequest broke the feature for modern browsers because it was
checking the existence on the wrong object. It is a method on the
instance, not on the "class", and so should be checked on the prototype.
This PR was squashed before being merged into the 3.0-dev branch (closes#14150).
Discussion
----------
Removed deprecations in Templating component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
c936361 Removed deprecations in Templating component
* 2.3:
bumped Symfony version to 2.3.28
updated VERSION for 2.3.27
update CONTRIBUTORS for 2.3.27
updated CHANGELOG for 2.3.27
isFromTrustedProxy to confirm request came from a trusted proxy.
Safe escaping of fragments for eval()
Conflicts:
src/Symfony/Component/HttpFoundation/Request.php
src/Symfony/Component/HttpKernel/HttpCache/Esi.php
src/Symfony/Component/HttpKernel/Kernel.php
This PR was merged into the 3.0-dev branch.
Discussion
----------
Removed deprecations in VarDumper component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
854300a Removed deprecations in VarDumper component
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Add casters for Reflection* classes
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Will need a rebase on top of #14079 and #14077 to be mergeable/green.
Commits
-------
64d6e76 [VarDumper] Add casters for Reflection* classes
This PR was merged into the 2.7 branch.
Discussion
----------
[Form] Refactored choice lists to support dynamic label, value, index and attribute generation
This is a rebase of #12148 on the 2.7 branch.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | yes
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #4067, #5494, #3836, #8658, #12148
| License | MIT
| Doc PR | TODO
I implemented the additional options "choice_label", "choice_name", "choice_value", "choice_attr", "group_by" and "choices_as_values" for ChoiceType. Additionally the "preferred_choices" option was updated to accept callables and property paths.
The "choices_as_values" option will be removed in Symfony 3.0, where the choices will be passed in the values of the "choices" option by default. The reason for that is that, right now, choices are limited to strings and integers (i.e. valid array keys). When we flip the array, we remove that limitation. Since choice labels are always strings, we can also always use them as array keys:
```php
// Not possible currently, but possible with "flip_choices"
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
));
```
All the features described here obviously also apply to subtypes of "choice", such as "entity".
**choice_label**
Returns the label for each choice. Can be a callable (which receives the choice as first and the key of the "choices" array as second argument) or a property path.
If `null`, the keys of the "choices" array are used as labels.
```php
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'yes' => true,
'no' => false,
'maybe' => null,
),
'choices_as_values' => true,
'choice_label' => function ($choice, $key) {
return 'form.choice.'.$key;
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
Status::getInstance(Status::YES),
Status::getInstance(Status::NO),
Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'choice_label' => 'displayName',
));
```
**choice_name**
Returns the form name for each choice. That name is used as name of the checkbox/radio form for this choice. It is also used as index of the choice views in the template. Can be a callable (like for "choice_label") or a property path.
The generated names must be valid form names, i.e. contain alpha-numeric symbols, underscores, hyphens and colons only. They must start with an alpha-numeric symbol or an underscore.
If `null`, an incrementing integer is used as name.
```php
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'choice_name' => function ($choice, $key) {
// use the labels as names
return strtolower($key);
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => Status::getInstance(Status::YES),
'No' => Status::getInstance(Status::NO),
'Maybe' => Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'choice_name' => 'value',
));
```
**choice_value**
Returns the string value for each choice. This value is displayed in the "value" attributes and submitted in the POST/PUT requests. Can be a callable (like for "choice_label") or a property path.
If `null`, an incrementing integer is used as value.
```php
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'choice_value' => function ($choice, $key) {
if (null === $choice) {
return 'null';
}
if (true === $choice) {
return 'true';
}
return 'false';
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => Status::getInstance(Status::YES),
'No' => Status::getInstance(Status::NO),
'Maybe' => Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'choice_value' => 'value',
));
```
**choice_attr**
Returns the additional HTML attributes for choices. Can be an array, a callable (like for "choice_label") or a property path.
If an array, the key of the "choices" array must be used as keys.
```php
// array
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'choice_attr' => array(
'Maybe' => array('class' => 'greyed-out'),
),
));
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'choice_attr' => function ($choice, $key) {
if (null === $choice) {
return array('class' => 'greyed-out');
}
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => Status::getInstance(Status::YES),
'No' => Status::getInstance(Status::NO),
'Maybe' => Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'choice_value' => 'htmlAttributes',
));
```
**group_by**
Returns the grouping used for the choices. Can be an array/Traversable, a callable (like for "choice_label") or a property path.
The return values of the callable/property path are used as group labels. If `null` is returned, a choice is not grouped.
If `null`, the structure of the "choices" array is used to construct the groups.
```php
// default
$builder->add('attending', 'choice', array(
'choices' => array(
'Decided' => array(
'Yes' => true,
'No' => false,
),
'Undecided' => array(
'Maybe' => null,
),
),
'choices_as_values' => true,
));
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'group_by' => function ($choice, $key) {
if (null === $choice) {
return 'Undecided';
}
return 'Decided';
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => Status::getInstance(Status::YES),
'No' => Status::getInstance(Status::NO),
'Maybe' => Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'group_by' => 'type',
));
```
**preferred_choices**
Returns the preferred choices. Can be an array/Traversable, a callable (like for "choice_label") or a property path.
```php
// array
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'preferred_choices' => array(true),
));
// callable
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false,
'Maybe' => null,
),
'choices_as_values' => true,
'preferred_choices' => function ($choice, $key) {
return true === $choice;
},
));
// property path
$builder->add('attending', 'choice', array(
'choices' => array(
'Yes' => Status::getInstance(Status::YES),
'No' => Status::getInstance(Status::NO),
'Maybe' => Status::getInstance(Status::MAYBE),
),
'choices_as_values' => true,
'preferred_choices' => 'preferred',
));
```
**Technical Changes**
To properly implement all this, the old `ChoiceListInterface` class was deprecated and replaced by a new, slimmer one. The creation of choice views is now separated from choice lists. Hence a lot of logic is not executed anymore when processing (but not displaying) a form.
Internally, a `ChoiceListFactoryInterface` implementation is used to construct choice lists and choice views. Two decorators exist for this class:
* `CachingFactoryDecorator`: caches choice lists/views so that multiple fields displaying the same choices (e.g. in collection fields) use the same choice list/view
* `PropertyAccessDecorator`: adds support for property paths to a factory
**BC Breaks**
The option "choice_list" of ChoiceType now contains a `Symfony\Component\Form\ChoiceList\ChoiceListInterface` instance, which is a super-type of the deprecated `ChoiceListInterface`.
**Todos**
- [ ] Adapt CHANGELOGs
- [ ] Adapt UPGRADE files
- [ ] symfony/symfony-docs issue/PR
Commits
-------
94d18e9 [Form] Fixed CS
7e0960d [Form] Fixed failing layout tests
1d89922 [Form] Fixed tests using legacy functionality
d6179c8 [Form] Fixed PR comments
26eba76 [Form] Fixed regression: Choices are compared by their values if a value callback is given
a289deb [Form] Fixed new ArrayChoiceList to compare choices by their values, if enabled
e6739bf [DoctrineBridge] DoctrineType now respects the "query_builder" option when caching the choice loader
3846b37 [DoctrineBridge] Fixed: don't cache choice lists if query builders are constructed dynamically
03efce1 [Form] Refactored choice lists to support dynamic label, value, index and attribute generation
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Add and use Caster::PREFIX_* consts
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Will need a rebase on top of #14058 once it is merged
Commits
-------
86cf8de [VarDumper] Make use of Caster::PREFIX_* consts
This PR was merged into the 3.0-dev branch.
Discussion
----------
[TwigBridge] Remove legacy test
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
4af7c89 [TwigBridge] Remove legacy test
This PR was merged into the 3.0-dev branch.
Discussion
----------
Removed deprecation in translation component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
2220b90 Removed deprecation in translation component
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Fix tests typo
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ✘
| License | MIT
| Doc PR | ✘
I guess there is a typo here, Travis reported (php >=5.6, see https://travis-ci.org/symfony/symfony/jobs/56527757 for instance):
> 1) Symfony\Component\VarDumper\Tests\CliDumperTest::testSpecialVars56
Undefined variable: out
/home/travis/build/symfony/symfony/vendor/symfony/phpunit-bridge/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php:38
/home/travis/build/symfony/symfony/src/Symfony/Component/VarDumper/Tests/CliDumperTest.php:218
Commits
-------
c5f39aa [VarDumper] CliDumper: fix test typo
This PR was merged into the 2.6 branch.
Discussion
----------
[VarDumper] Fix toggle action to see source excerpt
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
A pure JavaScript fix
Commits
-------
10f7133 [VarDumper] Fix toggle action to see source excerpt
This PR was merged into the 2.6 branch.
Discussion
----------
[VarDumper] Fix dumping references as properties
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Just discovered this while reviewing an other PR.
Using `array_combine()` preserves references now.
Commits
-------
6c6560e [VarDumper] Fix dumping references as properties
This PR was merged into the 3.0-dev branch.
Discussion
----------
Removed deprecations in Console component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | no
| License | MIT
| Doc PR | ~
Commits
-------
1a8f87d Removed deprecations in Console component
* 2.7:
[RFC][Console] Added console style guide helpers (v2)
[Validator] Add missing pt_BR translations
[Translation][Profiler] Added a Translation profiler.
Add parsing of hexadecimal strings for PHP 7
[VarDumper] Add filters to casters
Trim final stop from deprecation message
[Configuration] improve description for ignoreExtraKeys on ArrayNodeDefinition
[Validator] Added missing Hungarian translation
[Validator] Fixed grammar in Hungarian translation
CS: Unary operators should be placed adjacent to their operands
CS: Binary operators should be arounded by at least one space
remove useless tests that fail in php 7
[Translator] fix test for php 7 compatibility
[VarDumper] Add VarDumperTestCase and related trait
Update phpdoc of ProcessBuilder#setPrefix()
Conflicts:
src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Fixtures/php/lazy_service.php
src/Symfony/Component/Routing/Matcher/ApacheUrlMatcher.php
src/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php
* 2.6:
[Validator] Add missing pt_BR translations
Add parsing of hexadecimal strings for PHP 7
[Configuration] improve description for ignoreExtraKeys on ArrayNodeDefinition
[Validator] Added missing Hungarian translation
[Validator] Fixed grammar in Hungarian translation
CS: Unary operators should be placed adjacent to their operands
CS: Binary operators should be arounded by at least one space
remove useless tests that fail in php 7
[Translator] fix test for php 7 compatibility
Update phpdoc of ProcessBuilder#setPrefix()
Conflicts:
src/Symfony/Bridge/Propel1/Logger/PropelLogger.php
src/Symfony/Component/Validator/Resources/translations/validators.hu.xlf
* 2.3:
[Validator] Add missing pt_BR translations
Add parsing of hexadecimal strings for PHP 7
[Configuration] improve description for ignoreExtraKeys on ArrayNodeDefinition
[Validator] Added missing Hungarian translation
[Validator] Fixed grammar in Hungarian translation
CS: Unary operators should be placed adjacent to their operands
CS: Binary operators should be arounded by at least one space
remove useless tests that fail in php 7
[Translator] fix test for php 7 compatibility
Update phpdoc of ProcessBuilder#setPrefix()
Conflicts:
src/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
src/Symfony/Component/PropertyAccess/PropertyAccessor.php
src/Symfony/Component/Validator/Resources/translations/validators.pt_BR.xlf
src/Symfony/Component/Yaml/Parser.php
This PR was squashed before being merged into the 2.7 branch (closes#14057).
Discussion
----------
[RFC][Console] Added console style guide helpers (v2)
*(Rebased to 2.7)*
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12014, #12035, symfony/symfony-docs#4265
| License | MIT
| Doc PR | todo
## Proposed API
### Code
```php
// Symfony command
protected function execute(InputInterface $input, OutputInterface $output)
{
$output = new SymfonyStyle($output);
$output->title('Lorem Ipsum Dolor Sit Amet');
$output->text(array(
'Duis aute irure dolor in reprehenderit in voluptate velit esse',
'cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat'
));
$output->ln();
$output->table(array('Name', 'Method', 'Scheme', 'Host', 'Path'), array(
array('admin_post_new', 'ANY', 'ANY', 'ANY', '/admin/post/new'),
array('admin_post_show', 'GET', 'ANY', 'ANY', '/admin/post/{id}'),
array('admin_post_edit', 'ANY', 'ANY', 'ANY', '/admin/post/{id}/edit'),
array('admin_post_delete', 'DELETE', 'ANY', 'ANY', '/admin/post/{id}'),
));
$output->caution(array(
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.',
'foo'
));
$output->section('Consectetur Adipisicing Elit Sed Do Eiusmod');
$output->listing(array(
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod, tempor incididunt ut labore et dolore magna aliqua.',
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.',
'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
));
$customValidator = function ($value) {
if ($value == 'foo') {
throw new \Exception('cannot be foo');
}
return $value;
};
// hidden question
$output->note($output->askHidden('Hidden question'));
// choice questions
$output->note($output->choice('Choice question no default', array('choice1', 'choice2')));
$output->note($output->choice('Choice question with default', array('choice1', 'choice2'), 'choice1'));
// confirmation questions
$output->note($output->confirm('Confirmation with yes default', true) ? 'yes' : 'no');
$output->note($output->confirm('Confirmation with no default', false) ? 'yes' : 'no');
// standard questions
$output->note($output->ask('Question no default'));
$output->note($output->ask('Question no default and custom validator', null, $customValidator));
$output->note($output->ask('Question with default', 'default'));
$output->note($output->ask('Question with default and custom validator', 'default', $customValidator));
$output->note('Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat.');
$output->success('Lorem ipsum dolor sit amet, consectetur adipisicing elit');
$output->error('Duis aute irure dolor in reprehenderit in voluptate velit esse.');
$output->warning('Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.');
$output->progressStart(100);
for ($i = 0; $i < 100; $i++) {
usleep(10000);
$output->progressAdvance();
}
$output->progressFinish();
}
```
### Output
```
$ php app/console command
Lorem Ipsum Dolor Sit Amet
==========================
// Duis aute irure dolor in reprehenderit in voluptate velit esse
// cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
------------------- -------- -------- ------ -----------------------
Name Method Scheme Host Path
------------------- -------- -------- ------ -----------------------
admin_post_new ANY ANY ANY /admin/post/new
admin_post_show GET ANY ANY /admin/post/{id}
admin_post_edit ANY ANY ANY /admin/post/{id}/edit
admin_post_delete DELETE ANY ANY /admin/post/{id}
------------------- -------- -------- ------ -----------------------
! [CAUTION] Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
! dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Lorem ipsum dolor sit amet,
! consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
! veniam, quis nostrud exercitation ullamco laboris.
!
! foo
Consectetur Adipisicing Elit Sed Do Eiusmod
-------------------------------------------
* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod, tempor incididunt ut labore et dolore magna aliqua.
* Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.
* Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Hidden question:
> <f><o><o><enter>
! [NOTE] foo
Choice question no default:
[0] choice1
[1] choice2
> <enter>
[ERROR] Value "" is invalid
Choice question no default:
[0] choice1
[1] choice2
> 0<enter>
! [NOTE] choice1
Choice question with default [choice1]:
[0] choice1
[1] choice2
> 1<enter>
! [NOTE] choice2
Confirmation with yes default (yes/no) [yes]:
> <enter>
! [NOTE] yes
Confirmation with no default (yes/no) [no]:
> <enter>
! [NOTE] no
Question no default:
> <enter>
[ERROR] A value is required.
Question no default:
> foo<enter>
! [NOTE] foo
Question no default and custom validator:
> foo<enter>
[ERROR] cannot be foo
Question no default and custom validator:
> <enter>
[ERROR] A value is required.
Question no default and custom validator:
> foo<enter>
[ERROR] cannot be foo
Question no default and custom validator:
> bar<enter>
! [NOTE] bar
Question with default [default]:
> <enter>
! [NOTE] default
Question with default and custom validator [default]:
> <enter>
! [NOTE] default
! [NOTE] Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
! Excepteur sint occaecat cupidatat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
! fugiat nulla pariatur. Excepteur sint occaecat cupidatat. Duis aute irure dolor in reprehenderit in voluptate velit
! esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat.
[OK] Lorem ipsum dolor sit amet, consectetur adipisicing elit
[ERROR] Duis aute irure dolor in reprehenderit in voluptate velit esse.
[WARNING] Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi.
100/100 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
```
### Screenshots
![screen1](https://cloud.githubusercontent.com/assets/127811/4507077/53bc009c-4b09-11e4-937c-44fe7fe30dc0.png)
![screen2](https://cloud.githubusercontent.com/assets/127811/4507078/53bf982e-4b09-11e4-8b5a-8c44c20ae4d9.png)
![screen](https://cloud.githubusercontent.com/assets/127811/6848451/b2e64848-d3a3-11e4-9916-43bd377684ca.png)
Commits
-------
96b4210 [RFC][Console] Added console style guide helpers (v2)
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Add VarDumperTestCase and related trait
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This allows writing assertions that use the dump of a variable for comparison.
Commits
-------
57da9ae [VarDumper] Add VarDumperTestCase and related trait
This PR was merged into the 2.3 branch.
Discussion
----------
CS: Unary operators should be placed adjacent to their operands
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Update before upcoming changes on PHP CS Fixer 1.7
To keep fabbot.io happy ;)
Commits
-------
2367f4a CS: Unary operators should be placed adjacent to their operands
This PR was merged into the 2.3 branch.
Discussion
----------
CS: Binary operators should be arounded by at least one space
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Update before upcoming changes on PHP CS Fixer 1.7
To keep fabbot.io happy ;)
Commits
-------
ec2cec6 CS: Binary operators should be arounded by at least one space
This PR was merged into the 3.0-dev branch.
Discussion
----------
[3.0] [FrameworkBundle] Drop backward compatibility for debug commands
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | yes
| Deprecations? | no
| Tests pass? | yes
| License | MIT
Remove the aliases set for backward compatibility. Currently theses commands are displayed twice in the bin/console list output (command:debug and debug:command)
Commits
-------
14bbd28 Drop backward compatibility for debug commands
This PR was merged into the 2.7 branch.
Discussion
----------
[PhpunitBridge] Trim final stop from deprecation message
**Before**
```
The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the
setMethods() method instead or the "methods" option in the route definition.: 18x
```
**After**
```
The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the
setMethods() method instead or the "methods" option in the route definition: 18x
```
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
98f3ba9 Trim final stop from deprecation message
* 2.7: (29 commits)
[Validator] Added missing Hungarian translation
remove usage of deprecated class
Fix merge
Fix merge
CS: fixes
[Translation][Extractor] Allow extracting an array of files besides extracting a directory
[VarDumper] Fix dumping ThrowingCasterException
[Console][Table] Add support for colspan/rowspan + multiple header lines
Translator component has default domain for null implemented no need to have default translation domain logic in 3 different places
Displays friendly message if the event does not have any registered listeners
[VarDumper] Ctrl+click toggles-all and fix IE8 support
Implemented check on interface implementation
[Form] [TwigBridge] Bootstrap layout whitespace control
|Validator] Add PHPUnit hint in AbstractConstraintValidatorTest
[VarDumper] implement expand all on ALT+click
[WebProfilerBundle] Fixed collapsed profiler menu icons
[travis] Kill tests when a new commit has been pushed
fixed CS
Change behavior to mirror hash_equals() returning early if there is a length mismatch
CS fixing
...
Conflicts:
src/Symfony/Bridge/Twig/composer.json
src/Symfony/Bundle/FrameworkBundle/composer.json
src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml
src/Symfony/Bundle/SecurityBundle/Resources/config/security_acl.xml
src/Symfony/Bundle/SecurityBundle/Resources/config/security_acl_dbal.xml
src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml
src/Symfony/Bundle/SecurityBundle/Resources/config/security_rememberme.xml
src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php
This PR was merged into the 2.3 branch.
Discussion
----------
[Translator] fix test for php 7 compatibility
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14086 for Translation component
| License | MIT
| Doc PR | -
Commits
-------
02b829f [Translator] fix test for php 7 compatibility
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] prefix should not be escaped
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12826
| License | MIT
| Doc PR | -
The phpdoc of `ProcessBuilder#setPrefix` says:
```
Adds an unescaped prefix to the command string.
```
But in the current implementation, the prefix is merged with arguments array and then is escaped which seems wrong.
Commits
-------
67f65c9 Update phpdoc of ProcessBuilder#setPrefix()
This PR was merged into the 2.6 branch.
Discussion
----------
[VarDumper] Fix dumping ThrowingCasterException
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This cleans up dumping ThrowingCasterException to what I really intended to dump since the beginning.
Commits
-------
9944589 [VarDumper] Fix dumping ThrowingCasterException
* 2.6:
CS: fixes
Translator component has default domain for null implemented no need to have default translation domain logic in 3 different places
[Form] [TwigBridge] Bootstrap layout whitespace control
[travis] Kill tests when a new commit has been pushed
fixed CS
Change behavior to mirror hash_equals() returning early if there is a length mismatch
CS fixing
Prevent modifying secrets as much as possible
Update StringUtils.php
Whitespace
Update StringUtils.php
StringUtils::equals() arguments in RememberMe Cookie based implementation are confused
CS: general fixes
[SecurityBundle] removed a duplicated service definition and simplified others.
Conflicts:
src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml
* 2.3:
CS: fixes
Translator component has default domain for null implemented no need to have default translation domain logic in 3 different places
[travis] Kill tests when a new commit has been pushed
fixed CS
Change behavior to mirror hash_equals() returning early if there is a length mismatch
CS fixing
Prevent modifying secrets as much as possible
Update StringUtils.php
Whitespace
Update StringUtils.php
CS: general fixes
[SecurityBundle] removed a duplicated service definition and simplified others.
Conflicts:
src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/choice_widget_collapsed.html.php
src/Symfony/Bundle/SecurityBundle/Resources/config/security_rememberme.xml
src/Symfony/Component/Console/Tests/Helper/LegacyTableHelperTest.php
src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php
This PR was squashed before being merged into the 2.7 branch (closes#14002).
Discussion
----------
[Translation][Extractor] Allow extracting an array of files besides extracting a directory
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Give ability to extractors to extract from an array of files a file, or a Traversable besides a directory.
The following commit adds the new feature to the following extractors:
PhpExtractor and TwigExtractor.
It also corrects the interface documentation to show the new options allowed as a parameter.
I found this change useful as I've got a custom translation:update command that instead of extracting from $rootPath. '/Resources/views/' it extracts from the files that git is showing as modified. The command usually runs much faster than the default as it only parses the needed files.
Commits
-------
9d6596c [Translation][Extractor] Allow extracting an array of files besides extracting a directory
This PR was squashed before being merged into the 2.7 branch (closes#13438).
Discussion
----------
[Console][Table] Add support for colspan/rowspan + multiple header lines
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | #13368, #13369
| Tests pass? | yes
| License | MIT
This PR introduce a new feature described in #13368 and #13369,
I created a new class ```TableCell``` which can allow us to specify colspan/rowspan for each cell.
```php
$table->addRow([new TableCell("data", array('rowspan' => 1, 'colspan' => 2)), 'data']);
```
- [x] #13368 Add support for colspan/rowspan
- [x] #13369 Add support for multiple header lines
- [ ] add doc
Commits
-------
ed18767 [Console][Table] Add support for colspan/rowspan + multiple header lines
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Ctrl+click toggles-all and fix IE8 support
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12757, #12612
| License | MIT
| Doc PR | -
I choose Ctrl+click instead of the initial Alt+click because after testing both on Windows and Ubuntu, Alt+click is bound by the Browser/OS for other things. Ctrl+click is OK.
Commits
-------
70f1f24 [VarDumper] Ctrl+click toggles-all and fix IE8 support
12c1feb [VarDumper] implement expand all on ALT+click
This PR was squashed before being merged into the 2.7 branch (closes#13482).
Discussion
----------
Implemented check on interface implementation
| Q | A
| ------------- | ---
| Bug fix? | Yes
| New feature? | No
| BC breaks? | No
| Deprecations? | No
| Tests pass? | Yes
| Fixed tickets | #13480
| License | MIT
| Doc PR |
Commits
-------
2a79ace Implemented check on interface implementation
This PR was squashed before being merged into the 2.6 branch (closes#12948).
Discussion
----------
[Form] [TwigBridge] Bootstrap layout whitespace control
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
While working with Symfony's Bootstrap layout I have found few minor issues:
- [x] Choice labels are rendered with extra spaces
- [x] Whitespace control for all form widgets (like in default layout)
What was done:
- All failing tests from `AbstractLayoutTest` were copied to `AbstractBootstrap3LayoutTest` and adapted for Bootstrap layout. One of the main fixes was to change class checking for input (e.g., Bootstrap requires "form-control").
- Removed ` ` and hardcoded space before error message. Spacing here should be handled with CSS.
- Trimmed all unnecessary spaces from widget blocks (whitespace control)
Commits
-------
e8b0678 [Form] [TwigBridge] Bootstrap layout whitespace control
When one extends AbstractConstraintValidatorTest, If test fails
the output is not very easy to understand because all "magic"
is done in the parent class. So we have to read the code of the
parent class to understand what happened.
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3] [SecurityBundle] removed a duplicated service definition and simplified others.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
f24c8ab [SecurityBundle] removed a duplicated service definition and simplified others.
This PR was merged into the 2.7 branch.
Discussion
----------
[Translation] merge all fallback catalogues messages into current catalo...
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | ~
| Tests pass? | yes
| License | MIT
The amount of reduced memory depend on number of defined fallbacks and the size of messages.
For example if we defined 2 fallbacks and we have a large file like ~20 mb we save (~40 mb)
![selection_004](https://cloud.githubusercontent.com/assets/1753742/6737082/3af85be2-ce61-11e4-8104-4330944070cc.png)
Commits
-------
6eb5e73 [Translation] merge all fallback catalogues messages into current catalogue.
This PR was merged into the 2.3 branch.
Discussion
----------
CS: general fixes
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
After this PR the whole 2.3 version will be valid when running PHP CS Fixer.
It is also first step to apply PHP CS Fixer on next version.
To keep fabbot.io happy ;)
Commits
-------
063ae13 CS: general fixes
* 2.7: (55 commits)
CS: fix some license headers
CS: Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline
Improve triggering of the deprecation error
[SecurityBundle] Fix typos in LogoutUrlHelper
[VarDumper] add caster for MongoCursor objects
make it possible to dump inlined services to XML
[VarDumper] Fixed notice when Exchange is mocked
[Translation] keep old array structure of resourcesFiles to avoid BC.
removed deprecated notices that make the tests fail
use visited lookup with reference to gain performance
[VarDumper] with-er interface for Cloner\Data
Replace GET parameters when changed
tweaked phpdocs
[Process] Fix outdated Process->start() docblock
prevent inlining service configurators
Improve entropy of generated salt
Complete the removal of API versions in the validator component
[Validator] deprecated API version
Removed 2.5 bc layer
[SecurityBundle] UserPasswordEncoderCommand: fix help arguments order.
...
Conflicts:
CHANGELOG-2.3.md
CHANGELOG-2.6.md
src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/FormHelperDivLayoutTest.php
src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/FormHelperTableLayoutTest.php
src/Symfony/Bundle/FrameworkBundle/composer.json
src/Symfony/Bundle/SecurityBundle/composer.json
src/Symfony/Component/Console/Helper/DialogHelper.php
src/Symfony/Component/Console/Tests/Helper/LegacyTableHelperTest.php
src/Symfony/Component/Form/ResolvedFormType.php
src/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
* 2.6:
CS: fix some license headers
CS: Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline
use visited lookup with reference to gain performance
Replace GET parameters when changed
[FrameworkBundle][debug:config] added support for dynamic configurations.
[WebProfiler] Fix partial search on url in list
Conflicts:
src/Symfony/Bridge/Propel1/Form/EventListener/TranslationCollectionFormListener.php
src/Symfony/Bridge/Propel1/Form/EventListener/TranslationFormListener.php
* 2.3:
CS: fix some license headers
CS: Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline
use visited lookup with reference to gain performance
Replace GET parameters when changed
Conflicts:
src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
This PR was merged into the 2.3 branch.
Discussion
----------
CS: fix some license headers
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Commits
-------
2b74841 CS: fix some license headers
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] with-er interface for Cloner\Data
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | symfony/symfony-docs#5106
I should have this idea earlier... :)
Commits
-------
2462c5b [VarDumper] with-er interface for Cloner\Data
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] add caster for MongoCursor objects
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This one is inspired from [PsySH's equivalent](https://github.com/bobthecow/psysh/blob/master/src/Psy/Presenter/MongoCursorPresenter.php).
Looking at the interface of the Mongo extension, the other classes may need a caster too.
So if a real Mongo user can write casters for them, that'd be great! (in an other PR, on top of this one)
Commits
-------
1008e6c [VarDumper] add caster for MongoCursor objects
This PR was merged into the 2.7 branch.
Discussion
----------
[Form] Improve triggering of the setDefaultOptions deprecation error
Bundles wanting to support both Sf 2.3 and Sf 2.7 (which is a common requirement as both have at least 2 more years of maintaince) would have custom form types with both option methods defined (`setDefaultOptions` for <2.7 support and `configureOptions` for >2.7,>3.0 support). In such case, I don't think there is anything wrong with the code and a deprecation error shouldn't be triggered.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
811b711 Improve triggering of the deprecation error
This PR was merged into the 2.7 branch.
Discussion
----------
[DependencyInjection] make it possible to dump inlined services to XML
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13557
| License | MIT
| Doc PR |
Commits
-------
504e338 make it possible to dump inlined services to XML
This PR was merged into the 2.7 branch.
Discussion
----------
[Translation] keep old array structure of resourcesFiles to avoid BC.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | #13897
| Tests pass? | yes
| License | MIT
Commits
-------
aa70a94 [Translation] keep old array structure of resourcesFiles to avoid BC.
This PR was merged into the 2.3 branch.
Discussion
----------
Replace GET parameters when changed in form
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13962
| License | MIT
| Doc PR | -
Commits
-------
fa9fb5c Replace GET parameters when changed
This PR was merged into the 2.7 branch.
Discussion
----------
Remove the API version in the validator component
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13458
| License | MIT
| Doc PR | n/a
This completes the work of #13517
Commits
-------
9438206 Complete the removal of API versions in the validator component
75088c0 [Validator] deprecated API version
0c69f69 Removed 2.5 bc layer
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] collapse/inline cut structures
Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This tweaks the dump output to make it a bit prettier (best viewed with `?w=1`)
Commits
-------
8443268 [VarDumper] collapse/inline cut structures
This PR was merged into the 2.6 branch.
Discussion
----------
[FrameworkBundle][debug:config] added support for dynamic configurations...
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | #12438
| Tests pass? | yes
| License | MIT
Commits
-------
0f9eb7a [FrameworkBundle][debug:config] added support for dynamic configurations.
This PR was merged into the 2.6 branch.
Discussion
----------
[WebProfiler] Fix partial search on url in list
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Removed the url type from the url form field as browser validation makes it impossible to do partial text search on the url as the browser will not submit the form because it does not validate as a url.
Commits
-------
c5f1f60 [WebProfiler] Fix partial search on url in list
This PR was merged into the 2.7 branch.
Discussion
----------
[Translation][debug mode] refresh cache when resources is changed.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | #13897
| Tests pass? | yes
| License | MIT
Commits
-------
e36f1a7 [FrameworkBundle][Translation][debug mode] refresh cache when resources is changed.
This PR was merged into the 2.7 branch.
Discussion
----------
[FrameworkBundle] Allow to disable Kernel reboot
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
This PR introduce a `disableReboot` method on `Client` class.
A use case of this method is to prevent rebooting kernel if we manually rebooted it before the request to manipulate registered services.
Commits
-------
648aacb [FrameworkBundle] Allow to disable Kernel reboot
This PR was merged into the 2.7 branch.
Discussion
----------
[DependencyInjection] Improved yaml syntax
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
This PR adds support for this:
```yaml
services:
manager:
class: UserManager
arguments:
- true
calls:
- method: setLogger
arguments:
- @logger
- method: setClass
arguments:
- User
tags:
- name: manager
alias: user
```
Commits
-------
0eb34f3 [DependencyInjection] Added support for keys "method" and "arguments" in "calls" statement for yaml format
This PR was merged into the 2.6 branch.
Discussion
----------
[DependencyInjection] prevent inlining service configurators
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Currently, only the `PhpDumper` is able to dump inlined service
configurators. Since Symfony applications dump the compiled container
in XML, inlined configurators will break this process.
We did something similar before with service factories in #13914.
Commits
-------
34619fe prevent inlining service configurators
This PR was merged into the 2.6 branch.
Discussion
----------
[DomCrawler] Improve namespace discovery performance
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12298
| License | MIT
| Doc PR | -
Before this quick-fix, xpath axes like `child::*` or `descendant-or-self::*` were considered namespaces. As a result, far too many xpath queries were being executed during namespace discovery.
Here's a full blackfire before/after comparision of @salaman's script: https://blackfire.io/profiles/compare/a80b9e77-8e55-45d3-a348-7d34a51053b6/graph
![domcrawler-xpath-query](https://cloud.githubusercontent.com/assets/190447/6767384/ba93c57a-d024-11e4-84e1-e58dd7527f03.png)
Commits
-------
b6af002 [DomCrawler] Improve namespace discovery performance
Currently, only the `PhpDumper` is able to dump inlined service
configurators. Since Symfony applications dump the compiled container
in XML, inlined configurators will break this process.
Using a hash as a salt provides unnecessarily low entropy, especially when using Symfony's recommended password encoder (bcrypt) which truncates salt at 22 chars, giving only 16^22 bits entropy. Using base64 instead provides _up to_ 256^30 bits (256^16 to bcrypt).
This change doesn't break compatibility with the built-in PasswordEncoderInterface implementations (message-digest, pbkdf2, bcrypt, plaintext), but it _might_ not work with some custom encoders if they've been assuming hexit salts. On balance I think it's fine since the commit this patches was only merged a few hours ago :D
* 2.6:
Fix small coding style
[2.3] Static Code Analysis for Components
[Form] fixed phpdoc
CS: Convert double quotes to single quotes
Fixed MongoODM entity loader. Improved loading behavior of entities and documents by reusing entity loader.
[Validator] added Japanese translation for unmatched charset (id: 80)
[WebProfilerBundle] fixed undefined buttons.
[WebProfilerBundle] Fix javascript toolbar on IE8
[DependencyInjection] Highest precedence for user parameters
bumped Symfony version to 2.6.6
[Translation][MoFileLoader] fixed load empty translation.
updated VERSION for 2.6.5
updated CHANGELOG for 2.6.5
bumped Symfony version to 2.3.27
updated VERSION for 2.3.26
update CONTRIBUTORS for 2.3.26
updated CHANGELOG for 2.3.26
[HttpKernel] UriSigner::buildUrl - default params for http_build_query
Conflicts:
src/Symfony/Bridge/Propel1/Tests/DataCollector/PropelDataCollectorTest.php
src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
src/Symfony/Component/HttpKernel/Kernel.php
src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php
src/Symfony/Component/Validator/Resources/translations/validators.ja.xlf
This PR was merged into the 2.3 branch.
Discussion
----------
CS: Convert double quotes to single quotes
| 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
Changes generated automatically by upcoming PHP CS Fixer.
To keep fabbot.io happy ;)
Commits
-------
f99c22c CS: Convert double quotes to single quotes
This PR was merged into the 2.7 branch.
Discussion
----------
[SecurityBundle] UserPasswordEncoderCommand: fix help arguments order.
| Q | A
| ------------- | ---
| Fixed tickets | ✘
| License | MIT
A very small fix about the newly introduced command to encode a user password (#12818).
The help message states the command looks like:
```
security:encode-password [password] [salt] [user-class]
```
but is the following instead:
```
security:encode-password [password] [user-class] [salt]
```
Commits
-------
0a5b1b9 [SecurityBundle] UserPasswordEncoderCommand: fix help arguments order.
Up until now xpath axes (child::*, descendant-or-self::** etc) were considered namespaces.
As a result, far too many xpath queries were being executed while namespace discovery.
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3+][Form][DoctrineBridge] Improved loading of entities and documents
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13961
| License | MIT
Commits
-------
529d99c Fixed MongoODM entity loader. Improved loading behavior of entities and documents by reusing entity loader.
This PR was merged into the 2.7 branch.
Discussion
----------
[2.7] [Security] [ACL] Improved MaskBuilder and PermissionMap
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13566
| License | MIT
| Doc PR | I'll do it if needed
This PR refers to #13697 . The previous PR introduced a BC break, so i provide this one which is backward compatible.
The MaskBuilderRetrievalInterface::getMaskBuilder methods allows us to retrieve a new instance of the MaskBuilder used in our application, even if it's a custom one.
I also added a MaskBuilderInterface and an AbstractMaskBuilder which can be a great helper.
Commits
-------
3d79d8b added MaskBuilderRetrievalInterface
89a1f2a improved MaskBuilder
This PR was squashed before being merged into the 2.3 branch (closes#13995).
Discussion
----------
[2.3] Static Code Analysis for Components
| 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
Static Code Analysis with Php Inspections (EA Extended), no functional changes:
- [Filesystem] : nested ifs, not optimal ifs
- in_array() miss-uses
- class re-implements an interface of super(s)
- array_keys/array_values as foreach array - fixed cases where changes has sense
Commits
-------
4abfabf [2.3] Static Code Analysis for Components
This PR was merged into the 2.6 branch.
Discussion
----------
[WebProfilerBundle] Fix javascript toolbar on IE8
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
- `Array.prototype.slice.call(tbody.children);` called on HTMLCollection throws an error on IE8
- `XMLHttpRequest` has no event handler on IE8
- `document.getElementsByClassName` does not exist on IE8
Commits
-------
cbd89f5 [WebProfilerBundle] Fix javascript toolbar on IE8
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Add catch-all-objects hook for casters
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Allows to create generic casters for any type of objects
Commits
-------
5999964 [VarDumper] Add catch-all-objects hook for casters
This PR was merged into the 2.7 branch.
Discussion
----------
[VarDumper] Added support for amqp
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
![screenshot3](https://cloud.githubusercontent.com/assets/408368/6736802/5bcb2cfe-ce67-11e4-8bce-a5ca5f98239f.png)
Commits
-------
5fa063e [VarDumper] Added support for amqp
This PR was merged into the 2.7 branch.
Discussion
----------
[2.7][SecurityBundle] Added a command to encode a password
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11206
| License | MIT
| Doc PR | ~
- [x] Give some love to the UI (need your feedbacks)
- [x] Write tests
- [x] Write documentation
-------------------------------------------------------
The encoder got depend directly from the configuration of the user class in the security.yml.
So the user choose the user type, and, using the method `getEncoder($user)` of the `security.encoder_factory` service, I get the right encoder configured.
*Here is the output for `security:encode-password`*:
![capture d ecran 2015-01-01 a 19 48 07](https://cloud.githubusercontent.com/assets/667519/5593008/3af45686-91ef-11e4-8024-e66a2e000fbe.png)
Commits
-------
a7bd0fc Added a command to encode a password
This PR was merged into the 2.7 branch.
Discussion
----------
[FrameworkBundle] Remove asset from require-dev
| 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
Not needed because already in `require`.
Commits
-------
3a29bb6 [FrameworkBundle] Remove asset from require-dev
This PR was squashed before being merged into the 2.7 branch (closes#13107).
Discussion
----------
[FrameworkBundle] Serializer groups support
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
| Doc PR | not yet
This PR enables serializer groups in the full stack framework (including XML, YAML, annotations and caching).
Commits
-------
83b56f6 [FrameworkBundle] Serializer groups support
If `router.request_context.host` is defined in `parameters.yml` and if this
key is used in `globals` section of twig bundle then the value registered in the
DIC/parameters is the default value (`localhost`).
It occurs because generall the framework bundle is defined before the twig
bundle. So after the first loop, the (user) value registered in the
`ContainerBuilder` is overridden by the default value of the framework bundle.
And so, when it comes the time to process twig bundle, the last one gets the
default value, and not the user value.
This patch force the merge of default value, but give an highest precedence of
user parameters for each extensions.