Commit Graph

32049 Commits

Author SHA1 Message Date
Nicolas Grekas
ceb4393ca5 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:58:16 +02:00
Nicolas Grekas
57bf748d6e Merge branch '2.7' into 2.8
* 2.7:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:56:01 +02:00
Fabien Potencier
a90250d8da minor #23673 [DI] Make dumped docblocks less verbose (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Make dumped docblocks less verbose

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

When I open a dumped container, I always find there are too much noise in docblocs.
As a bonus side effect, this will reduce the memory requirement in dev :)

Commits
-------

1ade5d8658 [DI] Make dumped docblocks less verbose
2017-07-26 09:36:19 +02:00
Nicolas Grekas
1ade5d8658 [DI] Make dumped docblocks less verbose 2017-07-26 09:27:50 +02:00
Fabien Potencier
21d98d43c4 bug #23644 [VarDumper] Dont use Stub objects for arrays - lower GC pressure (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] Dont use Stub objects for arrays - lower GC pressure

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

Several recent profiles have shown that VarDumper triggers the garbage collector quite often, leading to high CPU usage. The reason for this is that internally, VarCloner creates one Stub object per array+object+resource.

This PR removes the need for Stub objects for each arrays, replacing them with stub arrays. This should almost remove the GC pressure, since the number of Stub objects now has the same magnitude than the number of dumped objects.

Meanwhile, this PR removes any use of the `symfony_debug` extension, which is mostly useless anyway. This helps make the code simpler (really :) ), thus helps maintenance (eg merging up to master.)

I also changed the values of the constants defined in the Stub class, and removed the corresponding Data::mapStubConsts() method. Since the serialized format has changed (and we have to do it as there is no other way to fix this GC issue), there is no need to keep any sort of compat mapping there.

Commits
-------

0d5012d20e [VarDumper] Dont use Stub objects for arrays
2017-07-26 09:04:37 +02:00
Nicolas Grekas
d56947698f Merge branch '3.2' into 3.3
* 3.2:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:42:48 +02:00
Nicolas Grekas
a280e81ebb Merge branch '2.8' into 3.2
* 2.8:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:34:07 +02:00
Nicolas Grekas
17670e4986 Merge branch '2.7' into 2.8
* 2.7:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:29:15 +02:00
Nicolas Grekas
072c866d70 minor #23670 [DI] use assertStringEqualsFile when possible (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] use assertStringEqualsFile when possible

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

To make failure reporting more accurate, and maintaining tests easier (assertStringEqualsFile is already heavily used in the same file.)

Commits
-------

eebae7e [DI] use assertStringEqualsFile when possible
2017-07-26 08:23:02 +02:00
Nicolas Grekas
8907bc42b1 bug #23615 [Cache] Handle serialization failures for Memcached (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Handle serialization failures for Memcached

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

Fixes two issues with serialization + memcached: with the memcached extension, the default serializer is automatically selected as igbinary when possible, native php otherwise. That creates obvious migration/portability issues (ie just installing igbinary wipes out the value of your cache.)

Then, handling unserializing failures (esp. "php_incomplete_class") is a paramount feature of the component. You must be able to deal with migrating you code base without being blocked by some legacy serialized data.

Commits
-------

cccc88f [Cache] Handle unserialization failures for Memcached
2017-07-26 08:21:50 +02:00
Nicolas Grekas
a3f8fb0059 bug #23654 [DI] Fix using private services in expressions (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[DI] Fix using private services in expressions

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

Since 3.2, fetching private services via `$container->get()` is deprecated.
This makes it impossible to use a private service in an expression.
Until this PR :)

Commits
-------

f3da6cf [DI] Fix using private services in expressions
2017-07-26 08:20:03 +02:00
Nicolas Grekas
e5790afa80 bug #23662 [VarDumper] Adapt to php 7.2 changes (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Adapt to php 7.2 changes

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

As required by this change on PHP 7.2:
https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts

Tests pass locally (until we add 7.2 to Travis)

Commits
-------

