Commit Graph

33070 Commits

Author SHA1 Message Date
Robin Chalas
88666ddc2c Fix merge 2017-07-23 12:34:49 +02:00
Konstantin.Myakshin
8630abe27a [Form] Allow pass filter callback to delete_empty option. 2017-07-23 12:57:23 +03: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
Fabien Potencier
7695112601 feature #22317 [Console] Make SymfonyQuestionHelper::ask optional by default (ro0NL)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[Console] Make SymfonyQuestionHelper::ask optional by default

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes (nothing in core depends on it)
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

i noticed when writing commands i always keep doing

```php
$io = new SymfonyStyle($input, $output);
$answer = $io->ask('...', null, function ($value) { return $value; });

// instead of just
$answer = $io->ask('...');
```

only to bypass a built-in validation, of which im not sure why it's there. Note the base question helper doesnt make this assumption...

Commits
-------

2da429cd0a [Console] Make SymfonyQuestionHelper::ask optional by default
2017-07-22 20:13:43 +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
Nicolas Grekas
1ac3031248 Merge branch '3.4'
* 3.4:
  [TwigBundle] Commands as a service
  add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command
2017-07-22 16:11:29 +02:00
Nicolas Grekas
44d1162df4 feature #23451 [Cache] Add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command (robfrawley)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #21764, https://github.com/symfony/symfony/issues/21764#issuecomment-313425723
| License       | MIT
| Doc PR        | symfony/symfony-docs#8209

As requested in https://github.com/symfony/symfony/issues/21764#issuecomment-313425723, this PR adds a `prune()` method to [`FilesystemTrait`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemTrait.php). This placement seems reasonable as it exposes the method in [`FilesystemAdapter`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Adapter/FilesystemAdapter.php) and [`FilesystemCache`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Simple/FilesystemCache.php).

The return value is a `bool` representing either a partial or complete failure (when `false`) *or* complete success (when `true`).

Once the API for the `prune` method is confirmed, I'll introduce a documentation PR, as well.

---

