Commit Graph

15918 Commits

Author SHA1 Message Date
Koen Kuipers
73d56f7a1a Fixed bug in ChoiceType triggering a warning when not using utf-8
This fixes issue #10409 by not using json_encode anymore, but serialize
instead.
2014-03-28 11:31:34 +01:00
Fabien Potencier
f4ffd95713 fixed CS 2014-03-27 19:14:33 +01:00
Fabien Potencier
128ca44437 bug #10536 Avoid levenshtein comparison when using ContainerBuilder. (catch56)
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes #10536).

Discussion
----------

Avoid levenshtein comparison when using ContainerBuilder.

[DependencyInjection] ContainerBuilder catches exceptions when a service isn't found by Container::get().

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

In the process of building the exception message, I saw over 13k calls to levenshtein() when profiling a Drupal request where there's no compiled container yet, this adds around 36ms+ to the request for the function calls themselves, more for the overall logic.

Made the levenshtein calls optional based on a property on the class, then ContainerBuilder can set that to false and skip the suggestions.

![lev-before](https://f.cloud.github.com/assets/116285/2525110/d6dd3a90-b4eb-11e3-934a-a3726e0f8f09.png)
![lev-after](https://f.cloud.github.com/assets/116285/2525114/dd2de0fc-b4eb-11e3-8df0-598cadf2286b.png)

Commits
-------

cc9cc37 Avoid levenshtein comparison when using ContainerBuilder.
2014-03-27 19:13:32 +01:00
catch
cc9cc37e79 Avoid levenshtein comparison when using ContainerBuilder. 2014-03-27 19:13:32 +01:00
Fabien Potencier
ea4b8bf993 minor #10558 [DependencyInjection] added missing unit test (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] added missing unit test

| 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

Added a unit test to ensure that #10536 won't break BC.

Commits
-------

47d1592 added missing unit test
2014-03-27 15:52:08 +01:00
Fabien Potencier
47d1592b56 added missing unit test 2014-03-27 15:52:07 +01:00
Fabien Potencier
0380d1456a bug #10549 Fixed server values in BrowserKit (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

Fixed server values in BrowserKit

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

Commits
-------

65b9810 fixed too greedy replacements
d9cf28d fixed protocol-relative URLs
289da16 added override power to server parameters provided on request method
2014-03-27 10:14:18 +01:00
Fabien Potencier
65b98102d1 fixed too greedy replacements 2014-03-27 10:14:18 +01:00
Fabien Potencier
d9cf28d016 fixed protocol-relative URLs 2014-03-27 10:14:18 +01:00
Luis Cordova
289da16681 added override power to server parameters provided on request method 2014-03-27 10:14:17 +01:00
Fabien Potencier
9068875a5e bug #10540 [HttpKernel] made parsing controllers more robust (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpKernel] made parsing controllers more robust

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

Under some circumstances (like passing an object without an __invoke method), the Controller resolver would lead to a PHP fatal. This PR fixes that, improved error messages, and refactored the unit tests.

Commits
-------

6dba229 made parsing controllers more robust
2014-03-27 08:52:42 +01:00
Fabien Potencier
6dba2296f1 made parsing controllers more robust 2014-03-27 08:52:42 +01:00
Fabien Potencier
e4ff8ae22f bug #10545 [DependencyInjection] Fixed YamlFileLoader imports path (jrnickell)
This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] Fixed YamlFileLoader imports path

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #10516
| License       | MIT
| Doc PR        | http://symfony.com/doc/current/book/service_container.html#importing-configuration-with-imports

YamlFileLoader used the resource name as the current directory during import, which can cause a failed import when using a relative path. Using the $path variable output from the locator is consistent with other loaders and fixes the bug.

Commits
-------

fd1d48b Fixed YamlFileLoader imports path
2014-03-27 08:28:37 +01:00
John Nickell
fd1d48b54f Fixed YamlFileLoader imports path
YamlFileLoader used the resource name as the current directory during import, which can cause a failed import when using a relative path. Using the $path variable output from the locator is consistent with other loaders and fixes the bug.
2014-03-27 08:28:37 +01:00
Fabien Potencier
58f5f4afb4 bug #10523 [Debug] Check headers sent before sending PHP response (GromNaN)
This PR was merged into the 2.3 branch.

Discussion
----------

[Debug] Check headers sent before sending PHP response

If the response contents has been sent before an error occurs, PHP triggers the warning "Cannot modify header information - headers already sent".

This change ensure that the useful error message is echoed, while it's impossible to change the HTTP status code and headers.

| 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
-------

97591c1 Check headers sent before sending PHP response
2014-03-26 19:06:50 +01:00
Jerome TAMARELLE
97591c1b30 Check headers sent before sending PHP response
If the response contents has been sent before an error occurs, PHP
triggers the warning "Cannot modify header information - headers already sent"

This change ensure that the error message is echoed, while it's impossible
to change the HTTP status code and headers.
2014-03-26 19:06:50 +01:00
Fabien Potencier
26d4db3e8b bug #10275 [Validator] Fixed ACE domain checks on UrlValidator (#10031) (aeoris)
This PR was merged into the 2.3 branch.

Discussion
----------

[Validator] Fixed ACE domain checks on UrlValidator (#10031)

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

I added some checks to allow internationalised domain names as per reported on #10031 and some extra testcases to cover ACE domain names.

Commits
-------

7a2f154 Fixed ACE domain checks on UrlValidator (#10031)
2014-03-26 18:48:23 +01:00
Diego Agulló
7a2f154533 Fixed ACE domain checks on UrlValidator (#10031) 2014-03-26 18:48:23 +01:00
Fabien Potencier
22caebcd8e bug #10123 handle array root element (greg0ire)
This PR was submitted for the 2.4 branch but it was merged into the 2.3 branch instead (closes #10123).

Discussion
----------

handle array root element

An array to string conversion notice was thrown when the root element of the thing being validated is an array.

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

Commits
-------

17ed8bf handle array root element
2014-03-26 18:31:52 +01:00
Grégoire Paris
17ed8bf563 handle array root element
An array to string conversion notice was thrown when the root element of
the thing being validated is an array.
2014-03-26 18:31:52 +01:00
Fabien Potencier
ca5eea5c19 bug #10532 Fixed regression when using Symfony on filesystems without chmod support (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

Fixed regression when using Symfony on filesystems without chmod support

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

Commits
-------

cefb67a Fix #8205 : Deprecate file mode update when calling dumpFile
2014-03-26 08:33:01 +01:00
Romain Neutron
cefb67a340 Fix #8205 : Deprecate file mode update when calling dumpFile 2014-03-26 08:33:01 +01:00
Fabien Potencier
16434b5611 bug #10502 [HttpKernel] Fix #10437: Catch exceptions when reloading a no-cache request (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpKernel] Fix #10437: Catch exceptions when reloading a no-cache request

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

Commits
-------

8e3a395 Fix #10437: Catch exceptions when reloading a no-cache request
2014-03-26 08:25:06 +01:00
Romain Neutron
8e3a3951e3 Fix #10437: Catch exceptions when reloading a no-cache request 2014-03-26 08:25:06 +01:00
Fabien Potencier
1a26d28581 bug #10493 [2.3] Fix libxml_use_internal_errors and libxml_disable_entity_loader usage (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3] Fix libxml_use_internal_errors and libxml_disable_entity_loader usage

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #9731, #9483
| License       | MIT

This should fix #9731 and #9483 that seems to be triggered when `libxml_disable_entity_loader` has been called with `true` (see https://bugs.php.net/bug.php?id=62577)
As `libxml_disable_entity_loader` is non thread safe (see https://bugs.php.net/bug.php?id=64938) and as we have some calls that might leave the setting to `true`, I think the bug should be fixed.

I've checked the use of both `libxml_use_internal_errors` and `libxml_disable_entity_loader` among symfony code.

You can see I prefered to skip DomDocument::loadXML warnings using the `@` instead of using `LIBXML_NOERROR | LIBXML_NO_WARNING` because we can log these errors whereas libxml errors would be furtives.

 - [x] Check calls to DOMDocument::load
 - [x] Check calls to DOMDocument::loadXML
 - [x] Check calls to DOMDocument::loadHTML
 - [x] Check calls to DOMDocument::loadHTMLFile
 - [x] Add more tests

Commits
-------

489b8ae Fix libxml_use_internal_errors and libxml_disable_entity_loader usage
2014-03-26 08:21:50 +01:00
Romain Neutron
489b8aea90 Fix libxml_use_internal_errors and libxml_disable_entity_loader usage 2014-03-26 08:21:50 +01:00
Fabien Potencier
88f670c4f3 bug #9784 [HttpFoundation] Removed ini check to make Uploadedfile work on Google App Engine (micheleorselli)
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes #9784).

Discussion
----------

[HttpFoundation] Removed ini check to make Uploadedfile work on Google App Engine

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes

related to #9238

Commits
-------

ecb6481 removed ini check to make uploadedfile work on gae
2014-03-25 17:54:15 +01:00
Michele Orselli
ecb6481117 removed ini check to make uploadedfile work on gae 2014-03-25 17:54:15 +01:00
Fabien Potencier
af1d21954e minor #10528 Update OptionsResolver.php (shadypierre)
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10528).

Discussion
----------

Update OptionsResolver.php

Deleting an extra space in the exception.

Commits
-------

7507fbb Update OptionsResolver.php
2014-03-25 14:10:48 +01:00
Shady
79ceb094f0 Update OptionsResolver.php
Deleting an extra space in the exception.
2014-03-25 14:10:48 +01:00
Fabien Potencier
1457ded0ac minor #10514 [FrameworkBundle] fixed comment in forms.xml file (hhamon)
This PR was merged into the 2.3 branch.

Discussion
----------

[FrameworkBundle] fixed comment in forms.xml file

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

Commits
-------

f9f7246 [FrameworkBundle] fixed comment in forms.xml file
2014-03-24 19:01:48 +01:00
Hugo Hamon
33c1ba7c79 fixed comment in forms.xml file 2014-03-24 19:01:48 +01:00
Fabien Potencier
234de53b4a minor #10525 [HttpKernel] Clean KernelInterface docblocks (sbward)
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10525).

Discussion
----------

[HttpKernel] Clean KernelInterface docblocks

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

- Fixed questionable grammar
- Added missing periods to make it consistent

Commits
-------

4b1f050 Clean KernelInterface docblocks
2014-03-24 19:00:42 +01:00
Sam Ward
e850b38464 Clean KernelInterface docblocks
- Fixed questionable grammar
- Added missing periods to make it consistent
2014-03-24 19:00:42 +01:00
Fabien Potencier
bbaa839a82 bug #10416 [Form] Allow options to be grouped by objects (felds)
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10416).

Discussion
----------

[Form] Allow options to be grouped by objects

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

Commits
-------

ae3f02f Cast the group name as a string
2014-03-21 12:48:43 +01:00
Luiz “Felds” Liscia
d685d7d08b Cast the group name as a string
This allows the options to be grouped by association fields.
2014-03-21 12:48:42 +01:00
Fabien Potencier
fb2ce7a171 minor #10497 [SecurityBundle] Fixed doc of InitAclCommand (dunglas)
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10497).

Discussion
----------

[SecurityBundle] Fixed doc of InitAclCommand

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

Use {@inheritdoc}. Consistency with https://github.com/symfony/symfony/pull/9990#discussion-diff-10219606.

Commits
-------

aa49009 [SecurityBundle] Fixed doc of InitAclCommand
2014-03-19 21:51:09 +01:00
Kévin Dunglas
c5e8a884f8 Fixed doc of InitAclCommand 2014-03-19 21:51:09 +01:00
Fabien Potencier
fc251dbcd4 bug #10410 [Form] Fix "Array was modified outside object" in ResizeFormListener. (Chekote)
This PR was squashed before being merged into the 2.3 branch (closes #10410).

Discussion
----------

[Form] Fix "Array was modified outside object" in ResizeFormListener.

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

This is the second pull request for this issue. The history of this is as follows:

Original Fix was added Feb 11th under Pull Request #10232.
Users began complaining of Doctrine ArrayCollection not being updated in forms.
Revert was added Feb 15th under Pull Request #10269.
Issue #10405 was opened on 7th Mar for the original bug.

Pull Request #10269 has a failing test that illustrates users concerns.
I have added failing tests to this pull request to illustrate the problems described in #10405.

All tests now pass, and all forms of $data are now supported, including arrays, DoctrineCollection, ArrayObject, and other IteratorAggregates.

__Details as follows:__

The onSubmit() method of the ResizeFormListener class is assuming the data is an array, and calling unset directly inside a foreach. This works fine in most scenarios, but if data is an instance of IteratorAggregate that is iterating over $data by reference, it breaks with the following error:

Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener::onSubmit(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in ./vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php line 142

This is because the foreach loop is using an Iterator in the background, but the ResizeFormListener has unset the underlying data directly, causing the value that the Iterators internal pointer is pointing to to change.

The Iterator provided by IteratorAggregate may or may not have the ability to modify it's underlying data. So it is not possible to rely on the Iterator to modify the data. Instead, it is simpler to avoid modifying $data at all while we are iterating over it. So instead, we simply iterate over $data once to determine the keys we need to delete, and store them. Then we iterate over the keys and delete them from $data.

Commits
-------

aa63fae [Form] Fix "Array was modified outside object" in ResizeFormListener.
2014-03-19 17:44:48 +01:00
Chekote
aa63faea06 [Form] Fix "Array was modified outside object" in ResizeFormListener. 2014-03-19 17:44:48 +01:00
Fabien Potencier
65f024234d bug #10494 [2.3][Validator] Minor fix in IBAN validator (sprain)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Validator] Minor fix in IBAN validator

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #10481, #10489
| License       | MIT

Added more values to unit tests of IBAN validator to make clear it doesn't accept lower case letters.

> Permitted IBAN characters are the digits 0 to 9 and the 26 upper-case Latin alphabetic characters A to Z.
http://en.wikipedia.org/wiki/International_Bank_Account_Number

Also made little adjustment to code which meant to validate lowercase letters but actually was useless.

Commits
-------

3eeb306 Fix IBAN validator
2014-03-19 17:10:10 +01:00
Manuel Reinhard
3eeb3067e3 Fix IBAN validator 2014-03-19 17:04:05 +01:00
Fabien Potencier
c29b4214b6 minor #10492 [2.3][Process] Remove unreachable code + avoid skipping tests in sigchild environment (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Process] Remove unreachable code + avoid skipping tests in sigchild environment

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

As mentioned by @Tobion in https://github.com/symfony/symfony/pull/10480#issuecomment-38002910, I removed the dead code. I also fixed/updated the test suite on PHP compiled with `--enable-sigchild`.

Commits
-------

d52dd32 [Process] Remove unreachable code + avoid skipping tests in sigchild environment
2014-03-19 16:52:49 +01:00
Romain Neutron
d52dd32bad [Process] Remove unreachable code + avoid skipping tests in sigchild environment 2014-03-19 14:56:52 +01:00
Fabien Potencier
8ab7d58138 bug #10491 Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute (fabpot)
This PR was submitted for the 2.4 branch but it was merged into the 2.3 branch instead (closes #10491).

Discussion
----------

Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute

According to the HTML5 specification the required attribute should be allowed in this case: "A select element with a required attribute and **without** a multiple attribute, and whose size is “1”, must have a child option element."

Related PR: https://github.com/symfony/symfony/pull/9030

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

Commits
-------

f9aa676 Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute
2014-03-19 14:38:32 +01:00
Nick Stemerdink
861d3075b3 Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute 2014-03-19 14:38:32 +01:00
Fabien Potencier
d4a78fec32 minor #10142 [Tests] Added travis_retry to .travis.yml (lavoiesl)
This PR was submitted for the 2.3-dev branch but it was merged into the 2.3 branch instead (closes #10142).

Discussion
----------

[Tests] Added travis_retry to .travis.yml

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

As stated on their [blog](http://blog.travis-ci.com/2013-05-20-network-timeouts-build-retries/), this is the recommended way.

Example of a failed build because of it:
https://travis-ci.org/symfony/symfony/jobs/17664775

Commits
-------

702432a Added travis_retry to .travis.yml
2014-03-19 11:54:27 +01:00
Sébastien Lavoie
6db5014f4c Added travis_retry to .travis.yml
As stated on their [blog](http://blog.travis-ci.com/2013-05-20-network-timeouts-build-retries/), this is the recommended way.

Example of a failed build because of it:
https://travis-ci.org/symfony/symfony/jobs/17664775
2014-03-19 11:54:26 +01:00
Fabien Potencier
cc5f606356 minor #10484 [Process] fix some typos and refactor some code (Tobion)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] fix some typos and refactor some code

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

Commits
-------

b422613 [Process] fix some typos and refactor some code
2014-03-19 07:27:25 +01:00
Fabien Potencier
1e9e8afa5d bug #10479 [2.3][Process] Fix escaping on Windows (romainneutron)
This PR was merged into the 2.3 branch.

Discussion
----------

[2.3][Process] Fix escaping on Windows

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

Windows escaping is broken since the last merges.

After digging more on Windows escaping, I realised some things:
 - We forbid environment variable expansion by escaping `%APPDATA%` to `^%"APPDATA"^%`
 - We explicitly ask for variable expansion at runtime (running the command line with the [`/V:ON`](https://github.com/symfony/symfony/blob/2.3/src/Symfony/Component/Process/Process.php#L235) flag). Running a command containing `!APPDATA!` will be escaped and expanded (our previous rule is easily overriden)
 - On platform that are not windows, we use strong escaping that prevents any variable expansion (`$PATH` will be escaped to `'$PATH'` that is not interpreted as the current PATH)

We have three possibilities:
 - Keep this behavior as this.
 - Prefer a consistent API and use a strong escaping strategy everywhere, but it would result in a BC break (see #8975).
 - Allow environment variable expansion and escape `%APPDATA%` to `"%APPDATA%"`

Any thoughts about this ?

Commits
-------

0f65f90 [Process] Fix escaping on Windows
2014-03-19 07:22:00 +01:00