3c2f5f7 [VarDumper] Adapt to php 7.2 changes
2017-07-26 08:17:43 +02:00
Nicolas Grekas
eebae7ec71 [DI] use assertStringEqualsFile when possible 2017-07-26 08:11:54 +02:00
Maxime Steinhausser
5e89278a12 minor #23652 [Form] Static call TimezoneType::getTimezones (ro0NL)
This PR was merged into the 3.2 branch.

Discussion
----------

[Form] Static call TimezoneType::getTimezones

| Q             | A
| ------------- | ---
| Branch?       | 3.2
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

Spotted in #23648

Commits
-------

fe48ab1f8b [Form] Static call TimezoneType::getTimezones
2017-07-25 21:53:44 +02:00
Nicolas Grekas
3c2f5f7a24 [VarDumper] Adapt to php 7.2 changes 2017-07-25 16:57:06 +02:00
Nicolas Grekas
f3da6cf6a2 [DI] Fix using private services in expressions 2017-07-25 13:50:49 +02:00
Maxime Steinhausser
2af59599b1 bug #23649 [Form][TwigBridge] Don't render _method in form_rest() for a child form (fmarchalemisys)
This PR was squashed before being merged into the 2.7 branch (closes #23649).

Discussion
----------

[Form][TwigBridge] Don't render _method in form_rest() for a child form

The hidden `_method` must only be generated if the form is the top most form.

Always generating the hidden `_method` breaks forms using the POST method when they have children using the PUT method. If `_method` is generated for such a child form, it overrides the parent method and the form fails to validate.

See issue #23254

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

Commits
-------

973b2d3 [Form][TwigBridge] Don't render _method in form_rest() for a child form
2017-07-25 11:24:46 +02:00
fmarchalemisys
973b2d3973 [Form][TwigBridge] Don't render _method in form_rest() for a child form 2017-07-25 11:24:41 +02:00
Nicolas Grekas
0d5012d20e [VarDumper] Dont use Stub objects for arrays 2017-07-25 11:17:49 +02:00
Roland Franssen
fe48ab1f8b [Form] Static call TimezoneType::getTimezones 2017-07-24 20:55:44 +02:00
Maxime Steinhausser
945596b7cf minor #23636 [Form] Removed references for non existent validator constraints (Koc)
This PR was merged into the 3.2 branch.

Discussion
----------

[Form]  Removed references for non existent validator constraints

| Q             | A
| ------------- | ---
| Branch?       | 3.2
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | follow-up of #16024
| License       | MIT
| Doc PR        | -

<!--
- 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 3.4,
  legacy code removals go to the master branch.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

bfd9c2c Removed references for non existent validator constraints
2017-07-24 13:13:51 +02:00
Fabien Potencier
a00b05e3ed minor #23635 [Yaml] Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS (GuilhemN)
This PR was merged into the 3.3 branch.

Discussion
----------

[Yaml] Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony/pull/22948/files#r126940623

<!--
- 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 3.4,
  legacy code removals go to the master branch.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

9fd425ea14 Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS
2017-07-24 09:20:01 +02:00
Konstantin.Myakshin
bfd9c2cbe8 Removed references for non existent validator constraints 2017-07-23 18:14:03 +03:00
Guilhem Niot
9fd425ea14 Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS 2017-07-23 14:43:26 +02:00
Konstantin.Myakshin
d30c751781 Add some phpdocs for IDE autocompletion and better SCA 2017-07-23 12:48:31 +03:00
Fabien Potencier
07638982c7 bug #23588 [WebProfilerBundle] Display trace and context in the logger profiler (lyrixx)
This PR was merged into the 3.3 branch.

Discussion
----------

[WebProfilerBundle] Display trace and context in the logger profiler

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

Right now the behavior is not perfect. It can display only the trace **or** the context.
Some time, we want both.

More over, using `{{ profiler_dump_log(log.message, trace) }}` is wrong

Commits
-------

ef1e50802e [WebProfilerBundle] Display trace and context in the logger profiler
2017-07-23 11:41:59 +02:00
Nicolas Grekas
95fd0770d1 minor #23631 [DI] Fix test (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix test

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

In php 5.5.9 (our lowest supported version), reflection says that the username argument is not optional (a bug that is fixed in 5.5.10 and up.)

Commits
-------

70cc4e8 [DI] Fix test
2017-07-23 11:26:43 +02:00
Nicolas Grekas
70cc4e86f4 [DI] Fix test 2017-07-23 11:15:20 +02:00
Nicolas Grekas
cccc88f738 [Cache] Handle unserialization failures for Memcached 2017-07-23 10:41:58 +02:00
Maxime Steinhausser
41bd1e5c91 minor #23628 Remove unused prop + added @deprecated (ro0NL)
This PR was merged into the 3.3 branch.

Discussion
----------

Remove unused prop + added @deprecated

| Q             | A
| ------------- | ---
| Branch?       | 3.3

Spotted in #23624

Commits
-------

07ff4dd163 Remove unused prop + added @deprecated
2017-07-22 21:53:40 +02:00
Maxime Steinhausser
a2d36536ea minor #23627 Remove unused mocks/vars (ro0NL)
This PR was merged into the 3.2 branch.

Discussion
----------

Remove unused mocks/vars

| Q             | A
| ------------- | ---
| Branch?       | 3.2

Spotted in #23624

Commits
-------

445c56aa3e Remove unused mocks/vars
2017-07-22 21:51:02 +02:00
Roland Franssen
07ff4dd163 Remove unused prop + added @deprecated 2017-07-22 20:52:59 +02:00
Roland Franssen
445c56aa3e Remove unused mocks/vars 2017-07-22 20:48:54 +02:00
Kévin Dunglas
7428abad51
bug #23023 [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables (vudaltsov)
This PR was squashed before being merged into the 2.8 branch (closes #23023).

Discussion
----------

[DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables

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

Note that [Embeddables appeared only in doctrine/orm 2.5](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/changelog/migration_2_5.html). I added class_exists checks for that.

Commits
-------

7816f3b7c7 [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
2017-07-22 18:46:29 +02:00
Valentin
7816f3b7c7
[DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables 2017-07-22 18:46:25 +02:00
Fabien Potencier
4e25a619dc bug #23618 [Routing] allow HEAD method to be defined first (DavidBadura)
This PR was merged into the 3.3 branch.

Discussion
----------

[Routing] allow HEAD method to be defined first

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

Since 3.3 it's no longer possible to set the allowed methods to HEAD followed by GET. If you try this you get an `Notice: Undefined offset: 0` error.

```
index:
  path: '/'
  defaults:
    _controller: AppBundle:Default:index
  methods: [HEAD, GET]
```

It works perfectly if you change the ordering of the allowed methods:

```
index:
  path: '/'
  defaults:
    _controller: AppBundle:Default:index
  methods: [GET, HEAD]
```

The problem has been added in this commit: dd647ffc8a (diff-3b72491a9ba1cff58442b845ae837eb3R297)

After an `array_filter` the keys will not be reset. So the key `0` does not exist anymore and this check `if ('$methods[0]' !== \$$methodVariable) {` fails. A simple `array_values` ​​fix this issue.

Commits
-------

52e2821597 Router: allow HEAD method to be defined first
2017-07-22 09:57:14 +02:00
Fabien Potencier
ee58cfcf10 bug #23619 [Validator] Fix IbanValidator for ukrainian IBANs (paroe)
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes #23619).

Discussion
----------

[Validator] Fix IbanValidator for ukrainian IBANs

The ukrainian bank identifier consists of six digits and not letters.
Also fixes the broken links to the current SWIFT IBAN registry pdf.

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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
-------

1ba95738fb [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-22 09:54:37 +02:00
Christopher Parotat
1ba95738fb [Validator] Fix IbanValidator for ukrainian IBANs
The ukrainian bank identifier consists of six digits and not letters.
Also fix the broken links to the current SWIFT IBAN registry pdf.
2017-07-22 09:54:37 +02:00
David Badura
52e2821597 Router: allow HEAD method to be defined first 2017-07-21 19:43:13 +02:00
Fabien Potencier
adeab151ba bug #23605 [DI][Bug] Autowiring thinks optional args on core classes are required (weaverryan)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI][Bug] Autowiring thinks optional args on core classes are required

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

Currently, the following fails:

```yml
services:
    PDO:
        class: PDO
        arguments:
            - 'sqlite:/foo.db'
```

The error:

> Cannot autowire service "PDO": argument "$username" of method "__construct()" must have a type-hint or be given a value explicitly

`$username` is the second argument to `PDO`, and it's optional. Here's the reason: it appears that `$parameter->isDefaultValueAvailable()` returns false for optional arguments of core classes. But, `$parameter->isOptional()` returns true.

This allows optional arguments to not throw an exception. I can't think of any edge cases this will cause - but it's possible I'm not thinking of something :).

Cheers!

Commits
-------

178a0f73b7 Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-21 17:37:03 +02:00
Nicolas Grekas
444a840ea5 Merge branch '3.2' into 3.3
* 3.2:
  use Precise on Travis to keep PHP LDAP support
  Fix case sensitive sameSite cookie
  [PropertyInfo] Use rawurlencode to escape PSR-6 keys
  fix(security): ensure the 'route' index is set before attempting to use it
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:04:46 +02:00
Nicolas Grekas
0793fe76b1 Merge branch '2.8' into 3.2
* 2.8:
  use Precise on Travis to keep PHP LDAP support
  fix(security): ensure the 'route' index is set before attempting to use it
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:03:24 +02:00
Nicolas Grekas
6158ab363d Merge branch '2.7' into 2.8
* 2.7:
  use Precise on Travis to keep PHP LDAP support
  fix(security): ensure the 'route' index is set before attempting to use it
2017-07-21 13:02:55 +02:00
Nicolas Grekas
da6ed16628 minor #23612 use Precise on Travis to keep PHP LDAP support (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

use Precise on Travis to keep PHP LDAP support

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

Travis CI [started to roll out Ubuntu Trusty](https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming) as the default distribution. However, it seems that the PHP LDAP extension is missing on Trusty (see travis-ci/travis-ci#7067) starting to make our builds fail. Thus, I suggest to keep using Precise until the linked issue has been fixed.

Commits
-------

5441b1a use Precise on Travis to keep PHP LDAP support
2017-07-21 13:02:19 +02:00
Christian Flothmann
5441b1ad38 use Precise on Travis to keep PHP LDAP support 2017-07-21 12:55:18 +02:00
Grégoire Pineau
ef1e50802e [WebProfilerBundle] Display trace and context in the logger profiler 2017-07-21 10:28:01 +02:00
Ryan Weaver
178a0f73b7 Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required 2017-07-20 19:10:01 -04:00
Fabien Potencier
68582c0a9a bug #23586 Fix case sensitive sameSite cookie (mikefrancis)
This PR was submitted for the master branch but it was merged into the 3.2 branch instead (closes #23586).

Discussion
----------

Fix case sensitive sameSite cookie

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

Commits
-------

14c310f5fb Fix case sensitive sameSite cookie
2017-07-20 09:59:08 +02:00
Mike Francis
14c310f5fb Fix case sensitive sameSite cookie 2017-07-20 09:58:49 +02:00
Fabien Potencier
e33beda8db minor #23595 [PropertyInfo] Use rawurlencode to escape PSR-6 keys (dunglas)
This PR was merged into the 3.2 branch.

Discussion
----------

[PropertyInfo] Use rawurlencode to escape PSR-6 keys

| Q             | A
| ------------- | ---
| Branch?       | 3.2
| Bug fix?      | no
| New feature?  |no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Use `rawurlenode` instead of my custom escaper as suggested by @nicolas-grekas: https://twitter.com/nicolasgrekas/status/887728384469590016

Commits
-------

ab91659ad6 [PropertyInfo] Use rawurlencode to escape PSR-6 keys
2017-07-20 09:54:53 +02:00