Commit Graph

40533 Commits

Author SHA1 Message Date
Christian Flothmann
ef7876e517 speed up accessing object properties 2019-01-27 23:03:33 +01:00
Nicolas Grekas
98bc3e7917 minor #29724 [PHPUnitBridge] Static access in closure (greg0ire, nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[PHPUnitBridge] Static access in closure

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

#29718 bumps php to 5.5 . This is what we could simplify if it gets merged, thanks to this "new" PHP feature: https://3v4l.org/sJOWr

EDIT: it was merged, this can be reviewed.

Commits
-------

97f3023963 Use the scope of an instance
9df76ebbe5 Extract closures into static functions
2019-01-27 19:07:22 +01:00
Nicolas Grekas
97f3023963 Use the scope of an instance 2019-01-27 19:04:53 +01:00
Grégoire Paris
9df76ebbe5
Extract closures into static functions 2019-01-27 18:08:35 +01:00
Nicolas Grekas
f4682c3ab9 feature #28721 [Form] deprecate some options for single_text widgets (xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Form] deprecate some options for single_text widgets

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

Commits
-------

89ff331865 deprecate some options for single_text widgets
2019-01-27 15:37:17 +01:00
Nicolas Grekas
7db3e25efe bug #29984 [VarDumper] Fixed search bar (ro0NL)
This PR was squashed before being merged into the 4.2 branch (closes #29984).

Discussion
----------

[VarDumper] Fixed search bar

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Continuation of #28854, replaces #29176

initial:

![image](https://user-images.githubusercontent.com/1047696/51747953-3c9e1400-20ab-11e9-913d-d60bd59ee2d9.png)

ctrl f:

![image](https://user-images.githubusercontent.com/1047696/51747973-4b84c680-20ab-11e9-8d07-e6128822fbb2.png)

scroll:

![image](https://user-images.githubusercontent.com/1047696/51747984-550e2e80-20ab-11e9-8b54-b24109d2280a.png)

tested in chrome+ff

cc @ogizanagi

ref https://caniuse.com/#feat=css-sticky

Commits
-------

99d2893b78 [VarDumper] Fixed search bar
2019-01-27 14:54:50 +01:00
Roland Franssen
99d2893b78 [VarDumper] Fixed search bar 2019-01-27 14:54:44 +01:00
Christian Flothmann
ba20bb2e7e move add mime type guesser pass to the component 2019-01-27 12:43:19 +01:00
Fabien Potencier
57f3cbb87e feature #29936 [Mime] Add a set of default content-types for some extensions (fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Mime] Add a set of default content-types for some extensions

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Some extensions have many possible content-types. This PR forces the first (preferred) content type for some extensions (the preset comes from Swiftmailer).

Commits
-------

37065d45f3 [Mime] added a set of default content-types for some extensions
2019-01-27 11:47:24 +01:00
Fabien Potencier
a60a4591f7 minor #29998 remove accidentally added changelog entries (xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

remove accidentally added changelog entries

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

The `help_html` option is neither part of the Twig bridge nor of the
FrameworkBundle. It is provided by the Form component.

Commits
-------

aa354cef57 remove accidentally added changelog entries
2019-01-27 11:46:22 +01:00
Fabien Potencier
3659e32279 minor #29988 [Debug][DebugClassLoader] Match callable() type for parameters not defined in sub classes (fancyweb)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Debug][DebugClassLoader] Match callable() type for parameters not defined in sub classes

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

Added test fixture for multi param, no param type and multi spaces as well.

BTW, I didn't understand why there was a positive lookbehind on the current regex. Looks useless to me and tests passes without it.

Commits
-------

89c89c9776 [Debug][DebugClassLoader] Match callable() type for parameters not defined in sub classes
2019-01-27 11:31:13 +01:00
Fabien Potencier
37065d45f3 [Mime] added a set of default content-types for some extensions 2019-01-27 11:27:12 +01:00
Christian Flothmann
aa354cef57 remove accidentally added changelog entries
The `help_html` option is neither part of the Twig bridge nor of the
FrameworkBundle. It is provided by the Form component.
2019-01-27 10:18:12 +01:00
Fabien Potencier
f797a78295 minor #29996 Remove gendered pronouns (Raphaëll Roussel)
This PR was squashed before being merged into the 3.4 branch (closes #29996).

Discussion
----------

Remove gendered pronouns

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

Commits
-------

bc6e0f80ff Remove gendered pronouns
2019-01-27 10:04:21 +01:00
Raphaëll Roussel
bc6e0f80ff Remove gendered pronouns 2019-01-27 10:04:14 +01:00
Nicolas Grekas
1aa652e2cb bug #29992 [DependencyInjection] fix DOM element namespace URL access (xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[DependencyInjection] fix DOM element namespace URL access

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

Commits
-------

429bddf96b fix DOM element namespace URL access
2019-01-26 21:58:56 +01:00
Nicolas Grekas
dc8c506f00 minor #29994 Replace gender by eye color in tests (Raphaëll Roussel)
This PR was merged into the 3.4 branch.

Discussion
----------

Replace gender by eye color in tests

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #29737   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

I've slightly changed @derrabus proposition to use color only because of the potentially racist interpretation when used for a person, open for discussion though.

Commits
-------

72180342b7 Replace gender by eye color in tests
2019-01-26 21:56:21 +01:00
Nicolas Grekas
d0effcd35c feature #28865 [Routing] allow using compiled matchers and generators without dumping PHP code (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Routing] allow using compiled matchers and generators without dumping PHP code

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #29590
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/10790

This is a resurrection of #25909 to make matcher+generator dumpers output PHP arrays instead of PHP code.
Don't be fooled by the diff stats, it's mostly fixtures.

This PR should contribute to making the Routing component easier to use standalone.

On the way back from SFLive USA.

![image](https://user-images.githubusercontent.com/243674/46920076-784e1b80-cf9d-11e8-86e7-850fffb409de.png)

Commits
-------

f0a519ac7d [Routing] allow using compiled matchers and generators without dumping PHP code
2019-01-26 21:52:17 +01:00
Nicolas Grekas
4fbb6e5fa4 feature #29236 [Cache] deprecate all PSR-16 adapters, provide Psr16Cache instead (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Cache] deprecate all PSR-16 adapters, provide Psr16Cache instead

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

As discussed in https://github.com/symfony/symfony/issues/28918, PSR-16 implementations are now mostly useless: either PSR-6 or contracts' CacheInterface is always a better fit.

Let's deprecate them all but keep only a `Psr16Cache` to turn any PSR-6 implementation to a PSR-16 one.

From the changelog:
  * removed `psr/simple-cache` dependency, run `composer require psr/simple-cache` if you need it
  * deprecated all PSR-16 adapters, use `Psr16Cache` or `Symfony\Contracts\Cache\CacheInterface` implementations instead
 * deprecated `SimpleCacheAdapter`, use `Psr16Adapter` instead
 * deprecated the "Psr\SimpleCache\CacheInterface" / "cache.app.simple" service, use "Symfony\Contracts\Cache\CacheInterface" / "cache.app" instead

Commits
-------

5006be63c1 [Cache] deprecate all PSR-16 adapters, provide Psr16Cache instead
2019-01-26 21:51:33 +01:00
Raphaëll Roussel
72180342b7 Replace gender by eye color in tests 2019-01-26 20:55:54 +01:00
Christian Flothmann
429bddf96b fix DOM element namespace URL access 2019-01-26 14:00:18 +01:00
Thomas Calvet
89c89c9776 [Debug][DebugClassLoader] Match callable() type for parameters not defined in sub classes 2019-01-26 12:58:26 +01:00
guiguiboy
7bf83815bd Added deprecation notice when mapping keys are found in multi-line blocks 2019-01-25 21:45:15 +01:00
Nicolas Grekas
5006be63c1 [Cache] deprecate all PSR-16 adapters, provide Psr16Cache instead 2019-01-25 18:46:02 +01:00
Nicolas Grekas
41000f1de0 [Security] dont do nested calls to serialize() 2019-01-25 18:08:32 +01:00
Nicolas Grekas
cafbdb73e8 Merge branch '4.2'
* 4.2:
  fix merge
2019-01-25 16:37:33 +01:00
Nicolas Grekas
0f947130f2 Merge branch '4.1' into 4.2
* 4.1:
  fix merge
2019-01-25 16:37:00 +01:00
Nicolas Grekas
23e9985ee0 fix merge 2019-01-25 16:35:59 +01:00
Nicolas Grekas
a6d2114277 feature #29958 introducing native php serialize() support for Messenger transport (weaverryan, xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

introducing native php serialize() support for Messenger transport

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes and no
| New feature?  | yes and no
| BC breaks?    | maybe (yes if we change the default)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #29163
| License       | MIT
| Doc PR        | TODO!

Messenger currently uses the Serialize to serialize to JSON and then unserialize. This creates a lot of issues:

1) The default serializer requires you to have getter & setter method (or public properties) for them to be serialized. This makes it easy for data to disappear. I've seen several really smart people have this problem.

2) Related to the above, the forced getters/setters (and no required constructor args) force you to design your message classes around this.

It's not that the serializer is doing a bad job - it's just not the right use-case for it.

This PR proposes simply using `serialize()` and `unserialize()`. This is the behavior we want: we want to put objects to sleep and wake them back up.

I believe the original reason we did not do this was so that we could export "generic JSON", in case we wanted other workers (not our Symfony app) to consume the messages. But, that's an edge case, and could still be accomplished by creating your own serializer.

Btw, Laravel uses `serialize()` as does Enqueue for (un)serializing Event objects. We're making our life more difficult for no benefit.

Cheers!

Commits
-------

97e2e32af4 Changing default serializer in Messenger component to PhpSerializer
3111cef9a4 Update src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
4132bfebe7 updating CHANGELOGs and fixing tests
b4788e4808 introducing native php serialize() support for Messenger transport
2019-01-25 16:26:09 +01:00
Ryan Weaver
97e2e32af4 Changing default serializer in Messenger component to PhpSerializer 2019-01-25 10:10:32 -05:00
Nicolas Grekas
0b99eaf553 Merge branch '4.2'
* 4.2:
  [Cache] fix create table at prepare time
  fix merge
2019-01-25 15:56:25 +01:00
Nicolas Grekas
f419851eb1 [Cache] fix create table at prepare time 2019-01-25 15:56:12 +01:00
Nicolas Grekas
82617b90e5 Merge branch '4.1' into 4.2
* 4.1:
  fix merge
2019-01-25 15:52:33 +01:00
Nicolas Grekas
151ee3ee18 fix merge 2019-01-25 15:52:25 +01:00
Nicolas Grekas
4edfbb5975 Merge branch '4.2'
* 4.2:
  [HttpFoundation] Check file exists before unlink
  [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
  [Cache] PDO-based cache pool table autocreation does not work
  [Translation] Concatenated translation messages
  [Form] ensure compatibility with older PHPUnit mocks
  [Serializer] Docblock about throwing exceptions on serializer
  [Cache] fix used variable name
  [Debug][ErrorHandler] Preserve our error handler when a logger set another one
  [Form] Changed UrlType input type to text when default_protocol is not null
  [Bugfix] MemcachedSessionHandler::close() must close connection
  Always pass $key to NullAdapter->createCacheItem
2019-01-25 15:35:46 +01:00
Nicolas Grekas
62c595a649 Merge branch '4.1' into 4.2
* 4.1:
  [HttpFoundation] Check file exists before unlink
  [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
  [Translation] Concatenated translation messages
  [Form] ensure compatibility with older PHPUnit mocks
  [Serializer] Docblock about throwing exceptions on serializer
  [Debug][ErrorHandler] Preserve our error handler when a logger set another one
  [Form] Changed UrlType input type to text when default_protocol is not null
  [Bugfix] MemcachedSessionHandler::close() must close connection
2019-01-25 15:35:16 +01:00
Nicolas Grekas
02fe23d064 Merge branch '3.4' into 4.1
* 3.4:
  [HttpFoundation] Check file exists before unlink
  [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
  [Translation] Concatenated translation messages
  [Form] ensure compatibility with older PHPUnit mocks
  [Serializer] Docblock about throwing exceptions on serializer
  [Debug][ErrorHandler] Preserve our error handler when a logger set another one
  [Form] Changed UrlType input type to text when default_protocol is not null
  [Bugfix] MemcachedSessionHandler::close() must close connection
2019-01-25 15:34:37 +01:00
Nicolas Grekas
cd4b031b7e minor #29777 [VarDumper] Improve performance of AbstractCloner (javiereguiluz)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[VarDumper] Improve performance of AbstractCloner

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | -   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | -

While profiling Symfony in "dev" environment (see #29762) I found that `VarCloner::addCasters()` was making thousands of `strtolower()` calls.

![varcloner-addcasters](https://user-images.githubusercontent.com/73419/50694461-40a1bd80-103a-11e9-83c0-a28b8f8f161e.png)

In this PR I propose to remove all those calls. I think it's possible to do it ... but I could be completely wrong, so please review.

-----

As a side note, in the past we did the same `strtolower()` to service IDs and parameter names. We stopped doing that in Symfony 3.3 and it gave us a small performance improvement (same as we could gain here).

If the `strtolower()` calls of `VarCloner::addCasters()` are made just to apply the caster even if the class name is wrongly spelled, I think we could make this change. My guess is that nothing would break for the user (unlike removing the `strtolower()` in DependencyInjection, which broke wrongly spelled services and params). Thanks!

Commits
-------

cff23e52bf [VarDumper] Improve performance of AbstractCloner
2019-01-25 13:15:01 +01:00
Javier Eguiluz
cff23e52bf [VarDumper] Improve performance of AbstractCloner 2019-01-25 13:12:05 +01:00
Nicolas Grekas
afb7bb5dde bug #29764 [HttpFoundation] Check file exists before unlink (adam-mospan)
This PR was submitted for the master branch but it was squashed and merged into the 3.4 branch instead (closes #29764).

Discussion
----------

[HttpFoundation] Check file exists before unlink

Check file exists to prevent ErrorException

| Q             | A
| ------------- | ---
| Branch?       | 2.6 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

Commits
-------

1954187fac [HttpFoundation] Check file exists before unlink
2019-01-25 12:01:14 +01:00
adam-mospan
1954187fac [HttpFoundation] Check file exists before unlink 2019-01-25 12:01:01 +01:00
Nicolas Grekas
a25daa8bd8 bug #29770 [Routing] Make important parameters required when matching (vudaltsov)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Routing] Make important parameters required when matching

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/29763
| License       | MIT
| Doc PR        | n/a

1. This PR improves "important" route parameters implementation. Instead of considering `!slug` to be a variable name (which is not correct from my POV and leads to a lot of `'!' === $varName[0]` and `substr($varName, 1)` snippets), I took advantage of the `$token` array and used offset `[5]` for keeping boolean importance flag. This approach improved and simplified code.
1. This PR makes important parameters required when matching according to https://github.com/symfony/symfony/issues/29763

Commits
-------

2c3ab22080 Made important parameters required when matching
2019-01-25 11:59:33 +01:00
Nicolas Grekas
a1a3ffc1b9 bug #29783 [HttpFoundation] MemcachedSessionHandler::close() must close connection (grachevko)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] MemcachedSessionHandler::close() must close connection

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License       | MIT

Intoduced here https://github.com/symfony/symfony/pull/3333

Commits
-------

38a9d8b6a3 [Bugfix] MemcachedSessionHandler::close() must close connection
2019-01-25 11:55:39 +01:00
Nicolas Grekas
968e7363e1 bug #29794 Always pass $key to NullAdapter->createCacheItem (TysonAndre)
This PR was merged into the 4.2 branch.

Discussion
----------

Always pass $key to NullAdapter->createCacheItem

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes (build failure seems unrelated)
| Fixed tickets |
| License       | MIT
| Doc PR        |

Previously, if this were called, it would throw an ArgumentCountError.
I'm assuming existing code always checks hasItem, so this bug hasn't impacted many people.
This was noticed via static analysis.

The get() method was added to NullAdapter in symfony 4.2

Commits
-------

1976d29e01 Always pass $key to NullAdapter->createCacheItem
2019-01-25 11:49:23 +01:00
Nicolas Grekas
46ebf23a5c bug #29844 [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0' (mrthehud)
This PR was squashed before being merged into the 3.4 branch (closes #29844).

Discussion
----------

[Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | Almost all, one failure on appveyor?
| Fixed tickets | #29835
| License       | MIT
| Doc PR        | n/a

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

When using the ConfirmationQuestion class to ask a yes / no question,
if the default is true, and the answer regex is '/^y/i', then any
value not starting with [yY] is considered false.

This must include "0", which previously would return true, producing results such as:
```
$ php bin/console do:stuff
$ Do you want to continue? 0 <enter>
$ Ok, continuing!
```

Commits
-------

a0a7400d6f [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0'
2019-01-25 11:42:12 +01:00
James Hudson
a0a7400d6f [Console] Fixed #29835: ConfirmationQuestion with default true for answer '0' 2019-01-25 11:42:01 +01:00
Nicolas Grekas
9876e3a6fe feature #29861 [Form][TwigBridge] Add help_html (mpiot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Form][TwigBridge] Add help_html

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | no
| License       | MIT
| Doc PR        | symfony/symfony-docs#...

Sometimes, when we use the form `help` option, we want to display it as HTML (add bold, italic, a span with a specific class, ...). For security reasons, we escape the `help` content.

In this PR, I've added an `help_html` option, seted to false per default. When it set on true, the `help` content is no longer escaped.

Commits
-------

33f5f855d6 [Form][TwigBridge] Add help_html option
2019-01-25 11:39:19 +01:00
Mathieu Piot
33f5f855d6 [Form][TwigBridge] Add help_html option 2019-01-25 11:36:18 +01:00
Nicolas Grekas
1a79a138d5 bug #29869 [Debug][ErrorHandler] Preserve our error handler when a logger sets another one (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug][ErrorHandler] Preserve our error handler when a logger sets another one

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

When logging errors handled by the `ErrorHandler::handleError()` method, the logger can temporarily set its own custom error handler. This is for example the case of `Monolog` in the `StreamHandler` class (cf ebb804e432/src/Monolog/Handler/StreamHandler.php (L101)).

However, when the previous error handler is restored by the logger, it "skips" the real previous handler (the `ErrorHandler::handleError()` one) in the pile and goes back directly to the one before. I guess this is because the `restore_error_handler()` call is technically done in the error handler itself, so it logically restore it to the one before and not to itself.

Here is an easy small example that shows the PHP behavior : https://3v4l.org/4OZNZ

The only solution I have found to fix it is to set our error handler everytime an error is logged.

Here are the things I discovered while trying to find a cleaner fix :
- Setting the same error handler in the error handler itself doesn't actually add it to the pile. This is why adding a check is useless.
- Checking if the logger modified the error handler is impossible anyway : to get the current error handler, you need to set a new one temporarirly and then revert it. However, when you revert it by calling `restore_error_handler()` you end up having the same problem you are trying to fix...
- Also trying to get the current error handler in the error handler itself will return NULL if it is itself.

Commits
-------

b979fff6b8 [Debug][ErrorHandler] Preserve our error handler when a logger set another one
2019-01-25 11:19:25 +01:00
Nicolas Grekas
f7b9bb2ffd bug #29900 [Cache] PDO-based cache pool table autocreation does not work (errogaht)
This PR was merged into the 4.2 branch.

Discussion
----------

[Cache] PDO-based cache pool table autocreation does not work

look at https://github.com/symfony/symfony/issues/29898
I believe that it is not good fix... But pgsq table not foutd throwed right there, in execute(). Dont know about another DB drivers, and i dont know will execute() again work or not, please if some one know more about PDO than me, check it!

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

Commits
-------

81d3716b0d [Cache] PDO-based cache pool table autocreation does not work
2019-01-25 11:13:52 +01:00