This PR was squashed before being merged into the 3.2-dev branch (closes#19029).
Discussion
----------
[YAML] Fixed parsing problem with nested DateTime lists
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
___
Without this fix, DateTime-aware parsing of a YAML source containing nested lists of dates result in an error. Consider this:
```php
$data = ['date' => ['annivesary' => new \DateTime('now')]];
$yaml = Yaml::dump($data);
var_dump($yaml);
$parsed = Yaml::parse($yaml, Yaml::PARSE_DATETIME);
print_r($parsed);
```
Everything is fine, result is:
```
string(48) "date:
annivesary: 2016-06-11T11:26:30+02:00
"
Array
(
[date] => Array
(
[annivesary] => DateTime Object
(
[date] => 2016-06-11 11:26:30.000000
[timezone_type] => 1
[timezone] => +02:00
)
)
)
```
But making the `anniversary` a list of dates
```php
$data = ['date' => ['annivesary' => [new \DateTime('now')]]];
$yaml = Yaml::dump($data);
var_dump($yaml);
$parsed = Yaml::parse($yaml, Yaml::PARSE_DATETIME);
print_r($parsed);
```
will result in:
```
string(50) "date:
annivesary: [2016-06-11T12:00:05+02:00]
"
PHP Warning: strpos() expects parameter 1 to be string, object given in [...]\vendor\symfony\yaml\Inline.php on line 382
PHP Catchable fatal error: Object of class DateTime could not be converted to string in [...]\vendor\symfony\yaml\Inline.php on line 386
```
(I didn't capture the error messages with the most recent master branch, so line numbers differ somewhat)
Commits
-------
52384cf [YAML] Fixed parsing problem with nested DateTime lists
This PR was merged into the 2.7 branch.
Discussion
----------
Fixed typo in PHPDoc
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes/no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes/no
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License | MIT
| Doc PR | reference to the documentation PR, if any
Commits
-------
9e7b347 Fixed typo in PHPDoc
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Router] added appending of new optional document fragment
added a new optional parameter to the generate method for the document fragment. when specified this is appended to generated urls.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | none
Commits
-------
6d79a56 [Routing] adds _fragment special option to url generation for document fragment
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Console] Simplify simulation of user inputs in CommandTester
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/6623
After @javiereguiluz pointed it in #17470, I open this PR to simplify the simulation of user inputs for testing a Command.
It would be done by calling `CommandTester::setUserInputs()` with an array of inputs as argument, and so make the CommandTester creating an input stream from the inputs set by the developer, then call `QuestionHelper::setInputStream` and assign it to the helperSet of the command, sort as all is done automatically in one call.
Depends on #18999
Commits
-------
c7ba38a [Console] Set user inputs from CommandTester
This PR was merged into the 3.2-dev branch.
Discussion
----------
Fix the missing colon in get/setInputStream deprecation warning
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/19072#discussion_r67310243
| License | MIT
| Doc PR | ~
Commits
-------
0d6dc8e Fix the missing colon in get/setInputStream deprecation warning
* 3.1:
Tweak merge
update tests to use the new error assertion helper
[ci] Upgrade to symfony/phpunit-bridge >=3.2@dev
update tests to use the new error assertion helper
Conflicts:
src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
This PR was merged into the 3.1 branch.
Discussion
----------
[3.1] update tests to use the new error assertion helper
| Q | A
| ------------- | ---
| Branch? | 3.1
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
9c7512b update tests to use the new error assertion helper
* 2.8:
update tests to use the new error assertion helper
[ci] Upgrade to symfony/phpunit-bridge >=3.2@dev
Conflicts:
src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
src/Symfony/Component/Yaml/Tests/ParserTest.php
This PR was merged into the 2.8 branch.
Discussion
----------
[2.8] update tests to use the new error assertion helper
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
e5cf4d4 update tests to use the new error assertion helper
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Console] Centralize input stream in base Input class
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #10844
| License | MIT
| Doc PR | not yet
Actually we have two classes that have an `inputStream` property with its getter+setter:
the QuestionHelper ('question' helper) and the SymfonyQuestionHelper (used via SymfonyStyle, that inherits the inputStream from the QuestionHelper class).
This situation makes command testing really hard.
ATM we can't test a command that uses `SymfonyStyle::ask` without ugly hacks, and we can't find a generic way to set the inputs passed to a command from the CommandTester, as it need to be done on a specific helper that may not be the one used by the command (SymfonyStyle case).
What I propose here is to add a `stream` property (and its getter+setter) to the abstract `Symfony\Component\Console\Input\Input` class.
For now I just made the two helpers setting their `inputStream` from `Input::getStream`, as both QuestionHelper and SymfonyQuestionHelper classes have an `ask` method that takes the command Input as argument.
In a next time (4.0), we could remove the `getInputStream` and `setInputStream` methods from the QuestionHelper class (this only deprecates them in favor of Input `setStream` and `getStream`).
This would close PR #18902 (trying to make interactive command testing with SymfonyStyle easier).
This would also make PR #18710 widely better by setting the input stream in a generic way (working for both helpers without caring about if they are used and which one is used).
Please give me your opinions.
Commits
-------
54d3d63 Centralize input stream in base Input class
* 3.1:
[TwigBridge] Add missing type hint to TwigRenderer
[HttpFoundation] Fix UPSERT for PgSql >= 9.5
[Form] fixed DateTime transformers
[PropertyAccess][DX] Enhance exception that say that some methods are missing if they don't
bumped Symfony version to 3.1.2
updated VERSION for 3.1.1
updated CHANGELOG for 3.1.1
[Form] fixed EntityType test with query_builder option
Conflicts:
src/Symfony/Component/HttpKernel/Kernel.php
src/Symfony/Component/PropertyAccess/PropertyAccessor.php
* 3.0:
[TwigBridge] Add missing type hint to TwigRenderer
[HttpFoundation] Fix UPSERT for PgSql >= 9.5
[Form] fixed DateTime transformers
[PropertyAccess][DX] Enhance exception that say that some methods are missing if they don't
[Form] fixed EntityType test with query_builder option
Conflicts:
src/Symfony/Component/HttpFoundation/Cookie.php
* 2.8:
[HttpFoundation] Fix UPSERT for PgSql >= 9.5
[Form] fixed DateTime transformers
[PropertyAccess][DX] Enhance exception that say that some methods are missing if they don't
[Form] fixed EntityType test with query_builder option
Conflicts:
src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php
src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformer.php
* 2.7:
[HttpFoundation] Fix UPSERT for PgSql >= 9.5
[Form] fixed DateTime transformers
[PropertyAccess][DX] Enhance exception that say that some methods are missing if they don't
This PR was merged into the 3.0 branch.
Discussion
----------
[TwigBridge] Add missing type hint to TwigRenderer
| Q | A
| ------------- | ---
| Branch? | 3.0
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
dd481d2 [TwigBridge] Add missing type hint to TwigRenderer
This PR was merged into the 3.2-dev branch.
Discussion
----------
[ExpressionLanguage] Add a way to hook on each node when dumping the AST
| Q | A
| ------------- | ---
| Branch? | "master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #19013
| License | MIT
| Doc PR | -
This is an iteration over #19013 to allow writing dumpers that can decorate dumps (e.g. add HTML tags based on each node type to do syntax highlighting).
Commits
-------
66d23db [ExpressionLanguage] Add a way to hook on each node when dumping the AST
This PR was merged into the 3.2-dev branch.
Discussion
----------
[PhpUnitBridge] add a triggered errors assertion helper
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
In the past, we updated the test code several times that made sure that deprecation messages are triggered. I think we should move this code to a reusable class in the PhpUnitBridge to make it available everywhere and to be able to change a single method in case we need to update the logic.
Commits
-------
b5c2095 add a triggered errors assertion helper
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Console] Better support for one command app
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #9564
| License | MIT
Hello;
I write many CLI application, and "single command" in cli application is not so easy to write.
This is why I propose this patch. IMHO, this PR could replaces #9609.
See it in application:
```php
#!/usr/bin/env php
<?php
require __DIR__.'/vendor/autoload.php';
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
(new Application('echo', '1.0.0'))
->register('echo')
->addArgument('foo', InputArgument::OPTIONAL, 'The directory', 'foo')
->addOption('bar', null, InputOption::VALUE_REQUIRED, 'Foobar', 'bar')
->setCode(function(InputInterface $input, OutputInterface $output) {
$output->writeln('start');
$output->writeln($input->getArgument('foo'));
$output->writeln($input->getOption('bar'));
})
->getApplication()
->setSingleCommand('echo')
->run();
```
Some usage:
```
>(3)[{..}eg/dev/github.com/symfony/symfony](console-one-app) php test.php
start
foo
bar
```
```
>(3)[{..}eg/dev/github.com/symfony/symfony](console-one-app) php test.php "first argument"
start
first argument
bar
```
```
>(3)[{..}eg/dev/github.com/symfony/symfony](console-one-app) php test.php "first argument" --bar="first option"
start
first argument
first option
```
```
>(3)[{..}eg/dev/github.com/symfony/symfony](console-one-app) php test.php "first argument" --bar="first option" --help
Usage:
echo [options] [--] [<foo>]
Arguments:
foo The directory [default: "foo"]
Options:
--bar=BAR Foobar [default: "bar"]
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
```
Commits
-------
4a9bb1d [Console] Better support for one command app
This PR was merged into the 3.2-dev branch.
Discussion
----------
Move Constraint validator test case to Test namespace
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | kinda
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
The Validator component has a very usefull test utility to test constraint validators. It's only hidden deep in the Tests namespace. Just as was done with the TypeTestCase of the Form component some years ago, I think it's usefull to move the constraint test case to the Test namespace as well.
*Btw, my last PR of the year and the first deprecation of 3.1* 🎆
Commits
-------
e938361 Move Constraint validator test case to Test namespace
This PR was squashed before being merged into the 3.2-dev branch (closes#18502).
Discussion
----------
[FrameworkBundle] Add file helper to Controller
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/6454
I think it would be more "sexy" to serve files from controller easier (like `json()` helper does).
**This Controller helper allows user to serve files to Response in these ways:**
* pass `Symfony\Component\HttpFoundation\File` (or `Symfony\Component\HttpFoundation\UploadedFile`) instance
* [REMOVED] provide content as `string` and specify file name (mime type will be auto recognized)
* provide path to file (you are still able to specify other than original file name)
**Examples**
return $this->file($uploadedFile);
// ...or...
return $this->file('/path/to/my/picture.jpg');
Commits
-------
d9a8499 [FrameworkBundle] Add file helper to Controller
This PR was merged into the 3.2-dev branch.
Discussion
----------
[Process] Allow inheriting env vars instead of replacing them
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #18796
| License | MIT
| Doc PR | -
Commits
-------
524508c [Process] Allow merging env vars instead of replacing them
This PR was merged into the 3.2-dev branch.
Discussion
----------
[HttpKernel] Move duplicated logic from Esi/Ssi to an AbstractSurrogate
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations?| no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
c5dc50d Move duplicated logic from Esi/Ssi to an AbstractSurrogate