Commit Graph

17551 Commits

Author SHA1 Message Date
Nicolas Grekas
549f43b03a [Console] Add clock mock to fix transient test on HHVM 2015-09-20 23:33:09 +02:00
Nicolas Grekas
da29357d49 [Console] Fix whitespaces in fixture 2015-09-19 22:40:41 +02:00
Tobias Schultze
c4bb79a794 minor #15817 [Process] Stopped Autoruns when shelling on windows (rquadling)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Stopped Autoruns when shelling on windows

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

Stop autoruns when shelling on Windows.

Original PR was on https://github.com/symfony/Process/pull/9#issuecomment-140721398.

Commits
-------

bca6771 Update Process.php
2015-09-18 15:09:04 +02:00
Tobias Schultze
b783e40422 minor #15831 [travis] Remove PHP 7 from allowed failures (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[travis] Remove PHP 7 from allowed failures

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

Looking at the latests PRs, PHP 7 does not segfault anymore with our test suite.

Commits
-------

ba8366e [travis] Remove PHP 7 from allowed failures
2015-09-18 15:05:57 +02:00
Nicolas Grekas
ba8366e208 [travis] Remove PHP 7 from allowed failures 2015-09-18 14:36:19 +02:00
Fabien Potencier
4e7644c597 bug #15826 [Finder] Optimize the hot-path (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[Finder] Optimize the hot-path

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

A significant part of the perf gain in #15802 was related to filters not being applied recursively...
#15824 fixing this, performance dropped again.

This PR optimizes the hot path by replacing a regexp test by a simple `isset` when possible.
Blackfire diff after #15824 is the following:
https://blackfire.io/profiles/compare/9e489018-998d-4acb-92a0-46011828e83b/graph

`preg_match` is not called anymore, and  `Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::current()` is also cut by two.

When this `isset` optimization is disabled and replaced by a concatenation of all the regexps patterns in a single bigger one, the gain is still significant but lower:
https://blackfire.io/profiles/compare/db86b80e-b63e-4fc9-9ff3-9ed32baeb948/graph

This makes me think that an other and last round of optimization is possible by merging all regexps in one in MultiplePcreFilterIterator filters. If someone wants to work on this, please do it :)

Commits
-------

f156de6 [Finder] Optimize the hot-path
2015-09-18 12:01:26 +02:00
Nicolas Grekas
f156de6b71 [Finder] Optimize the hot-path 2015-09-18 11:35:50 +02:00
Nicolas Grekas
4a9676b5a2 minor #15824 [Finder] Fix recursive filter iterator (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[Finder] Fix recursive filter iterator

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

#15802 was broken because the filters where not propagated to children iterators. This fixes the issue and adds a test case for this situation. The RecursiveIterator implementation is moved from FilterIterator to ExcludeDirectoryFilterIterator. Doing so on other filters is possible but would be a new feature that is not required for fixing the performance issue we had previously.

Commits
-------

cf3019b [Finder] Fix recursive filter iterator
2015-09-17 14:15:24 +02:00
Nicolas Grekas
cf3019bc5a [Finder] Fix recursive filter iterator 2015-09-17 10:48:13 +02:00
Tobias Schultze
a7b7f5479e [EventDispatcher] skip one lazy loading call 2015-09-17 03:42:05 +02:00
Tobias Schultze
ec59953f4c [EventDispatcher] fix memory leak in a getListeners 2015-09-17 03:14:14 +02:00
Richard Quadling
bca67712d0 Update Process.php
Stop autoruns when shelling on Windows.

Original PR was on https://github.com/symfony/Process/pull/9#issuecomment-140721398.
2015-09-16 14:19:29 +01:00
Fabien Potencier
4f9a411389 minor #15808 Improve the structure of the Finder testsuite (stof)
This PR was merged into the 2.3 branch.

Discussion
----------

Improve the structure of the Finder testsuite

| 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

Testing against different adapters is now handled by multiple subclasses of a common test case rather than using data providers. This allows tests to be marked as skipped for unsupported adapters instead of making them disappear from the testsuite.
This will also make it much easier to mark tests for the find-based adapters as legacy ones when deprecating them.
This correspond to changes done by @nicolas-grekas in https://github.com/symfony/symfony/pull/15805, backported to 2.3 and with the data providers removed (his PR was keeping data providers for the adapter but making it return a single adapter all the time, hence the much bigger diff in my PR).
All tests in AbstractFinderTest are just moved from the FinderTest (they are all the tests running against multiple adapters). FinderTest itself runs the PhpAdapter (as this is the logic we want to keep in the finder in 3.0). I also tried to have a PhpFinderTest and keeping FinderTest only with the extra tests, but this would make things harder to merge branches between 2.8 and 3.0 in the future (once we remove other adapter tests) as we could simply keep the AbstractFinderTest in 3.0 for now to ease merging PRs adding new tests for bug fixes.

