Commit Graph

29187 Commits

Author SHA1 Message Date
Egor Gorbachev
cc38c6bb62 Fix typo in test method name 2018-03-19 19:30:35 +01:00
Nicolas Grekas
887cba28f4 minor #26297 [Config] Backport string|null api for node names (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

 [Config] Backport string|null api for node names

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| 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 -->

Commits
-------

fe586ac [Config] Backport string|null api for node names
2018-03-19 18:44:39 +01:00
Nicolas Grekas
5e5216017a Merge branch '4.0'
* 4.0: (28 commits)
  [DI] Add tests for EnvVarProcessor
  typo
  [Bridge\PhpUnit] Fix #26430 Cannot autoload listeners
  Make sure we always render errors. Eventhough labels are disabled
  Make sure form errors is valid HTML
  [HttpKernel] Allow generators in registerBundle
  [TwigBundle] document TwigRenderer BC break in UPGRADE-3.4
  Extra line to bootstrap 3 horizontal layout
  [Serializer] Remove const override
  Update Client.php
  [PhpUnitBridge] Ability to use different composer.json file
  [DomCrawler] FormField: remove an useless return statement
  [Config] ReflectionClassResource check abstract ServiceSubscriberInterface and EventSubscriberInterface
  Display the Welcome Page when there is no homepage defined
  [DI] Remove dead dumper check
  Make KernelInterface docblock more fit for bundle-less environment
  fix regression when extending the Container class without a constructor
  fix the updating of timestamp in the MemcachedSessionHandler
  [SecurityBundle] Make extra character non mandatory in regex
  [Config] Add characters to the regex
  ...
2018-03-19 18:34:12 +01:00
Nicolas Grekas
72041c8821 Merge branch '3.4' into 4.0
* 3.4: (22 commits)
  [DI] Add tests for EnvVarProcessor
  [Bridge\PhpUnit] Fix #26430 Cannot autoload listeners
  Make sure we always render errors. Eventhough labels are disabled
  Make sure form errors is valid HTML
  [HttpKernel] Allow generators in registerBundle
  [TwigBundle] document TwigRenderer BC break in UPGRADE-3.4
  Extra line to bootstrap 3 horizontal layout
  [Serializer] Remove const override
  Update Client.php
  [PhpUnitBridge] Ability to use different composer.json file
  [DomCrawler] FormField: remove an useless return statement
  [Config] ReflectionClassResource check abstract ServiceSubscriberInterface and EventSubscriberInterface
  Display the Welcome Page when there is no homepage defined
  fix regression when extending the Container class without a constructor
  fix the updating of timestamp in the MemcachedSessionHandler
  [SecurityBundle] Make extra character non mandatory in regex
  [Config] Add characters to the regex
  bumped Symfony version to 3.4.7
  updated VERSION for 3.4.6
  updated CHANGELOG for 3.4.6
  ...
2018-03-19 18:30:36 +01:00
Nicolas Grekas
7ae529291f bug #26273 [Security][Profiler] Display the original expression in 'Access decision log' (lyrixx)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security][Profiler] Display the original expression in 'Access decision log'

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

---

before:

