-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[FrameworkBundle][TwigBundle] add changed debug command names to upgrade file #14706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…rait (nicolas-grekas) 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
…s (v2) (kbond) This PR was squashed before being merged into the 2.7 branch (closes symfony#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 | symfony#12014, symfony#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    Commits ------- 96b4210 [RFC][Console] Added console style guide helpers (v2)
* 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
… the base Controller class.
* 2.6: [VarDumper] Fix dumping references as properties [VarDumper] Fix toggle action to see source excerpt
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
… and attribute generation
…e constructed dynamically
… when caching the choice loader
…lue callback is given
This PR was merged into the 2.7 branch. Discussion ---------- [VarDumper] Optimized some code | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | ✘ | License | MIT | Doc PR | ✘ asked by @nicolas-grekas Commits ------- e8d2983 [VarDumper] Optimized some code
… (nicolas-grekas) 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 symfony#14058 once it is merged Commits ------- 86cf8de [VarDumper] Make use of Caster::PREFIX_* consts
* 2.6: [travis] Fix tests cancellations
…ic label, value, index and attribute generation (webmozart) 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 symfony#12148 on the 2.7 branch. | Q | A | ------------- | --- | Bug fix? | no | New feature? | yes | BC breaks? | yes | Deprecations? | yes | Tests pass? | yes | Fixed tickets | symfony#4067, symfony#5494, symfony#3836, symfony#8658, symfony#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
… (nicolas-grekas) 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 symfony#14079 and symfony#14077 to be mergeable/green. Commits ------- 64d6e76 [VarDumper] Add casters for Reflection* classes
…tests to use Psr\\Lo… (vincentaubert) This PR was merged into the 2.7 branch. Discussion ---------- [2.7][DoctrineBridge] change Logger interface in tests to use Psr\\Lo… | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | Commits ------- 5e8864d [2.7][DoctrineBridge] change Logger interface in tests to use Psr\\Log\\LoggerInterface instead of Symfony\\Component\\HttpKernel\\Log\\LoggerInterface"
* 2.6: [EventDispatcher] make listeners removable from an executed listener [HttpFoundation] Fix volatile MongoDbSessionHandlerTest::testRead() Fixed compatibility with PHP7 and up by introducing new constraints (IsNull, IsTrue, IsFalse) and related validators (IsNullValidator, IsTrueValidator, IsFalseValidator) Conflicts: src/Symfony/Component/Validator/Constraints/FalseValidator.php src/Symfony/Component/Validator/Constraints/NullValidator.php src/Symfony/Component/Validator/Constraints/TrueValidator.php src/Symfony/Component/Validator/Tests/Constraints/LegacyFalseValidator2Dot4ApiTest.php src/Symfony/Component/Validator/Tests/Constraints/LegacyFalseValidatorLegacyApiTest.php src/Symfony/Component/Validator/Tests/Constraints/LegacyNullValidator2Dot4ApiTest.php src/Symfony/Component/Validator/Tests/Constraints/LegacyNullValidatorLegacyApiTest.php src/Symfony/Component/Validator/Tests/Constraints/LegacyTrueValidator2Dot4ApiTest.php src/Symfony/Component/Validator/Tests/Constraints/LegacyTrueValidatorLegacyApiTest.php
This PR was merged into the 2.7 branch. Discussion ---------- [Console] fix code style | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | Prevent fabbot from complaining when the `SymfonyStyle` class or the `StyleInterface` are modified (like, for example, [here](http://fabbot.io/report/symfony/symfony/14600/a144667d5f3889e832f68f85dc1ad6be4505167f)). Commits ------- 314901e [Console] fix code style
…aping '<' (ogizanagi) This PR was merged into the 2.7 branch. Discussion ---------- [Console] SymfonyStyle: fix block rpadding when escaping '<' | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | -  Commits ------- 80fc341 [Console] SymfonyStyle: fix block rpadding when escaping '<'
…nts and related validators (nicolas-grekas) This PR was merged into the 2.7 branch. Discussion ---------- [Validator] Deprecated PHP7-incompatible constraints and related validators | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | yes | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Commits ------- a3fc6b9 [Validator] Deprecated PHP7-incompatible constraints and related validators
* 2.6: [DebugBundle] Allow alternative destination for dumps [DebugBundle] Use output mechanism of dumpers instead of echoing [DebugBundle] Always collect dumps Fix tests in HHVM CS: Pre incrementation/decrementation should be used if possible Conflicts: src/Symfony/Component/Finder/Expression/Glob.php
…g:debug & config:dump-reference commands (ogizanagi) This PR was merged into the 2.7 branch. Discussion ---------- [FrameworkBundle] Applied new styles to the config:debug & config:dump-reference commands | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | Partially symfony#14138 | License | MIT | Doc PR | - Min dependency on `symfony/console` is changed to `~2.7` in the FrameworkBundle, as it will be a requirement in order to update each command provided in this bundle. Commits ------- e56a619 [FrameworkBundle] Applied new styles to the config:debug & config:dump-reference commands
* 2.6: fixed CS fixed CS Conflicts: src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
…l < 2.7 (GromNaN) This PR was merged into the 2.7 branch. Discussion ---------- [WebProfilerBundle] Fix compatiblity with HttpKernel < 2.7 The WebProfilerBundle version 2.7 is supposed to be compatible with HttpKernel 2.4, but the template of the config profile uses a property `symfonyState` that has been added in Symfony 2.7 by symfony#13626. > Twig_Error_Runtime: Method "symfonyState" for object "Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector" does not exist in "@WebProfiler/Collector/config.html.twig" at line 12 This fix makes the property optional. | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | silexphp/Silex-WebProfiler#63 | License | MIT Commits ------- 700fcf1 Fix WebProfilerBundle compatiblity with HttpKernel < 2.7
This PR was merged into the 2.7 branch. Discussion ---------- [Security] Removed unnecessary statement | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | ~ | License | MIT | Doc PR | ~ Removed unnecessary statement from `PersistentTokenBasedRememberMeServices.php`. `$series` comes from `$cookieParts` and `$this->tokenProvider->loadTokenBySeries($series);` is supposed to find the token with that value. Doing `$persistentToken->getSeries();` should give us exactly the same value, so it is an unnecessary statement. Why? * We don't need it? We won't miss it when it's gone. * It confuses a code reader who starts guessing why would that be needed (at least I did and lost time because of that). Unless… It actually is needed, as we want `TokenProviderInterface` implementations to have a possibility to give a `PersistentTokenInterface` with a different series value than asked… I can make a PR to the testing class so that such requirement is checked upon. I don't believe that this is BC, as this behaviour isn't documented anywhere and no existing (known to me) implementations return different series than the asked ones (and current tests pass successfully). Commits ------- c7a91f1 Removed unnecessary statement from PersistentTokenBasedRememberMeServices.php
Using question helper and choices questions: - first choice was not selectable by value. - ChoiceList with associative choices with mixed string and int keys has same issue with first choice. Add test for all choices. - Fix inconsistency by always returning values as strings
- When using the `InputInterface` mock with interactive option, asking a ChoiceQuestion without specifying max attempts nor a default value led to an infinite loop when invalid values are submitted. In case there is something wrong in tests, it wasn't obvious to understand what's happening, as the process was constantly waiting for inputs. - `testAmbiguousChoiceFromChoicelist` test was wrong as the autocompleter filled the value and the test was never triggered (+max attempt issue).
This PR was merged into the 2.7 branch. Discussion ---------- [Console] Fix QuestionHelperTest | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - This PR fixes the following issues in `QuestionHelperTest`: - When using the `InputInterface` mock with interactive option, asking a ChoiceQuestion without specifying max attempts nor a default value led to an infinite loop when invalid values are submitted. In case there is something wrong in tests, it wasn't obvious to understand what's happening, as the process was constantly waiting for inputs. - `testAmbiguousChoiceFromChoicelist` test was wrong as the autocompleter filled the value and the test was never triggered (+max attempt issue). Commits ------- 6a0308d [Console] Fix QuestionHelperTest
This PR was merged into the 2.7 branch. Discussion ---------- [Routing] clarify deprecation message | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | as reported by @javiereguiluz in symfony@7784b29#commitcomment-11229119 Commits ------- 8a99645 [Routing] clarify deprecation message
…ts (WouterJ) This PR was squashed before being merged into the 2.7 branch (closes symfony#14666). Discussion ---------- [UPGRADE] Mention the CSS strategy and it's effects The CSS strategy, which is automatically applied to Twig CSS files as of Symfony 2.7, results in different behaviour when outputting reserved characters like `#123456`. This has to be documented in the UPGRADE file. See https://github.com/javiereguiluz/EasyAdminBundle/pull/305 for an example. | Q | A | --- | --- | Fixed tickets | - | License | MIT Commits ------- 8b891ff [UPGRADE] Mention the CSS strategy and it's effects
…sing the ContainerAwareHttpKernel (xabbuh) This PR was merged into the 2.7 branch. Discussion ---------- [HttpKernel] trigger a deprecation warning when using the ContainerAwareHttpKernel | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#13280 | License | MIT | Doc PR | I agree that we should not trigger the deprecation warning when the `ContainerAwareHttpKernel` is used in the framework code. However, developers using this class in their own code should receive a warning to be able to prepare their applications for Symfony 3.0. Commits ------- 030731a [HttpKernel] trigger a deprecation warning when using the ContainerAwareHttpKernel
…on commands (ogizanagi) This PR was merged into the 2.7 branch. Discussion ---------- [FrameworkBundle] Applied new styles to translation commands | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | Partially symfony#14138 | License | MIT | Doc PR | - ## Translation debug _Only the table layout and deprecation note is changed_   ## Translation update ### Before:  ### After:     Commits ------- 812fedc [FrameworkBundle] Applied new styles to translation commands
…alue (ogizanagi) This PR was merged into the 2.7 branch. Discussion ---------- [Console] Fix first choice was invalid when using value | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - This PR solves the following issues encountered using question helper and choices questions: - First choice was not selectable by value. - ChoiceList with associative choices with mixed string and int keys has same issue with first choice. - Fix inconsistency by always returning values as strings. First point exemple:  Last two points are mainly edge cases. Indeed, if a QuestionChoice has something like : ```php array( '0' => 'No environment', '1' => 'My environment 1', 'env_2' => 'My environment 2', 3 => 'My environment 3', ); ``` as choices, you will not be able to select the first choice and get an `InvalidArgumentException`: ``` There were 2 errors: 1) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #0 ('0', '0') InvalidArgumentException: Value "0" is invalid 2) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #1 ('No environment', '0') InvalidArgumentException: Value "No environment" is invalid ``` Moreover, even if you were able to select by value (`No environment`), you'll get an integer instead of a string: ``` Failed asserting that '0' is identical to 0. ``` For more consistency, the solution is to always return a string. The issue does not exist in 2.6, as the `QuestionChoice::getDefaultValidator` handled things differently. Commits ------- 03e4ab6 [Console] Fix first choice was invalid when using value
… (xelaris) This PR was merged into the 2.7 branch. Discussion ---------- [2.7][Form] Fixed ChoiceType with legacy ChoiceList | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#14382 | License | MIT | Doc PR | The "Backwards compatibility" condition doesn't grap (e.g. when passing a `SimpleChoiceList` as `choice_list` on `ChoiceType`), as the default value for the `ChoiceType` option `preferred_choices` is `array()` instead of `null`. So I changed the condition from `null === $preferredChoices` to `empty($preferredChoices)`. Then there was an issue with accessing `attr` in `form_div_layout.html.twig`, since the deprecated `Symfony\Component\Form\Extension\Core\View\ChoiceView` doesn't provide an `attr` attribute. Since the docblocks of `Symfony\Component\Form\ChoiceList\View\ChoiceListView` state `$choices` and `$preferredChoices` to be instances of `Symfony\Component\Form\ChoiceList\View\ChoiceView` instead of `Symfony\Component\Form\Extension\Core\View\ChoiceView` I fixed the template issue by mapping the deprecated `ChoiceView` objects to the new one with an empty `attr`. @webmozart Could you have a look at it, please? Without this PR the following example would render numeric values as labels: ```php $formBuilder->add('choices', 'choice', array( 'choice_list' => new SimpleChoiceList(array( 'creditcard' => 'Credit card payment', 'cash' => 'Cash payment' )) )); ``` Commits ------- a98e484 [Form] Fix ChoiceType with legacy ChoiceList
… (malarzm) This PR was squashed before being merged into the 2.7 branch (closes symfony#14576). Discussion ---------- [DoctrineBridge][Form] Fix BC break in DoctrineType | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#14568 | License | MIT | Doc PR | n/a Commits ------- 3172d73 [DoctrineBridge][Form] Fix BC break in DoctrineType
They actually have been deprecated in 2.7 (see #14707). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thanks to @timglabisch for noticing this in #11627 (comment).