*Stale-detection implementation:* The file modification time is used to determine if a cache item should be pruned. This seems reasonable, given the use of [`touch` in the common trait](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php#L90). Interestingly, though, the [`doFetch` method](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemTrait.php#L38) uses the timestamp saved at the top of the file itself to determine the stale state. Should this latter implementation be used for `prune` as well (or is the current one ok), for example:

```php
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY, \RecursiveIteratorIterator::CATCH_GET_CHILD) as $file) {
    if ($h = @fopen($file, 'rb')) {
        if ($time >= (int) $expiresAt = fgets($h)) {
            fclose($h);
            if (isset($expiresAt[0])) {
                $okay = (@unlink($file) && !file_exists($file)) && $okay;
            }
        }
    }
}
```

Commits
-------

f0d0c5f add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command
2017-07-22 16:03:09 +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
Fabien Potencier
68d9df6116 feature #23519 [TwigBundle] Commands as a service (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #23519).

Discussion
----------

[TwigBundle] Commands as a service

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

tiny step towards #23488

Commits
-------

98391402d1 [TwigBundle] Commands as a service
2017-07-22 09:51:14 +02:00
Roland Franssen
98391402d1 [TwigBundle] Commands as a service 2017-07-22 09:51:11 +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
9fa38950ec minor #23616 [VarDumper] Remove hhvm compat in time zone caster (maidmaid)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[VarDumper] Remove hhvm compat in time zone caster

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

The 2nd arg of ``\Locale::getDisplayRegion()`` method is optional in PHP but required with HHVM.
See https://3v4l.org/eAigW.

Commits
-------

164015e Remove hhvm compat
2017-07-21 16:08:38 +02:00
Dany Maillard
164015e1ff Remove hhvm compat 2017-07-21 15:54:53 +02:00
Nicolas Grekas
c49895ff83 Merge branch '3.4'
* 3.4:
  Add time zone caster
2017-07-21 15:39:00 +02:00
Nicolas Grekas
04f3e6024c feature #23591 [VarDumper] Add time zone caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Add time zone caster

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

Commits
-------

5c4bfac Add time zone caster
2017-07-21 15:36:36 +02:00
Nicolas Grekas
9c4c0f3736 feature #23614 [VarDumper] Remove low PHP version and hhvm compat in interval caster (maidmaid)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[VarDumper] Remove low PHP version and hhvm compat in interval caster

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

Commits
-------

ccca65b Remove hhvm compat
2017-07-21 15:33:38 +02:00
Dany Maillard
5c4bfacdef Add time zone caster 2017-07-21 14:36:41 +02:00
Dany Maillard
ccca65b727 Remove hhvm compat 2017-07-21 14:15:00 +02:00
Nicolas Grekas
d024d79559 Merge branch '3.4'
* 3.4: (22 commits)
  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
  Fix registering lazy command services with autoconfigure enabled
  Fix the design of the profiler exceptions when there is no message
  [Config] Minor fix
  document the TwigRenderer class deprecation
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
  [VarDumper] Use "C" locale when using "comma" flags
  [Config] Make ClassExistenceResource throw on invalid parents
  [DebugBundle] Added min_depth to Configuration
  [Console] Add a factory command loader for standalone application with lazy-loading needs
  ...
2017-07-21 13:08:07 +02:00
Nicolas Grekas
6dc5f59ae3 Merge branch '3.3' into 3.4
* 3.3:
  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
  Fix the design of the profiler exceptions when there is no message
  [Config] Minor fix
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:05:08 +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
19ba63125d minor #23594 [Bridge\Doctrine] Fix BC with DI v3.4 (nicolas-grekas)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[Bridge\Doctrine] Fix BC with DI v3.4

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

As allowed by composer.json.
Code borrowed from branch 3.4

Commits
-------

b03f0bdb06 [Bridge\Doctrine] Fix BC with DI v3.4
2017-07-20 21:30:51 +02:00
Fabien Potencier
e02ba32ea3 minor #23556 [Console] Fix registering lazy command services with autoconfigure enabled (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Fix registering lazy command services with autoconfigure enabled

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

For
```yaml
_defaults:
    autoconfigure: true

App\:
    resource: '../../src/*'

App\Command\FooCommand:
    tags:
        - { name: console.command, command: foo }
```

Before you get the following error:
> Missing "command" attribute on tag "console.command" for service "App\Command\FooCommand"

Now the command is lazy.

----
Btw, @Tobion's https://github.com/symfony/symfony/pull/22734#discussion_r127410411
> Wouldn't it be more straightforward if aliases are just the additional tags using the command attribute as well?
Then there is no need for an alias property at all and this strange condition doesn't apply either.

Partially addressed here by removing the need for repeating the `command` attribute on each `console.command` tag
```yaml
# before
tags:
    - { name: console.command, command: foo }
    - { name: console.command, command: foo, alias: foobar }

# after
tags:
    - { name: console.command, command: foo }
    - { name: console.command, alias: foobar }
```

Tobias proposal:

```yaml
tags:
    - { name: console.command, command: app:my-command }
    - { name: console.command, command: app:my-alias }
```

I wanted to propose exactly the same at first, but finally found more clear to add a specific attribute for aliases, especially because relying on the order on which tags are defined sounds less good to me. Please tell me about your preference.

(And sorry for the noise around this feature, I want to polish it for 3.4)

Commits
-------

8a71aa31bb Fix registering lazy command services with autoconfigure enabled
2017-07-20 20:08:38 +02:00
Fabien Potencier
b9cc0890c4 feature #22317 [Console] Make SymfonyQuestionHelper::ask optional by default (ro0NL)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[Console] Make SymfonyQuestionHelper::ask optional by default

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes (nothing in core depends on it)
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

i noticed when writing commands i always keep doing

```php
$io = new SymfonyStyle($input, $output);
$answer = $io->ask('...', null, function ($value) { return $value; });

// instead of just
$answer = $io->ask('...');
```

only to bypass a built-in validation, of which im not sure why it's there. Note the base question helper doesnt make this assumption...

Commits
-------

2da429cd0a [Console] Make SymfonyQuestionHelper::ask optional by default
2017-07-20 19:25:39 +02:00
Rob Frawley 2nd
f0d0c5ffef
add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command
- added `Symfony\Component\Cache\PruneableInterface` so PSR-6 or PSR-16 cache implementations can declare support
  for manual stale cache pruning
- added FilesystemTrait::prune() and PhpFilesTrait::prune() implementations
- now FilesystemAdapter, PhpFilesAdapter, FilesystemCache, and PhpFilesCache implement PruneableInterface and
  supports manual stale cache pruning
- Added `cache:pool:prune` command via `Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand` to allow
  manual stale cache item pruning of supported PSR-6 and PSR-16 cache pool implementations
- Added `Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\CachePoolPrunerPass` compiler pass to fetch
  all cache pools implementing `PruneableInterface` and pass them to the command as an `IteratorArgument` so
  these references are lazy loaded by the command
- updated changelogs as appropriate
2017-07-20 11:29:24 -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
Kévin Dunglas
ab91659ad6
[PropertyInfo] Use rawurlencode to escape PSR-6 keys 2017-07-20 09:53:02 +02:00
Fabien Potencier
34d5f9eefe bug #23584 Fix the design of the profiler exceptions when there is no message (javiereguiluz)
This PR was merged into the 3.3 branch.

Discussion
----------

Fix the design of the profiler exceptions when there is no message

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

This changes a bit the HTML structure of exception pages so we can show exceptions without messages in a better way inside the profiler.

### Before

![before](https://user-images.githubusercontent.com/73419/28358961-092f845e-6c71-11e7-8225-63d01a8011f0.png)

### After

![after](https://user-images.githubusercontent.com/73419/28358968-0e6cfba4-6c71-11e7-9b76-3d6eb7a9f0bc.png)

Commits
-------

25a47d8796 Fix the design of the profiler exceptions when there is no message
2017-07-20 09:48:08 +02:00
Fabien Potencier
f4fffc082c bug #23238 [Security] ensure the 'route' index is set before attempting to use it (gsdevme)
This PR was submitted for the 2.8 branch but it was merged into the 2.7 branch instead (closes #23238).

Discussion
----------

[Security] ensure the 'route' index is set before attempting to use it

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

```
                // matching a request is more powerful than matching a URL path + context, so try that first
                if ($this->urlMatcher instanceof RequestMatcherInterface) {
                    $parameters = $this->urlMatcher->matchRequest($request);
                } else {
                    $parameters = $this->urlMatcher->match($request->getPathInfo());
                }

                return $path === $parameters['_route'];
```
Hi the issue here is the code is assuming a `_route` has been returned from the `match()` method.. however there is nothing to suggest that is always the case. For example if I just want to return a controller that is perhaps not added as an actual route I can & it works.. Although this will generate a notice warning.

**In terms of what happens if the `_route` is not defined should it return `false?` or actually  perform a similar condition as `return $path === rawurldecode($request->getPathInfo());` **

I have an implementation of a router that is just returning a controller path and its arguments without a `_route` which works aside from this notice.

Commits
-------

7ae578cc1a fix(security): ensure the 'route' index is set before attempting to use it
2017-07-20 09:38:10 +02:00
Gavin Staniforth
7ae578cc1a fix(security): ensure the 'route' index is set before attempting to use it 2017-07-20 09:38:09 +02:00