![screenshot at 2018-02-22 18-22-28](https://user-images.githubusercontent.com/408368/36553752-798001ba-17fd-11e8-9539-254a25a01e60.png)

after:

![after](https://user-images.githubusercontent.com/408368/36553856-b7449fe2-17fd-11e8-94cb-ddaf4f033511.png)

Commits
-------

8f16c2e [Security][Profiler] Display the original expression in 'Access decision log'
2018-03-19 18:03:08 +01:00
Nicolas Grekas
6059bdc80e feature #26308 [Config] Introduce BuilderAwareInterface (ro0NL)
This PR was squashed before being merged into the 4.1-dev branch (closes #26308).

Discussion
----------

[Config] Introduce BuilderAwareInterface

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

Split `ParentNodeDefinitionInterface` into `BuilderAwareInterface`.

Use case is custom node definition  (extended from VariableNodeDef) with a corresponding prototyped array node.

To set the actual prototype i need the builder at definition level, provided by `ParentNodeDefinitionInterface`. However i don't implement `children()` + `append()`, i solely need the builder scope.

To go after #26297

Commits
-------

1353694 [Config] Introduce BuilderAwareInterface
2018-03-19 17:48:53 +01:00
Roland Franssen
1353694bfd [Config] Introduce BuilderAwareInterface 2018-03-19 17:48:47 +01:00
Nicolas Grekas
ba2e6edb8a bug #26427 [DependencyInjection] fix regression when extending the Container class without a constructor (lsmith77)
This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] fix regression when extending the Container class without a constructor

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

fix regression introduced in c026ec63e3 (diff-f7b23d463cba27ac5e4cb677f2be7623R985)

Commits
-------

0beb64a fix regression when extending the Container class without a constructor
2018-03-19 17:17:44 +01:00
Nicolas Grekas
d818636019 minor #26542 [DI] Add tests for EnvVarProcessor (mcfedr)
This PR was squashed before being merged into the 3.4 branch (closes #26542).

Discussion
----------

[DI] Add tests for EnvVarProcessor

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

Add tests for the `EnvVarProcessor` as it doesn't have any at the moment.

Originally from this PR against master, https://github.com/symfony/symfony/pull/26498

Commits
-------

2992bb3 [DI] Add tests for EnvVarProcessor
2018-03-19 15:53:29 +01:00
Fred Cox
2992bb3fd3 [DI] Add tests for EnvVarProcessor 2018-03-19 15:53:26 +01:00
Nicolas Grekas
5d00aa3961 bug #26562 [Bridge\PhpUnit] Cannot autoload class "\Symfony\Bridge\PhpUnit\SymfonyTestsListener" (Jake Bishop)
This PR was merged into the 3.4 branch.

Discussion
----------

[Bridge\PhpUnit] Cannot autoload class "\Symfony\Bridge\PhpUnit\SymfonyTestsListener"

| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #26430
| License       | MIT
| Doc PR        | - <!-- required for new features -->

Allows composer to discover the class for autoloading when using `composer install --classmap-authoritative`

Commits
-------

6b6fdab [Bridge\PhpUnit] Fix #26430 Cannot autoload listeners
2018-03-19 15:48:02 +01:00
temperatur
7a049769bf Fixes #26563 (open_basedir restriction in effect)
If the open_basedir is set is_file(PHP_BINARY) is false.
2018-03-19 15:39:02 +01:00
Nicolas Grekas
609b56a3c3 minor #26578 [HttpKernel] Allow generators in registerBundle (ostrolucky)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Allow generators in registerBundle

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

Flex recipe [utilizes generator in Kernel.php](a067bebf03/symfony/framework-bundle/3.3/src/Kernel.php (L33)). This needs to be explicitly allowed in interface.

Commits
-------

f36cfd4 [HttpKernel] Allow generators in registerBundle
2018-03-19 14:14:15 +01:00
Nicolas Grekas
1e38f41f18 minor #26582 [Validator] Fix docblock of ClassMetadata#members (ostrolucky)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] Fix docblock of ClassMetadata#members

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

Structure of this array is in reality array<string, array<int, PropertyMetadata>>, so MemberMetadata is 2 levels deep in this array, instead of one

Commits
-------

44008c4 [Validator] Fix docblock of ClassMetadata#members
2018-03-19 14:13:22 +01:00
Nicolas Grekas
9446fa01c4 minor #26592 [FrameworkBundle] Use a::b notation in ControllerTrait docblock (hacfi)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] Use `a::b` notation in ControllerTrait docblock

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

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

Replaced the deprecated the bundle notation with the new `a::b` notation in the docblock of `ControllerTrait::forward`

Commits
-------

973c5ec [FrameworkBundle] Use `a::b` notation in ControllerTrait docblock
2018-03-19 13:53:48 +01:00
Nicolas Grekas
b79f29ed4f bug #26538 [Routing] remove capturing groups from requirements, they break the merged regex (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] remove capturing groups from requirements, they break the merged regex

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

Group positions are now used to extract variables. Capturing groups in requirements break them for now.

Commits
-------

8444022 [Routing] remove capturing groups from requirements, they break the merged regex
2018-03-19 13:48:11 +01:00
Nicolas Grekas
8444022426 [Routing] remove capturing groups from requirements, they break the merged regex 2018-03-19 13:47:01 +01:00
Nicolas Grekas
0f9246fcfe feature #26518 [Routing] Allow inline definition of requirements and defaults (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] Allow inline definition of requirements and defaults

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

```
{bar} -- no requirement, no default value
{bar<.*>} -- with requirement, no default value
{bar?default_value} -- no requirement, with default value
{bar<.*>?default_value} -- with requirement and default value
{bar?} -- no requirement, with default value of null
{bar<.*>?} -- with requirement and default value of null
```

Details:

* Requirements and default values are not escaped in any way. This is valid -> `@Route("/foo/{bar<>>?<>}")` (requirements = `>`  and default value = `<>`)
* Because of the lack of escaping, you can't use a closing brace (`}`) inside the default value (wrong -> `@Route("/foo/{bar<\d+>?aa}bb}")`) but you can use it inside requirements (correct -> `@Route("/foo/{bar<\d{3}>}")`).
* PHP constants are not supported (use the traditional `defaults` syntax for that)
* ...

Commits
-------

67559e1 [Routing] Allow inline definition of requirements and defaults
2018-03-19 13:12:13 +01:00
Nicolas Grekas
f6066532ea typo 2018-03-19 13:09:45 +01:00
Nicolas Grekas
567cbaaa21 bug #26568 [Debug] Reset previous exception handler earlier to prevent infinite loop (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Debug] Reset previous exception handler earlier to prevent infinite loop

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

Commits
-------

f7e1bb0 [Debug] Reset previous exception handler ealier to prevent infinite loop
2018-03-19 13:01:48 +01:00
Nicolas Grekas
0053eeefcf [Routing] Fix name-prefixing when using PHP DSL 2018-03-19 12:40:52 +01:00
Nicolas Grekas
f7e1bb05e2 [Debug] Reset previous exception handler ealier to prevent infinite loop 2018-03-19 11:28:44 +01:00
Nicolas Grekas
67559e1f97 [Routing] Allow inline definition of requirements and defaults 2018-03-19 10:05:56 +01:00
Jake Bishop
6b6fdab562 [Bridge\PhpUnit] Fix #26430 Cannot autoload listeners 2018-03-19 09:37:57 +01:00
Nicolas Grekas
b2fafc6a0f feature #26143 [Routing] Implement i18n routing (frankdejonge, nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing]  Implement i18n routing

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

This PR introduces support for I18N routing into core. This is a port from a bundle I've made recently, now merged into the default implementation. While it's ok to have this as a bundle, it was suggested by @nicolas-grekas to create a PR for this so it can be included into the core.

## New usages

### YAML

```yaml
contact:
    controller: ContactController::formAction
    path:
        en: /send-us-an-email
        nl: /stuur-ons-een-email
```

Will be effectively the same as declaring:

```yaml
contact.en:
    controller: ContactController::formAction
    path: /send-us-an-email
    defaults:
        _locale: en

contact.nl:
    controller: ContactController::formAction
    path: /stuur-ons-een-email
    defaults:
        _locale: nl
```

### Annotation usage:

```php
<?php

use Symfony\Component\Routing\Annotation\Route;

class ContactController
{
    /**
     * @Route({"en": "/send-us-an-email", "nl": "/stuur-ons-een-email"}, name="contact")
     */
    public function formAction()
    {

    }
}

/**
 * @Route("/contact")
 */
class PrefixedContactController
{
    /**
     * @Route({"en": "/send-us-an-email", "nl": "/stuur-ons-een-email"}, name="contact")
     */
    public function formAction()
    {

    }
}
```

### Route generation

```php
<?php
/** @var UrlGeneratorInterface $urlGenerator */
$urlWithCurrentLocale = $urlGenerator->generate('contact');
$urlWithSpecifiedLocale = $urlGenerator->generate('contact', ['_locale' => 'nl']);
```

Route generation is based on your request locale. When not available it falls back on a configured default. This way of route generation means you have a "route locale switcher" out of the box, but generate the current route with another locale for most cases.

## Advantages

Having i18n routes defined like this has some advantages:

* Less error prone.
* No need to keep `requirements` or `defaults` in sync with other definitions.
* No need to `{_locale}` in the path (bad for route matching performance).
* Better developer experience.

### Next steps

I've ported all the things the bundle supported, before moving on I'd like to discuss this first in order not to waste our collective time. This initial PR should give a clear enough picture to see what/how/why this is done.

If and when accepted I/we can move forward to implement the XML loader and @nicolas-grekas mentioned there should be a `Configurator` implemented for this as well. He opted to help with this (for which I'm very thankful).

- [x] Yaml Loader
- [x] Annotation Loader
- [x] XML Loader
- [x] PHP Loader?
- [ ] Documentation

Commits
-------

4ae66dc [Routing] Handle "_canonical_route"
e32c414 [Routing] Implement i18n routing
2018-03-19 09:25:11 +01:00
Fabien Potencier
6c81b6df3c bug #26590 Make sure form errors is valid HTML (Nyholm)
This PR was merged into the 3.4 branch.

Discussion
----------

Make sure form errors is valid HTML

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

Using `<div>` and `<ul>` in a `<label>` is not valid HTML. This PR uses `<span>`s instead and some Bootstrap 4 classes to make it look just like before.

Commits
-------

5dcaaadb5e Make sure form errors is valid HTML
2018-03-18 20:24:00 +01:00
Fabien Potencier
2fb2ed0220 bug #26567 [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore (fancyweb)
This PR was merged into the 2.7 branch.

Discussion
----------

[DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore

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

Discussion and explanations in the linked issue https://github.com/symfony/symfony/issues/26543

Commits
-------

f656dc2082 [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
2018-03-18 20:21:19 +01:00
Fabien Potencier
ceffe76a77 feature #26564 [HttpFoundation] deprecate call to Request::getSession() when Request::hasSession() returns false (fmata)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] deprecate call to Request::getSession() when Request::hasSession() returns false

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

Commits
-------

4110d57da1 [HttpFoundation] deprecate call to Request::getSession() when Request::hasSession() returns false
2018-03-18 20:19:04 +01:00
Fabien Potencier
2c838f94b3 feature #26408 Readd 'form_label_errors' block to disable errors on form labels (birkof)
This PR was merged into the 3.4 branch.

Discussion
----------

Readd 'form_label_errors' block to disable errors on form labels

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes <!-- 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| License       | MIT

Re-added **form_label_errors** block on bootstrap 4 form themes.
You can disable errors shown on form labels by simply extend bootstrap4 layout and empty **form_label_errors** block. See below:
```
{% use "bootstrap_4_layout.html.twig" %}

{# Disable errors shown on form labels #}
{% block form_label_errors %}{% endblock form_label_errors %}
```
Block previously removed [here](b375957c8b (diff-62cb2a10f5a37db0e87e3bd81609b17dR186)) by @nicolas-grekas.
cc @Nyholm

Commits
-------

5b4354f46c Readd 'form_label_errors' block to disable errors on form labels
2018-03-18 20:12:33 +01:00
Philipp Wahala
973c5ec995 [FrameworkBundle] Use a::b notation in ControllerTrait docblock 2018-03-18 18:57:30 +01:00
Nyholm
d8f3de91d5 Make sure we always render errors. Eventhough labels are disabled 2018-03-18 15:50:20 +01:00
Nyholm
5dcaaadb5e Make sure form errors is valid HTML 2018-03-18 15:29:46 +01:00
Gabriel Ostrolucký
2b3c37a2d8 Make ProgressBar::setMaxSteps public
This is useful in cases when target of tracking
changes its size during progress advancement.
2018-03-18 12:42:09 +01:00
Gabriel Ostrolucký
44008c4047
[Validator] Fix docblock of ClassMetadata#members
Structure of this array is in reality <string, array<int, PropertyMetadata>>, so MemberMetadata is 2 levels deep in this array, instead of one
2018-03-17 23:42:44 +01:00
Fabien Potencier
0cfc00e717 feature #25456 [Console] Make pretty the box style table (maidmaid)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Console] Make pretty the `box` style table

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

The console component is the 2nd most popular Symfony component with 70M of downloads. I think such composant has to provide faultless tables, with perfect management of borders, especially since the new `box` style table has been merged (cf https://github.com/symfony/symfony/pull/25301).

![screenshot from 2017-12-12 18-47-34](https://user-images.githubusercontent.com/4578773/33876488-6e1dc81c-df71-11e7-924f-d5e8078d957f.png)

Commits
-------

41f52b3a09 Make pretty the `box` style table
2018-03-17 08:08:46 -07:00
Florent Mata
4110d57da1 [HttpFoundation] deprecate call to Request::getSession() when Request::hasSession() returns false 2018-03-17 16:02:11 +01:00
Gabriel Ostrolucký
f36cfd4fc8
[HttpKernel] Allow generators in registerBundle 2018-03-17 13:20:09 +01:00
Dany Maillard
41f52b3a09 Make pretty the box style table 2018-03-17 18:56:16 +10:00
Kévin Dunglas
acc20fc755
[BrowserKit] Fix cookie path handling when $domain is null 2018-03-16 19:29:50 +01:00
Fabien Potencier
1390529b0f minor #26566 [BrowserKit] Improves CookieJar::get (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[BrowserKit] Improves CookieJar::get

| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

* change a call to `substr` + `strlen` to a single `strpos`

Commits
-------

57993143a9 [BrowserKit] Improves CookieJar::get
2018-03-16 11:26:57 -07:00
Thomas Calvet
f656dc2082 [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore 2018-03-16 17:35:29 +01:00
Kévin Dunglas
57993143a9
[BrowserKit] Improves CookieJar::get 2018-03-16 17:11:50 +01:00
Kévin Dunglas
4ac5d3c315
[BrowserKit] Fix Cookie's PHPDoc 2018-03-16 16:11:23 +01:00
Nicolas Grekas
3a3f7b6532 minor #26545 [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        |n/a

Commits
-------

0c62f65 [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
2018-03-16 11:33:23 +01:00
Nicolas Grekas
56856da3a1 bug #26356 [FrameworkBundle] HttpCache is not longer abstract (lyrixx)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle] HttpCache is not longer abstract

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

---

I don't really know why this class was abstract in the first place.
But it's not needed. A fresh symfony 4 application can use this class
directly without extending it.

Commits
-------

4d075da [FrameworkBundle] HttpCache is not longer abstract
2018-03-16 11:14:54 +01:00
Nicolas Grekas
5cf0a2ea8f feature #26499 [FrameworkBundle] Allow fetching private services from test clients (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] Allow fetching private services from test clients

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

With this PR, `$client->getContainer()` returns a special container that gives access to private services as if they were public.

Tests derived from `WebTestCase` and `KernelTestCase` can access this special container by using the new `static::$container` property.

Commits
-------

a840809 [FrameworkBundle] Allow fetching private services from test clients
2018-03-16 10:51:38 +01:00
Nicolas Grekas
e317879246 minor #26490 [DomCrawler] Improve the sprintf() call in selectButton() (dunglas)
This PR was squashed before being merged into the 4.1-dev branch (closes #26490).

Discussion
----------

[DomCrawler] Improve the sprintf() call in selectButton()

| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Code cleanup and minor performance improvement. Similar to #26485.

Commits
-------

a00cce6 [DomCrawler] Improve the sprintf() call in selectButton()
2018-03-16 10:50:00 +01:00
Kévin Dunglas
a00cce6e67 [DomCrawler] Improve the sprintf() call in selectButton() 2018-03-16 10:49:58 +01:00
Nicolas Grekas
9836dffbd2 minor #26544 [DomCrawler] Avoid a useless call to strtolower (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DomCrawler] Avoid a useless call to strtolower

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | yes<!-- 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

minor

Commits
-------

c77d142 [DomCrawler] Avoid a useless call to strtolower
2018-03-16 10:39:46 +01:00
Nicolas Grekas
866a1429b7 minor #26551 [Serializer] Remove const override (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Remove const override

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This public const was moved to parent class in https://github.com/symfony/symfony/pull/24816

Commits
-------

25312c4 [Serializer] Remove const override
2018-03-16 10:13:00 +01:00
okorneliuk
83c4f4c7f0 Extra line to bootstrap 3 horizontal layout
This file ends with no newline character. It won't render properly on a terminal, and it's considered a bad practice.
2018-03-16 09:39:13 +01:00
Maxime Steinhausser
25312c4671 [Serializer] Remove const override 2018-03-15 20:08:29 +01:00
Kévin Dunglas
a4ec6d3c9c
[DomCrawler] Change bad wording in ChoiceFormField::untick 2018-03-15 18:10:20 +01:00
Fabien Potencier
cab05abde3 fixed error message format 2018-03-15 09:55:45 -07:00
Kévin Dunglas
0c62f659fb
[DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue 2018-03-15 17:51:38 +01:00
Fabien Potencier
5511ddce5e feature #26509 [BrowserKit] Avoid nullable values in some Client's methods (ossinkine)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[BrowserKit] Avoid nullable values in some Client's methods

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

<!--
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 suggest the some methods in `Client` should not return `null` for simplify usage.
If you are trying to get response from client when `request` method was not called, it seems an exception should be throwed.

Commits
-------

c2c285355b Avoid nullable values in some Client's methods
2018-03-15 09:37:47 -07:00
Fabien Potencier
bf120d042b feature #26288 [FrameworkBundle] show the unregistered command warning at the end of the list command (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] show the unregistered command warning at the end of the list command

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes   <!-- 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #26203  <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | I don't think we need one.

This PR modify the warning error when you have unregistered command on the list command, it shows it at the end.

Commits
-------

99b104ab5c [FrameworkBundle] show the unregistered command warning at the end of the list command
2018-03-15 09:35:44 -07:00
Fabien Potencier
912c7e12f1 minor #26417 [Console] Improved rendering of optional arguments in command synopsis (AnrDaemon)
This PR was squashed before being merged into the 4.1-dev branch (closes #26417).

Discussion
----------

[Console] Improved rendering of optional arguments in command synopsis

Current rendering:
```
  build [options] [--] [<file>] [<output-dir>] [<packages>]...
```
Fixed (and actually correct) rendering:
```
  build [options] [--] [<file> [<output-dir> [<packages>...]]]
```

Also dropped duplicating required array-type argument. There's just no need for that, it only confuses the reader.

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

Optional arguments can not be independent, in general.  Neither the argument parser allows that.

Commits
-------

938012f0ea [Console] Improved rendering of optional arguments in command synopsis
2018-03-15 09:32:50 -07:00
AnrDaemon
938012f0ea [Console] Improved rendering of optional arguments in command synopsis 2018-03-15 09:32:49 -07:00
Fabien Potencier
a33db13121 feature #26520 Added some HTML5 features to the Symfony Profiler (javiereguiluz)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Added some HTML5 features to the Symfony Profiler

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

Some of these changes are invisible to end-users, but others may be nice tweaks:

1) Times now display full details when you hover them:

![log-time](https://user-images.githubusercontent.com/73419/37395211-ff9acfe6-2775-11e8-9ba5-37470dc0dc38.png)

2) The "profile search" results are now better aligned:

### Before

![before](https://user-images.githubusercontent.com/73419/37395252-177e3ef4-2776-11e8-97d2-d013eb3f22fa.gif)

### After

![after](https://user-images.githubusercontent.com/73419/37395255-1ad02b62-2776-11e8-99af-93e777d0a0d1.gif)

3) The "profile search" form now validates URLs and HTTP Status numbers:

![search-filter](https://user-images.githubusercontent.com/73419/37395295-35799bb0-2776-11e8-96dc-bd979298a7b3.png)

I've decided to not use the new and recommended HTML5 `datetime-local` input type for "From" and "Until" fields because support is still poor in desktop browsers.

Commits
-------

547076e3ea Added some HTML5 features to the Symfony Profiler
2018-03-15 09:24:56 -07:00
Kévin Dunglas
c77d1428e8
[DomCrawler] Avoid a useless call to strtolower 2018-03-15 17:07:34 +01:00
Gocha Ossinkine
c2c285355b Avoid nullable values in some Client's methods 2018-03-15 18:50:24 +05:00
Grégoire Pineau
4d075da934 [FrameworkBundle] HttpCache is not longer abstract 2018-03-15 10:35:06 +01:00
Nicolas Grekas
3e999880ed minor #26423 [DomCrawler] minor performance improvement (dunglas)
This PR was squashed before being merged into the 4.1-dev branch (closes #26423).

Discussion
----------

[DomCrawler] minor performance improvement

| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

eead301 [DomCrawler] minor performance improvement
2018-03-14 17:32:59 +01:00
Kévin Dunglas
eead301224 [DomCrawler] minor performance improvement 2018-03-14 17:32:56 +01:00
Amrouche Hamza
99b104ab5c
[FrameworkBundle] show the unregistered command warning at the end of the list command 2018-03-14 12:19:56 +01:00
Javier Eguiluz
547076e3ea Added some HTML5 features to the Symfony Profiler 2018-03-14 10:51:38 +01:00
Jean Ragouin
5d7b13110b Update Client.php 2018-03-13 09:46:24 -05:00
amcastror
77e643d0ba [PhpUnitBridge] Ability to use different composer.json file 2018-03-13 07:34:32 -05:00
Fabien Potencier
8f4a0b61c5 bug #26443 [Fix][3.4][HttpFoundation] Fix the updating of timestamp in the MemcachedSessionHandler (Alessandro Loffredo)
This PR was merged into the 3.4 branch.

Discussion
----------

[Fix][3.4][HttpFoundation] Fix the updating of timestamp in the MemcachedSessionHandler

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

Conditions: Symfony 3.4, PHP7 and sessions handled over memcache.

Apparently `memcached::touch()` returns `false` on a subsequent call with the same parameters. Since `updateTimestamp` is used in `AbstractSessionHandler::write()`

```
public function write($sessionId, $data)
    {
        if (\PHP_VERSION_ID < 70000 && $this->prefetchData) {
            $readData = $this->prefetchData;
            $this->prefetchData = null;

            if ($readData === $data) {
                return $this->updateTimestamp($sessionId, $data);
            }
        }
...
```

the result is that `write()` will return `false` on **any subsequent request within the same second** causing the following error:

```
HP Fatal error:  Uncaught Symfony\Component\Debug\Exception\ContextErrorException: Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in Unknown:0
Stack trace:
#0 [internal function]: Symfony\Component\Debug\ErrorHandler->handleError(2, 'session_write_c...', 'Unknown', 0, NULL)
#1 [internal function]: session_write_close()
#2 {main}
  thrown in Unknown on line 0
```

Can be reproduced on `symfony/skeleton:3.4` adding the following code to `public/index.php` and performing two consecutive requests:
```
$session = $kernel->getContainer()->get('session');
$session->set("foo", "bar");
```

Commits
-------

d007469877 fix the updating of timestamp in the MemcachedSessionHandler
2018-03-13 07:32:20 -05:00
Kévin Dunglas
6ca8b4beeb [DomCrawler] FormField: remove an useless return statement 2018-03-13 07:30:05 -05:00
Fabien Potencier
ebfcab3759 minor #26421 [Config] Add characters to the regex (DavidPrevot)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] Add characters to the regex

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

Commits
-------

dff88d44be [Config] Add characters to the regex
2018-03-13 07:27:50 -05:00
Fabien Potencier
f77db05895 bug #26400 [Config] ReflectionClassResource check abstract class (andrey1s)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] ReflectionClassResource check abstract class

generate Signature
update hash methods `ServiceSubscriberInterface::getSubscribedServices` and `EventSubscriberInterface::getSubscribedEvents` if the class is not abstract

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26459, #26501
| License       | MIT

Commits
-------

e85151483c [Config] ReflectionClassResource check abstract ServiceSubscriberInterface and EventSubscriberInterface
2018-03-13 07:22:24 -05:00
Fabien Potencier
ffd088a38f bug #26433 [DomCrawler] extract(): fix a bug when the attribute list is empty (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DomCrawler] extract(): fix a bug when the attribute list is empty

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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 files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

028c9f2366 [DomCrawler] extract(): fix a bug when the attribute list is empty
2018-03-13 07:19:21 -05:00
Nicolas Grekas
a840809e5d [FrameworkBundle] Allow fetching private services from test clients 2018-03-13 12:50:01 +01:00
andrey1s
e85151483c [Config] ReflectionClassResource check abstract ServiceSubscriberInterface and EventSubscriberInterface 2018-03-12 22:05:25 +01:00
Maxime Steinhausser
c429fa0826 [Console] Fix tests 2018-03-11 21:41:16 +01:00
Fabien Potencier
7ff71b548b minor #26465 Default deleteFileAfterSend() to true (nowendwell)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Default deleteFileAfterSend() to true

This should default to true when called since there is only one option.

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

<!--
* Defaults deleteFileAfterSend() to true
-->

Commits
-------

1de6f738ef Default deleteFileAfterSend() to true
2018-03-11 13:21:30 -05:00
Fabien Potencier
2655496eba bug #26041 Display the Welcome Page when there is no homepage defined (javiereguiluz)
This PR was squashed before being merged into the 3.4 branch (closes #26041).

Discussion
----------

Display the Welcome Page when there is no homepage defined

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

In 3.4 we added a trick to display the Welcome Page when the user browses `/` and there are no routes defined. However, when using the `website-skeleton` (which is what most newcomers use ... and they are the ones that mostly need the "Welcome Page") the premise about *"no routes are defined"* is never true and the Welcome Page is never shown (see https://github.com/symfony/symfony-docs/issues/9178 for one of the multiple error reports we've received).

So, I propose to make this change to always define the "Welcome Page" as the fallback:

* If no routes are defined for `/`, the Welcome Page is displayed.
* If there is a route defined for `/`, this code will never be executed because it's the last condition of the routing matcher.

Commits
-------

5b0d9340d7 Display the Welcome Page when there is no homepage defined
2018-03-11 13:19:37 -05:00
Javier Eguiluz
5b0d9340d7 Display the Welcome Page when there is no homepage defined 2018-03-11 13:19:35 -05:00
Roland Franssen
6a5f071bff [DI] Remove dead dumper check 2018-03-11 17:41:28 +01:00
Kévin Dunglas
e2ab1a47d2
[DomCrawler] Improve the sprintf() call in selectLink() 2018-03-11 10:04:59 +01:00
Gabriel Ostrolucký
e8df759f21 Make KernelInterface docblock more fit for bundle-less environment 2018-03-10 23:35:42 +01:00
Fabien Potencier
009b4d216e feature #26398 [WebProfilerBundle] Display the missing translation panel by default (javiereguiluz)
This PR was squashed before being merged into the 4.1-dev branch (closes #26398).

Discussion
----------

[WebProfilerBundle] Display the missing translation panel by default

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

Display the "Missing Translations" panel by default ... except if there are no missing translations.

Commits
-------

15fe686a58 [WebProfilerBundle] Display the missing translation panel by default
2018-03-10 15:12:02 -06:00
Javier Eguiluz
15fe686a58 [WebProfilerBundle] Display the missing translation panel by default 2018-03-10 15:12:00 -06:00
Fabien Potencier
febc09617c feature #23409 [Security] AuthenticationUtils::getLastUsername() return type inconsistency (vudaltsov)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Security] AuthenticationUtils::getLastUsername() return type inconsistency

Always return `string`, never `null` according to the `@return` annotation tag.

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

Alternatively, string return might be nullable:

```php
return null === $session ? null : $session->get(Security::LAST_USERNAME);
```

Is test needed for this change?

Commits
-------

743692c3fd AuthenticationUtils::getLastUsername()` now always returns a string.
2018-03-10 14:27:06 -06:00
Antoine Makdessi
9ca6d62f6c Fix command description display 2018-03-10 14:01:48 -06:00
Valentin
743692c3fd AuthenticationUtils::getLastUsername()` now always returns a string. 2018-03-10 22:15:45 +03:00
Fabien Potencier
e0f79f69be minor #26467 Add UsernameNotFoundException declaration to refreshUser(). (umulmrum)
This PR was squashed before being merged into the 4.1-dev branch (closes #26467).

Discussion
----------

Add UsernameNotFoundException declaration to refreshUser().

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

Symfony\Component\Security\Core\User\UserProviderInterface::refreshUser() does not declare that implementations may throw a UsernameNotFoundException, although a) it makes sense, as the user could have been deleted since the last load, and b) the ContextListener already handles the UsernameNotFoundException. So it looks like someone thought of this, but simply forgot the annotation.

Unsure if this is a bugfix or a feature, but as it doesn't change executed code, master should be soon enough.

Commits
-------

f7a0c46338 Add UsernameNotFoundException declaration to refreshUser().
2018-03-10 12:27:29 -06:00
Stefan Kruppa
f7a0c46338 Add UsernameNotFoundException declaration to refreshUser(). 2018-03-10 12:27:28 -06:00
Fabien Potencier
b0bbdefbdb Merge branch '2.7' into 2.8
* 2.7:
  Php Inspections (EA Ultimate): address some of one-time used local variables
  [Intl] Load locale aliases to support alias fallbacks
  [CssSelector] Fix CSS identifiers parsing - they can start with dash
2018-03-10 12:19:36 -06:00
Vladimir Reznichenko
f16d99ecfa Php Inspections (EA Ultimate): address some of one-time used local variables 2018-03-10 10:27:05 +01:00
Christian Flothmann
86fe18116c reword some deprecation messages 2018-03-09 18:46:25 +01:00
Jakub Zalas
c202a373c3
bug #26452 [Intl] Load locale aliases to support alias fallbacks (jakzal)
This PR was squashed before being merged into the 2.7 branch (closes #26452).

Discussion
----------

[Intl] Load locale aliases to support alias fallbacks

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

For example, `zh_TW` is an alias to `zh_Hant_TW`. Without aliases,` zh_TW` would fall back to `zh` (which is incorrect). With aliases loaded, `zh_TW` will fall back properly to `zh_Hant_TW`.

Judging by git history this has never worked.

```php
\Locale::setDefault('zh'); dump(Intl::getRegionBundle()->getCountryName('AD'));
\Locale::setDefault('zh_TW'); dump(Intl::getRegionBundle()->getCountryName('AD'));
\Locale::setDefault('zh_Hant_TW'); dump(Intl::getRegionBundle()->getCountryName('AD'));
```

Before:

```
"安道尔"
"安道尔"
"安道爾"
```

After:

```
"安道尔"
"安道爾"
"安道爾"
```

All tests are passing, including those from the `intl-data` group.

Commits
-------

1debf79430 [Intl] Load locale aliases to support alias fallbacks
2018-03-09 11:28:42 +00:00
Jakub Zalas
1debf79430
[Intl] Load locale aliases to support alias fallbacks 2018-03-09 11:28:20 +00:00
Ben Miller
1de6f738ef
Default deleteFileAfterSend() to true
This should default to true when called since there is only one option.
2018-03-08 16:27:46 -08:00
Lukas Kahwe Smith
0beb64a77c
fix regression when extending the Container class without a constructor
regression introduced in c026ec63e3 (diff-f7b23d463cba27ac5e4cb677f2be7623R985)
2018-03-08 10:22:06 +01:00
Jakub Kulhan
16e86bc0c0 [CssSelector] Fix CSS identifiers parsing - they can start with dash 2018-03-08 09:22:32 +01:00
Alessandro Loffredo
d007469877 fix the updating of timestamp in the MemcachedSessionHandler 2018-03-07 14:52:09 +01:00
Kévin Dunglas
028c9f2366
[DomCrawler] extract(): fix a bug when the attribute list is empty 2018-03-06 23:27:05 +01:00