Commits
-------

20f2d03 Improve the structure of the Finder testsuite
2015-09-16 11:14:30 +02:00
Jakub Zalas
4982b02bdd [Console] Add the command name to input arguments if it's missing 2015-09-16 09:04:45 +01:00
Christophe Coevoet
20f2d03d2e Improve the structure of the Finder testsuite
Testing against different adapters is now handled by multiple subclasses
of a common test case rather than using data providers. This allows
tests to be marked as skipped for unsupported adapters instead of making
them disappear from the testsuite.
2015-09-16 09:54:32 +02:00
Fabien Potencier
150bcc9f64 bug #15802 [Finder] Handle filtering of recursive iterators and use it to skip looping over excluded directories (nicolas-grekas)
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes #15802).

Discussion
----------

[Finder] Handle filtering of recursive iterators and use it to skip looping over excluded directories

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #5951, #8685
| License       | MIT
| Doc PR        | -

By implementing RecursiveIterator in FilterIterator, we can make it able to skip children of excluded branches of recursive inner iterators.
We use it immediately for our main target: skip over children of excluded directories in the Finder.
This is a significant performance boost when iterating over big directories, thus the "bugfix" status.

Commits
-------

8c691bd [Finder] Handle filtering of recursive iterators and use it to skip looping over excluded directories
2015-09-15 13:35:07 +02:00
Nicolas Grekas
8c691bd01f [Finder] Handle filtering of recursive iterators and use it to skip looping over excluded directories 2015-09-15 13:35:06 +02:00
Fabien Potencier
306d88a1e3 bug #15803 [Finder] Exclude files based on path before applying the sorting (stof)
This PR was merged into the 2.3 branch.

Discussion
----------

[Finder] Exclude files based on path before applying the sorting

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

Sorting can be slow, so it is best to applied it after all filtering rules are applied instead of using a bigger list and filtering again after that.

This impacts only people using both the sorting and the name filtering (with ``->names()`` or ``notNames()``)

Commits
-------

e5bf0ab Exclude files based on path before applying the sorting
2015-09-15 11:46:38 +02:00
Christophe Coevoet
e5bf0ab877 Exclude files based on path before applying the sorting
Sorting can be slow, so it is best to applied it after all filtering
rules are applied instead of using a bigger list and filtering again
after that.
2015-09-15 11:15:55 +02:00
Fabien Potencier
47b17ebef4 minor #15791 [Console] fix phpdoc of DialogHelper (Tobion)
This PR was merged into the 2.3 branch.

Discussion
----------

[Console] fix phpdoc of DialogHelper

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

Commits
-------

fd22d8f [Console] fix phpdoc of DialogHelper
2015-09-15 09:14:43 +02:00
Fabien Potencier
68353a6305 fixed composer.json 2015-09-14 17:18:35 +02:00
Tobias Schultze
fd22d8fa03 [Console] fix phpdoc of DialogHelper 2015-09-14 17:16:40 +02:00
Fabien Potencier
6d3f124854 bug #13794 [DomCrawler] Invalid uri created from forms if base tag present (danez)
This PR was squashed before being merged into the 2.3 branch (closes #13794).

Discussion
----------

[DomCrawler] Invalid uri created from forms if base tag present

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

Since #13145 was merged the provided testcase does not work anymore and creates an invalid link

This affects the latest versions of 2.3, 2.5, 2.6 and 2.7

Right now this PR only includes the failing test, as I could no easy find a fix. If someone immediately knows whats the problem, give me a hint please.

Commits
-------

dc57a7a [DomCrawler] Invalid uri created from forms if base tag present
2015-09-14 16:00:14 +02:00
Daniel Tschinder
dc57a7a5a7 [DomCrawler] Invalid uri created from forms if base tag present 2015-09-14 16:00:12 +02:00
Fabien Potencier
3cf95ee08a minor #15789 [Console] update param type phpdoc for StreamOutput (Tobion)
This PR was merged into the 2.3 branch.

Discussion
----------

[Console] update param type phpdoc for StreamOutput

Makes it consistent with `getStream()`

| 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

Commits
-------

c036352 [Console] update param type phpdoc for StreamOutput
2015-09-14 15:17:39 +02:00
Fabien Potencier
d87db39aa1 bug #15637 Use ObjectManager interface instead of EntityManager (gnat42)
This PR was merged into the 2.3 branch.

Discussion
----------

Use ObjectManager interface instead of EntityManager

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

If you use the EntityManager Decorator pattern that doctrine provides
then simply specifying a query_builder closure where your decorated
em is used fails as it isn't an instance of Doctrine\ORM\EntityManager.
Testing against the ObjectManager interface fixes the issue.

Commits
-------

1f3ea0f Use ObjectManager interface instead of EntityManager
2015-09-14 15:16:06 +02:00
Tobias Schultze
c0363524a9 [Console] update param type phpdoc for StreamOutput 2015-09-14 14:22:54 +02:00
Tobias Schultze
50afff1647 [Console] fix typo in OutputInterface 2015-09-14 14:10:47 +02:00
Jakub Zalas
f12a4c1aee [Console] Fix input validation when required arguments are missing
Previous rule was only working when arguments are passed from command line, as in command line there is no way of skipping an argument. The rule does not work for arguments set on the Input after a command is run.
2015-09-14 10:33:21 +01:00
Fabien Potencier
b185056776 bug #14802 [HttpKernel] fix broken multiline <esi:remove> (sstok)
This PR was squashed before being merged into the 2.3 branch (closes #14802).

Discussion
----------

[HttpKernel] fix broken multiline <esi:remove>

|Q            |A  |
|---          |---|
|Bug Fix?     |yes|
|New Feature? |n  |
|BC Breaks?   |n  |
|Deprecations?|n  |
|Tests Pass?  |yes|
|Fixed Tickets|   |
|License      |MIT|
|Doc PR       |   |

Originally found in https://github.com/symfony/symfony/pull/14800#discussion-diff-31388942

`<esi:remove>` blocks with multiline contents were not removed.
`<esi:comment>` blocks with multiline contents were not removed.

Note. According to http://www.w3.org/TR/esi-lang
`comment is an empty element, and must not have an end tag.` so the support for multi line comments are not actually supported in the standard.

Commits
-------

06f97bf [HttpKernel] fix broken multiline <esi:remove>
2015-09-14 09:14:59 +02:00
Sebastiaan Stok
06f97bfbd1 [HttpKernel] fix broken multiline <esi:remove> 2015-09-14 09:14:56 +02:00
Fabien Potencier
dcc6581206 bug #14841 [DoctrineBridge] Fixed #14840 (saksmt)
This PR was squashed before being merged into the 2.3 branch (closes #14841).

Discussion
----------

[DoctrineBridge] Fixed #14840

[DoctrineBridge] Fixed compatibility with entities packed in Phar

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

Commits
-------

92ad5df [DoctrineBridge] Fixed #14840
2015-09-14 09:11:55 +02:00
Kirill Saksin
92ad5df567 [DoctrineBridge] Fixed #14840 2015-09-14 09:11:51 +02:00
Fabien Potencier
f6bade0303 minor #15543 [FrameworkBundle] add a suggest for the serializer component (lsmith77)
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes #15543).

Discussion
----------

[FrameworkBundle] add a suggest for the serializer component

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | -
| Fixed tickets | failing .. but due to unrelated issues in the 2.7 branch
| License       | MIT
| Doc PR        | -

Commits
-------

c7acde8 [FrameworkBundle] add a suggest for the serializer component
2015-09-14 08:48:18 +02:00
Lukas Kahwe Smith
c7acde8024 [FrameworkBundle] add a suggest for the serializer component 2015-09-14 08:48:11 +02:00
Fabien Potencier
72111334b2 minor #15673 [framework-bundle] Add Test for TranslationUpdateCommand (zerustech)
This PR was merged into the 2.3 branch.

Discussion
----------

[framework-bundle] Add Test for TranslationUpdateCommand

Added the test script as per the discussion in PR #15562

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

Commits
-------

232f6fd [framework-bundle] Add Test for TranslationUpdateCommand
2015-09-14 08:41:36 +02:00
Fabien Potencier
71ef86e2f0 bug #15770 [Yaml] Fix the parsing of float keys (jmgq)
This PR was merged into the 2.3 branch.

Discussion
----------

[Yaml] Fix the parsing of float keys

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

Before this fix, the parser was trying to set a float as an array key, and according to the [PHP documentation](http://php.net/manual/en/language.types.array.php) *"The key can either be an integer or a string"*. Therefore, PHP was internally casting the key to an integer.

My first approach was to always cast to string, by changing this line:

    $key = Inline::parseScalar($values['key']);

to

    $key = (string) Inline::parseScalar($values['key']);

But that broke some tests, for instance, the parser is expected to transform the key `false` to `0`, but casting `false` to string results in an empty string, rather than `0`.

Commits
-------

520bd26 [Yaml] Fix the parsing of float keys
2015-09-14 08:25:27 +02:00
Jose Gonzalez
520bd26642 [Yaml] Fix the parsing of float keys 2015-09-13 18:26:34 +01:00
Fabien Potencier
e2156d7c2c bug #15771 [Console] Ensure the console output is only detected as decorated when both stderr and stdout support colors (Seldaek)
This PR was merged into the 2.3 branch.

Discussion
----------

[Console] Ensure the console output is only detected as decorated when both stderr and stdout support colors

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

This is a simplified version of #13661 which does not create any issues with having two decorators but merely ensures that if either STDERR **or** STDOUT has colors disabled, then both will have decoration disabled. It's not a perfect solution but it's better than having both enabled as this breaks things. And I don't think we can come to a better solution without api changes.

Commits
-------

f3d8444 [Console] Ensure the console output is only detected as decorated when both stderr and stdout support colors
2015-09-13 13:30:23 +02:00
Jordi Boggiano
f3d844434b [Console] Ensure the console output is only detected as decorated when both stderr and stdout support colors 2015-09-12 19:38:39 +01:00
Fabien Potencier
238531fea1 bug #15750 Add tests to the recently added exceptions thrown from YamlFileLoaders (jakzal)
This PR was merged into the 2.3 branch.

Discussion
----------

Add tests to the recently added exceptions thrown from YamlFileLoaders

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

* use the `Symfony\Component\DependencyInjection\Exception\InvalidArgumentException` in the DI component
* add tests

Commits
-------

93e418f Improve exception messages.
2015-09-11 17:27:18 +02:00
Jakub Zalas
93e418f48e Improve exception messages. 2015-09-11 08:57:18 +01:00
Fabien Potencier
d8a801a70a bug #15718 Fix that two DirectoryResources with different patterns would be deduplicated (mpdude)
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes #15718).

Discussion
----------

Fix that two DirectoryResources with different patterns would be deduplicated

| 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

ResourceInterface::__toString is mainly important because in various places, array_uniqe() is called to perform a de-duplication of resources and will use the string representation for objects.

Thus, we need to take care that if DirectoryResources apply different patterns they must be kept after array_unique calls.

Commits
-------

2b36ac5 Fix that two DirectoryResources with different patterns would be deduplicated
2015-09-10 14:19:00 +02:00
Matthias Pigulla
2b36ac5a61 Fix that two DirectoryResources with different patterns would be deduplicated
ResourceInterface::__toString is mainly important because in various places, array_uniqe() is called to perform a de-duplication of resources and will use the string representation for objects.

Thus, we need to take care that if DirectoryResources apply different patterns they must be kept after array_unique calls.
2015-09-10 14:18:59 +02:00
Fabien Potencier
cfd8cc24ff minor #15746 Tests fix clockmock (ewgRa)
This PR was squashed before being merged into the 2.3 branch (closes #15746).

Discussion
----------

Tests fix clockmock

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

On my local computer tests for HttpCacheTest not passed, because ClockMock make side effects on another tests (it takes time from _SERVER['REQUEST_TIME'] and for my computer difference with real one time and this time was more than expected by HttpCacheTest, one part of code take time from mock, anothers - from native time function). This PR remove this side effects.

Commits
-------

6b21752 Tests fix clockmock
2015-09-10 13:45:38 +02:00
Evgeniy Sokolov
6b21752285 Tests fix clockmock 2015-09-10 13:45:33 +02:00
Fabien Potencier
6c9f86ba4b bug #14916 [WebProfilerBundle] Added tabindex="-1" to not interfer with normal UX (drAlberT)
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes #14916).

Discussion
----------

[WebProfilerBundle] Added tabindex="-1" to not interfer with normal UX

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

Commits
-------

53cdb1a [WebProfilerBundle] Added tabindex="-1" to not interfer with normal UX
2015-09-10 10:15:18 +02:00
AlberT
53cdb1a420 [WebProfilerBundle] Added tabindex="-1" to not interfer with normal UX 2015-09-10 10:15:17 +02:00
Fabien Potencier
1c5a213ec0 minor #15749 missing "YAML" in the exception message. (DavidBadura)
This PR was merged into the 2.3 branch.

Discussion
----------

missing "YAML" in the exception message.

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

Commits
-------

b95b5e2 missing "YAML" in the exception message.
2015-09-10 09:52:27 +02:00
David Badura
b95b5e217f missing "YAML" in the exception message. 2015-09-10 09:43:17 +02:00