Commit Graph

29469 Commits

Author SHA1 Message Date
Mathieu Piot
c8914f591e Add a data_help method in Form 2018-03-23 15:53:01 +01:00
Grégoire Pineau
fc303a8d9f [Workflow] Fixed default parameters 2018-03-23 15:16:51 +01:00
Grégoire Pineau
838548c54f Finished implementation of TransitionException 2018-03-23 11:28:40 +01:00
Andrew Tch
9fa4f794b0 implemented TransitionException to be thrown instead of Logic exception 2018-03-23 11:17:24 +01:00
Samuel ROZE
2bcf93db2d Remove the default transport if no serializer 2018-03-23 09:57:11 +00:00
Fabien Potencier
4bbdf06c10 feature #23831 [VarDumper] Introduce a new way to collect dumps through a server dumper (ogizanagi, nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[VarDumper] Introduce a new way to collect dumps through a server dumper

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- see comment below -->
| Bug fix?      | no
| New feature?  | yes <!-- 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 | #22987 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo <!--highly recommended for new features-->

Could also be interesting as alternate solution for #23442.

Inspired by the [`ServerLogHandler`](https://github.com/symfony/symfony/pull/21080) and @nicolas-grekas's [comment](https://github.com/symfony/symfony/pull/22987#issuecomment-305791102) in #22987.

---

## Description

This PR introduces a new `server:dump` command available in the `VarDumper` component.
Conjointly with a new `ServerDumper` data dumper, it allows to send serialized `Data` clones to a single centralized server, in charge of dumping them on CLI output, or in an file in HTML format.

## Showcase

### HTTP calls

For instance, when working on an API and dumping something, you might end up with a mix of your response and the CLI dumped version of the data you asked:

```php
class HelloController extends AbstractController
{
    /**
     * @Route("/hello")
     */
    public function hello(Request $request, UserInterface $user)
    {
        dump($request->attributes, $user);

        return JsonResponse::create([
            'status' => 'OK',
            'message' => "Hello {$user->getUsername()}"
        ]);
    }
}
```

<img width="732" alt="screenshot 2017-08-08 a 16 44 24" src="https://user-images.githubusercontent.com/2211145/29077731-0b2152d6-7c59-11e7-99dd-2d060a906d48.PNG">

You might even get the HTML dump version [under some conditions](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php#L146-L157).

Dumping to a server allows collecting dumps in a separate place:

<!--![server-dumper-http-to-cli-output](https://user-images.githubusercontent.com/2211145/29077977-8ace19ce-7c59-11e7-998e-ee9c49e67958.gif)-->

![server-dump-http-to-cli](https://user-images.githubusercontent.com/2211145/29226044-dcc95f12-7ed0-11e7-8343-40aeb7b18dd5.gif)

~⚠️ By swallowing the previous dumpers output, the dump data collector is not active when running the dump server. Disable swallowing if you want both.~ ➜ Dumps are still collected in the profiler thanks to f24712effc9fab1163c0053e2a0a0d5cc4f6473e

### CLI calls

The best probably is (to me) that you can also debug CLI applications...

![server-dump-cli](https://user-images.githubusercontent.com/2211145/29225951-84e29098-7ed0-11e7-8067-abaa9c50d169.gif)

<!--![server-dumper-cli-to-cli-output](https://user-images.githubusercontent.com/2211145/29078261-1eb950ea-7c5a-11e7-94ee-aa3ae3bf7fb0.gif)-->

...and get HTML formatted dumps:

![server-dumper-cli-to-html-output](https://user-images.githubusercontent.com/2211145/30784609-d7dc19b8-a158-11e7-9b11-88ae819cfcca.gif)

<!--![server-dump-cli-to-html](https://user-images.githubusercontent.com/2211145/29225866-2b5675e4-7ed0-11e7-98eb-339611bd94a7.gif)-->

<!--![server-dumper-cli-to-html-output](https://user-images.githubusercontent.com/2211145/29078247-17e33e5c-7c5a-11e7-94f7-47de6774e0e8.gif)-->

hence, benefit from all the features of this format (collapse, search, ...)

### HTML output at a glance

<img width="831" alt="screenshot 2017-08-11 a 19 28 25" src="https://user-images.githubusercontent.com/2211145/29225513-eae349f2-7ece-11e7-9861-8cda9e80ba7f.PNG">

The HTML output benefits from all the `HtmlDumper` features and contains extra informations about the context (sources, requests, command line, ...). It doesn't aim to replace the profiler for HTTP calls with the framework, but is really handy for CLI apps or by wiring it in your own web app, out of the framework usage.

### CLI output at a glance

<img width="829" alt="screenshot 2017-08-11 a 19 52 57" src="https://user-images.githubusercontent.com/2211145/29225482-c24afe18-7ece-11e7-8e83-d019b0d8303e.PNG">

## Usage within the framework

### Config

For instance, in your `config_dev.yml`:

```yml
#config_dev.yml
debug:
    server_dump: true
```

or in your `config.yml`:

```yml
#config.yml
debug:
    server_dump: '%kernel.debug%'
```

~~The configuration also allows to set a `host` option, but there is already a sensible default value (`tcp://0.0.0.0:9912`) so you don't have to deal with it.~~ Since b002175, in case you want to change the default host value used, simply use the `VAR_DUMPER_SERVER` env var.

When the server is running, all dumps are collected by the server and previous dumpers ones are "swallowed" ~~by default. If you want both to collect dumps on the server AND keep previous dumpers on regular outputs, you can disable swallowing:~~

<!--
```yml
debug:
    server_dump:
        swallow: false
```
-->

When the server isn't running or in case of failure to send the data clones to the server, the server dumper will delegates to the configured wrapped dumper, so dumps are displayed and collected as usual.

### Running the server

```bash
bin/console server:dump [--format=cli|html]
```

#### Options

- ~~The `output` option defaults to `null` which will display dumps on CLI. It accepts a file path in which dumps will be collected in HTML format.~~
- The `format` option allows to switch format to use. For instance, use the `html` format and redirect the output to a file in order to open it in your browser and inspect dumps in HTML format.
- ~~The default `host` value is the same as the one configured under the `debug.server_dump.host` config option, so you don't have to deal with it in most cases.~~
    Since b002175, in case you want to change the default host value used, simply use the `VAR_DUMPER_SERVER` env var:

    ```bash
    VAR_DUMPER_SERVER=0.0.0.0:9204 bin/console server:dump
    ```

## Manual wiring

If you want to wire it yourself in your own project or using it to inspect dumps as html before the kernel is even boot for instance:

```php
$host = 'tcp://0.0.0.0:9912'; // use null to read from the VAR_DUMPER_SERVER env var
$cloner = new VarCloner();
$dumper = new ServerDumper($host, new CliDumper());

VarDumper::setHandler(function ($var) use ($dumper, $cloner) {
    $dumper->dump($cloner->cloneVar($var));
});
```

## Create your own server app

The component already provides a default server app by means of the `ServerDumpCommand`, but
 you could also build your own by using the `DumpServer`:

```php
$host = 'tcp://0.0.0.0:9912'; // use null to read from the VAR_DUMPER_SERVER env var

$server = new DumpServer($host);

$server->start();

$server->listen(function (Data $data, array $context, $clientId) {
    // do something
});
```

Commits
-------

138dad6440 [VarDumper] Some tweaks after Nicolas' commit & ServerDumperPlaceholderCommand
088c52ed70 [VarDumper] Review config to use debug.dump_destination & tweak data collector
3db14045d4 [VarDumper] Introduce a new way to collect dumps through a server dumper
2018-03-23 10:18:50 +01:00
Maxime Steinhausser
138dad6440 [VarDumper] Some tweaks after Nicolas' commit & ServerDumperPlaceholderCommand 2018-03-23 10:12:13 +01:00
Nicolas Grekas
088c52ed70 [VarDumper] Review config to use debug.dump_destination & tweak data collector
(cherry picked from commit 602b9a8)
2018-03-23 10:11:10 +01:00
Maxime Steinhausser
3db14045d4 [VarDumper] Introduce a new way to collect dumps through a server dumper 2018-03-23 10:11:09 +01:00
Christian Flothmann
7fd4d74493 [Routing] fix tests 2018-03-23 09:14:09 +01:00
Fabien Potencier
54305d669e feature #26220 [HttpFoundation] Use parse_str() for query strings normalization (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] Use parse_str() for query strings normalization

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

Follow up of #26214 and #26202

The current normalization logic is both too loose and too broad: it changes the order of recursive data structures, while not normalizing keys.
Since the normalization logic varies by query string parser, I'd like to propose a logic that exactly matches the native PHP one, which is exposed to userland via `parse_str()`. Using this, we accurately remove all useless information, while preserving all the meaningful one.

(The change in `overrideGlobals()` is a bug fix to me btw, the current logic breaks the interpretation of legitimate query strings.)

Commits
-------

513353644b [HttpFoundation] Use parse_str() for query strings normalization
2018-03-23 09:03:49 +01:00
Fabien Potencier
e157dedc6a feature #24411 [Messenger] Add a new Messenger component (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #24411).

Discussion
----------

[Messenger] Add a new Messenger component

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

As discussed in #24326. This PR is to help going forward with the discussions of having a Message component.

# Resources

| What | Where
| --- | ---
| Documentation | [In the PR](https://github.com/sroze/symfony/blob/add-message-component/src/Symfony/Component/Message/README.md)
| Demo | [In `sroze/symfony-demo:message-component-demo`](https://github.com/sroze/symfony-demo/compare/message-component-demo)
| [php-enqueue](https://github.com/php-enqueue/enqueue-dev) adapter | 1. Source: [In `sroze/enqueue-bridge`](https://github.com/sroze/enqueue-bridge) _(to be moved as `symfony/enqueue-bridge` I guess)_<br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-enqueue`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-enqueue)
| [Swarrot](https://github.com/swarrot/swarrot) adapter | **Outdated adapter, waiting for stabilization** 1. Source: [In `sroze/swarrot-bridge`](https://github.com/sroze/swarrot-bridge) _(to be moved as `symfony/swarrot-bridge` I guess)_<br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-swarrot`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-swarrot)
| [HTTP](https://github.com/sroze/message-http-adapter) adapter | **Outdated adapter, waiting for stabilization** 1. Source: [In `sroze/message-http-adapter`](https://github.com/sroze/message-http-adapter) <br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-http-adapter`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-http-adapter)
| Web profiler integration | _In the pull-request_

# Important points

1. **Tests are not in the PR as they were written in PhpSpec & Behat.** If we decide to go forward with this approach, I'll translate them to PHPUnit.
2. The aim is not to solve all the message/queuing problems but provide a good, simple and extensible message bus for developers.
3. The communication with the actual AMQP/API brokers is down to the adapters for now. Not sure if we need to ship some by default or not 🤔

I guess that this would replace #23842 & #23315.

# Changes from the proposals

Based on the comments, a few changes have been made from the proposal.

1. `MessageProducer`s have been renamed to `MessageSender`s
2. `MessageConsumer`s have been renamed to `MessageReceiver`s

Commits
-------

c9cfda990b [Messenger] Add a new Messenger component
2018-03-23 09:01:57 +01:00
Samuel ROZE
c9cfda990b [Messenger] Add a new Messenger component 2018-03-23 09:01:52 +01:00
Fabien Potencier
acf49e9d85 feature #22150 [Serializer] Added a ConstraintViolationListNormalizer (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] Added a ConstraintViolationListNormalizer

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

---

It seems logical to me that Symfony is able to serialise natively some very common Symfony data structure. (and requested by @nicolas-grekas & @javiereguiluz )

Usage example (from symfony/symfony-demo):

```php
    /**
     * @Route("", name="api_blog_new")
     * @Method("POST")
     * @Security("is_granted('ROLE_ADMIN')")
     */
    public function newAction(Request $request)
    {
        $data = $request->getContent();

        $post = $this->get('serializer')->deserialize($data, Post::class, 'json', ['groups' => ['post_write']]);

        $post->setAuthor($this->getUser());

        $violations = $this->get('validator')->validate($post);

        $post->setSlug($this->get('slugger')->slugify($post->getTitle()));

        if (count($violations) > 0) {
            $repr = $this->get('serializer')->serialize($violations, 'json');

            return JsonResponse::fromJsonString($repr, 400);
        }

        $this->getDoctrine()->getManager()->persist($post);
        $this->getDoctrine()->getManager()->flush();

        $repr = $this->get('serializer')->serialize($post, 'json', ['groups' => ['post_read']]);

        return JsonResponse::fromJsonString($repr);
    }
```

Commits
-------

2a35d09f53 [Serializer] Added a ConstraintViolationListNormalizer
2018-03-23 08:59:18 +01:00
Robin Chalas
7eae6afe49 feature #26639 [SecurityBundle] Added an alias from RoleHierarchyInterface to security.role_hierarchy (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[SecurityBundle] Added an alias from RoleHierarchyInterface to security.role_hierarchy

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

It's needed for autowirering

---

Note: I'm not sure if this is a bug fix or a new feature.

Commits
-------

886b8a6 [SecurityBundle] Added an alias from RoleHierarchyInterface to security.role_hierarchy
2018-03-23 02:03:39 +01:00
Grégoire Pineau
886b8a6e29 [SecurityBundle] Added an alias from RoleHierarchyInterface to security.role_hierarchy 2018-03-22 17:50:26 +01:00
Nicolas Grekas
1ad45962df bug #26600 [Routing] Fixed the importing of files using glob patterns that match multiple resources (skalpa)
This PR was squashed before being merged into the 3.4 branch (closes #26600).

Discussion
----------

[Routing] Fixed the importing of files using glob patterns that match multiple resources

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

This fixes the import of resources specified using glob patterns in `XmlFileLoader` and `YamlFileLoader`.

@nicolas-grekas This supersedes #25633 that's been in limbo since December despite your comments, so I decided to take care of it as I need this to work. I took care of the two loaders that are affected, and added tests.

Commits
-------

948b4cf [Routing] Fixed the importing of files using glob patterns that match multiple resources
2018-03-22 16:22:13 +01:00
Pascal Luna
948b4cfe3e [Routing] Fixed the importing of files using glob patterns that match multiple resources 2018-03-22 16:22:11 +01:00
ismail1432
f276989b48 [Ldap] cast to string when checking empty passwords 2018-03-22 16:20:30 +01:00
Nicolas Grekas
2faaf11e03 bug #26626 [WebProfilerBundle] use the router to resolve file links (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[WebProfilerBundle] use the router to resolve file links

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

Commits
-------

2cfc573 [WebProfilerBundle] use the router to resolve file links
2018-03-22 16:03:55 +01:00
Nicolas Grekas
95fd81b5d8 [DI] deprecate TypedReference::canBeAutoregistered() and getRequiringClass() 2018-03-22 15:55:20 +01:00
Nicolas Grekas
9131bd1c4b Merge branch '4.0'
* 4.0:
  [DI] Dont tell about autoregistration in strict autowiring mode
  [DI] Cleanup remainings from autoregistration
  [Process] Remove a useless cast
  [PHPunit] suite variable should be used
2018-03-22 14:45:58 +01:00
Nicolas Grekas
0c8ca6acdb Merge branch '3.4' into 4.0
* 3.4:
  [DI] Dont tell about autoregistration in strict autowiring mode
  [PHPunit] suite variable should be used
2018-03-22 14:42:36 +01:00
Nicolas Grekas
07512bbd8f bug #26634 [DI] Cleanup remainings from autoregistration (nicolas-grekas)
This PR was merged into the 4.0 branch.

Discussion
----------

[DI] Cleanup remainings from autoregistration

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

Commits
-------

74afff8 [DI] Cleanup remainings from autoregistration
2018-03-22 14:39:20 +01:00
Nicolas Grekas
5e922db4de [DI] Dont tell about autoregistration in strict autowiring mode 2018-03-22 12:44:08 +01:00
Nicolas Grekas
74afff8888 [DI] Cleanup remainings from autoregistration 2018-03-22 11:33:18 +01:00
Grégoire Pineau
2a35d09f53 [Serializer] Added a ConstraintViolationListNormalizer 2018-03-22 10:57:52 +01:00
Fabien Potencier
bbeca51171 feature #26445 [Serializer] Ignore comments when decoding XML (q0rban)
This PR was squashed before being merged into the 4.1-dev branch (closes #26445).

Discussion
----------

[Serializer] Ignore comments when decoding XML

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

Previously, if the first line of XML was a comment, that would be used as the root node of the decoded XML. This work strips comments from decoded XML by default, but also allows for customizing which XML node types are ignored during decoding. The first two commits in this PR contain tests only to prove the existence of this "bug".

Commits
-------

f6760d3899 [Serializer] Ignore comments when decoding XML
2018-03-22 08:38:23 +01:00
James Sansbury
f6760d3899 [Serializer] Ignore comments when decoding XML 2018-03-22 08:38:21 +01:00
Fabien Potencier
7262c5973d feature #26284 [Routing] allow no-slash root on imported routes (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] allow no-slash root on imported routes

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

With this change, a collection is imported, its root can have no slash appended. e.g.:

```yaml
import:
    resource: ...
    trailing_slash_on_root: false
```

Works also for XML and PHP-DSL.

Commits
-------

5a98515242 [Routing] allow no-slash root on imported routes
2018-03-22 08:27:57 +01:00
Fabien Potencier
2349e977ff bug #26621 [Form] no type errors with invalid submitted data types (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] no type errors with invalid submitted data types

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

Commits
-------

4217cc1348 no type errors with invalid submitted data types
2018-03-22 08:23:40 +01:00
Indra Gunawan
4e515e1f54 [Validator] sync validator translation id 2018-03-22 08:16:09 +01:00
Nicolas Grekas
2cfc57315e [WebProfilerBundle] use the router to resolve file links 2018-03-21 20:24:29 +01:00
Kévin Dunglas
2d5ce0dd2a
[Process] Remove a useless cast 2018-03-21 20:07:03 +01:00
Christian Flothmann
4217cc1348 no type errors with invalid submitted data types 2018-03-21 18:01:56 +01:00
Nicolas Grekas
5a98515242 [Routing] allow no-slash root on imported routes 2018-03-21 16:28:08 +01:00
Nicolas Grekas
513353644b [HttpFoundation] Use parse_str() for query strings normalization 2018-03-21 14:11:49 +01:00
Fabien Potencier
07a2f6cef4 feature #26092 [Workflow] Add a MetadataStore to fetch some metadata (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Add a MetadataStore to fetch some metadata

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

---

This is an attempt to fix #23257. I first started to implement
`Ẁorkflow::getMetadata()`, `Transition::getMetadata()` and
`Place::getMetadata()`. **BUT**, there are no `Place` class. For now it's just a
`string`. So dealing with BC is a nightmare.

So I tried to find another way to fix the issue. [This
comment](https://github.com/symfony/symfony/issues/23257#issuecomment-315551397)
summary well the two options. But this PR is (will be) a mix of theses 2
options.

First it will be possible to configure the workflow/metadata like this:

```yaml
blog_publishing:
    supports:
        - AppBundle\Entity\BlogPost
    metada:
         label: Blog publishing
         description: Manages blog publishing
    places:
        draft:
            metadata:
                 description: Blog has just been created
                 color: grey
        review:
            metadata:
                 description: Blog is waiting for review
                 color: blue
    transitions:
        to_review:
            from: draft
            to: review
            metadata:
                label: Submit for review
                route: admin.blog.review
```

I think is very good for the DX. Simple to understand.

All metadata will live in a `MetadataStoreInterface`. If metadata are set via
the configuration (workflows.yaml), then we will use the
`InMemoryMetadataStore`.

Having a MetadataStoreInterface allow user to get dynamic value for a place /
transitions. It's really flexible. (But is it a valid use case ?)

Then, to retrieve these data, the end user will have to write this code:

```php
public function onReview(Event $event) {
    $metadataStore = $event->getWorkflow()->getMetadataStore();
    foreach ($event->getTransition()->getTos() as $place) {
        $this->flashbag->add('info', $metadataStore->getPlaceMetadata($place)->get('description'));
    }
}
```

Note: I might add some shortcut to the Event class

or in twig:

```jinja
{% for transition in workflow_transitions(post) %}
    <a href="{{ workflow_metadata_transition(post, route) }}">
         {{ workflow_metadata_transition(post, transition) }}
   </a>
{% endfor %}
```

---

WDYT ?

Should I continue this way, or should I introduce a `Place` class (there will be
so many deprecation ...)

Commits
-------

bd1f2c8583 [Workflow] Add a MetadataStore
2018-03-21 11:17:02 +01:00
Fabien Potencier
a6cd5b93ce minor #26615 [Workflow] removed bc break (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] removed bc break

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

Commits
-------

685695d7b1 [Workflow] removed bc break
2018-03-21 11:15:10 +01:00
Grégoire Pineau
bd1f2c8583 [Workflow] Add a MetadataStore 2018-03-21 11:06:23 +01:00
Grégoire Pineau
685695d7b1 [Workflow] removed bc break 2018-03-21 11:04:09 +01:00
Fabien Potencier
14ab56e6fc feature #26121 [FrameworkBundle] feature: add the ability to search a route (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] feature: add the ability to search a route

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #26033
| License       | MIT
| Doc PR        | symfony/symfony-docs#9236

This add the ability to search a route in the debug:router command.
![img_3271](https://user-images.githubusercontent.com/3451634/36034017-e60cbfda-0db2-11e8-841a-60bc75b0b631.jpeg)

Commits
-------

ef0df02afc [FrameworkBundle] feature: add the ability to search a route
2018-03-21 10:59:31 +01:00
Grégoire Pineau
60730666ab [FrameworkBundle] Partially revert HttpCache is not longer abstract (4d075da) 2018-03-21 10:56:17 +01:00
Amrouche Hamza
ef0df02afc
[FrameworkBundle] feature: add the ability to search a route 2018-03-21 10:40:34 +01:00
Fabien Potencier
c559fa3c8f minor #26614 [Routing] use American English (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] use American English

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

2004092dae [Routing] use American English
2018-03-21 10:38:51 +01:00
Christian Flothmann
2004092dae [Routing] use American English 2018-03-21 10:10:50 +01:00
Fabien Potencier
a1b1a44a7b feature #25197 [FrameworkBundle][TwigBridge] make csrf_token() usable without forms (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle][TwigBridge] make csrf_token() usable without forms

| 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 Twig function `csrf_token()` is currently only registered when the
Form component is installed. However, this function is also useful, for
example, when creating simple login forms for which you do not need the
full Form component.

Commits
-------

709efa30fc make csrf_token() usable without forms
2018-03-21 10:10:25 +01:00
Daniel Bannert
8b8541e680
[PHPunit] suite variable should be used 2018-03-21 00:37:33 +01:00
Fabien Potencier
d4bfbb8152 feature #25631 [DI] Service decoration: autowire the inner service (dunglas)
This PR was squashed before being merged into the 4.1-dev branch (closes #25631).

Discussion
----------

[DI] Service decoration: autowire the inner service

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

Try to automatically inject the decorated service.

Before:

```yaml
services:
    _defaults:
        autowire: true

    App\Foo: ~
    App\FooDecorator:
        decorates: App\Foo
        arguments: {$decorated: @App\FooDecorator.inner}
```

After:

```yaml
services:
    _defaults:
        autowire: true

    App\Foo: ~
    App\FooDecorator:
        decorates: App\Foo
```

To trigger the autowiring, the following conditions must be met:

* the decorator is autowired
* there is only one argument in the constructor of the type of the decorated service

Commits
-------

24876f2adc [DI] Service decoration: autowire the inner service
2018-03-20 19:23:32 +01:00
Kévin Dunglas
24876f2adc [DI] Service decoration: autowire the inner service 2018-03-20 19:23:30 +01:00
Fabien Potencier
5605d2fab6 feature #26076 [Workflow] Add transition blockers (d-ph, lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Add transition blockers

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

Commits
-------

2b8faffb41 [Workflow] Cleaned the transition blocker implementations
4d10e10096 [Workflow] Add transition blockers
2018-03-20 19:21:12 +01:00
Grégoire Pineau
2b8faffb41 [Workflow] Cleaned the transition blocker implementations 2018-03-20 19:12:40 +01:00
Fabien Potencier
25c2f91877 bug #26337 [Finder] Fixed leading/trailing / in filename (lyrixx)
This PR was merged into the 2.7 branch.

Discussion
----------

[Finder] Fixed leading/trailing / in filename

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

---

Without this patch, we go this:

```
--- Expected
+++ Actual
@@ @@
 Array (
-    0 => '/tmp/symfony_finder/foo bar'
-    1 => '/tmp/symfony_finder/foo/bar.tmp'
-    2 => '/tmp/symfony_finder/test.php'
-    3 => '/tmp/symfony_finder/test.py'
+    0 => '///tmp/symfony_finder///foo bar'
+    1 => '///tmp/symfony_finder///foo/bar.tmp'
+    2 => '///tmp/symfony_finder///test.php'
+    3 => '///tmp/symfony_finder///test.py'
 )
```

Commits
-------

e17a63457a [Finder] Fixed leading/trailing / in filename
2018-03-20 17:58:38 +01:00
Michele Locati
f7f81892a0
Fix check of color support on Windows
If the stream is redirected, the script should behave the same on Windows
and on POSIX systems.
2018-03-20 15:50:33 +01:00
Fabien Potencier
a5dbc68cd4 feature #24363 [Console] Modify console output and print multiple modifyable sections (pierredup)
This PR was squashed before being merged into the 4.1-dev branch (closes #24363).

Discussion
----------

[Console] Modify console output and print multiple modifyable sections

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

Add support to create different output sections for the console output.
Each section is it's own 'stream' of output, where the output can be modified (even if there are other output after it). This allows you to modify previous output in the console, either by appending new lines, modifying previous lines or clearing the output. Modifying a sections output doesn't affect the output after that or in other sections.

Some examples of what can be done:

**Overwriting content in a previous section:**

Code:

```php
$section1 = $output->section();
$section2 = $output->section();

$section1->writeln("<comment>Doing something</comment>\n");
usleep(500000);
$section2->writeln('<info>Result of first operation</info>');
usleep(500000);

$section1->overwrite("<comment>Doing something else</comment>\n");
usleep(500000);
$section2->writeln('<info>Result of second operation</info>');
usleep(500000);

$section1->overwrite("<comment>Finishing</comment>\n");
usleep(500000);
$section2->writeln('<info>Last Result</info>');
```

Result:
![overwrite-append](https://user-images.githubusercontent.com/144858/30975030-769f2c46-a471-11e7-819f-c3698b43f0af.gif)

**Multiple Progress Bars:**

Code:

```php
$section1 = $output->section();
$section2 = $output->section();

$progress = new ProgressBar($section1);
$progress2 = new ProgressBar($section2);

$progress->start(100);
$progress2->start(100);

$c = 0;
while (++$c < 100) {
    $progress->advance();

    if ($c % 2 === 0) {
        $progress2->advance(4);
    }

    usleep(500000);
}
```

Result:
![multiple-progress](https://user-images.githubusercontent.com/144858/30975119-b63222be-a471-11e7-89aa-a555cdf3d2e0.gif)

**Modifying content of a table & updating a progress bar:**

Code:

```php
$section1 = $output->section();
$section2 = $output->section();

$progress = new ProgressBar($section1);
$table = new Table($section2);

$table->addRow(['Row 1']);
$table->render();

$progress->start(5);

$c = 0;
while (++$c < 5) {
    $table->appendRow(['Row '.($c + 1)]);

    $progress->advance();

    usleep(500000);
}

$progress->finish();
$section1->clear();
```

Result:
![progress-table](https://user-images.githubusercontent.com/144858/30975176-e332499c-a471-11e7-9d4f-f58b464a53c2.gif)

**Example with Symfony Installer:***

Before:
![sf-installer-old](https://user-images.githubusercontent.com/144858/30975291-40f22106-a472-11e7-8836-bc39139c2d30.gif)

After:
![sf-installer](https://user-images.githubusercontent.com/144858/30975302-4a00acf4-a472-11e7-83ba-88ea9d0f0f3f.gif)

TODO:
- [x] Add unit tests

Commits
-------

9ec51a1797 [Console] Modify console output and print multiple modifyable sections
2018-03-20 15:41:21 +01:00
Pierre du Plessis
9ec51a1797 [Console] Modify console output and print multiple modifyable sections 2018-03-20 15:41:20 +01:00
Grégoire Pineau
e17a63457a [Finder] Fixed leading/trailing / in filename
Without this patch, we go this:

```
--- Expected
+++ Actual
@@ @@
 Array (
-    0 => '/tmp/symfony_finder/foo bar'
-    1 => '/tmp/symfony_finder/foo/bar.tmp'
-    2 => '/tmp/symfony_finder/test.php'
-    3 => '/tmp/symfony_finder/test.py'
+    0 => '///tmp/symfony_finder///foo bar'
+    1 => '///tmp/symfony_finder///foo/bar.tmp'
+    2 => '///tmp/symfony_finder///test.php'
+    3 => '///tmp/symfony_finder///test.py'
 )
```
2018-03-20 15:14:56 +01:00
d-ph
4d10e10096 [Workflow] Add transition blockers 2018-03-20 15:09:19 +01:00
Karolis
01c9e3ce70 allow html5 compatible rendering of forms with null names 2018-03-20 09:46:09 +01:00
Fabien Potencier
1fffb8554c feature #26381 Transform both switchToXHR() and removeXhr() to xmlHttpRequest() (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Transform both switchToXHR() and removeXhr() to xmlHttpRequest()

| 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 | none   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | Will do.

See https://github.com/symfony/symfony/pull/24778#issuecomment-369879079 for more information about this.

We are switching from a possible global estate change to just only one request affected.

Commits
-------

4ed08896fa feature: transform both switchToXHR and removeXhr to a xhrRequest
2018-03-20 09:40:29 +01:00
Amrouche Hamza
4ed08896fa
feature: transform both switchToXHR and removeXhr to a xhrRequest 2018-03-20 08:54:48 +01:00
Fabien Potencier
0877bf680d bug #24401 [Form] Change datetime to datetime-local for HTML5 datetime input (pierredup)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Change datetime to datetime-local for HTML5 datetime input

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

Change the input type from datetime to datetime-local for HTML5 date input (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime)

Commits
-------

802c67c324 Change datetime input to datetime-local
2018-03-20 08:17:29 +01:00
Nicolas Grekas
98d5cf9e73 fix merge 2018-03-19 23:45:52 +01:00
Nicolas Grekas
2ca8657547 Merge branch '4.0'
* 4.0: (32 commits)
  [Form] fix tests and deps
  [Cache] Rely on mock for Doctrine ArrayCache
  [FrameworkBundle] Respect debug mode when warm up annotations
  [Console] Fix docblock of DescriptorInterface::describe
  [Config] Handle nullable node name + fix inheritdocs
  [Security] added userChecker to SimpleAuthenticationProvider
  [Debug] fix test
  Fix typo in test method name
  Fixes #26563 (open_basedir restriction in effect)
  [Debug] Reset previous exception handler ealier to prevent infinite loop
  add hint in Github pull request template
  [Validator] Fix docblock of ClassMetadata#members
  [BrowserKit] Fix cookie path handling when $domain is null
  [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
  [BrowserKit] Improves CookieJar::get
  [BrowserKit] Fix Cookie's PHPDoc
  [DomCrawler] Change bad wording in ChoiceFormField::untick
  [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
  [DomCrawler] Avoid a useless call to strtolower
  [FrameworkBundle] HttpCache is not longer abstract
  ...
2018-03-19 23:38:22 +01:00
Nicolas Grekas
1f119cc16c Merge branch '3.4' into 4.0
* 3.4: (32 commits)
  [Form] fix tests and deps
  [Cache] Rely on mock for Doctrine ArrayCache
  [FrameworkBundle] Respect debug mode when warm up annotations
  [Console] Fix docblock of DescriptorInterface::describe
  [Config] Handle nullable node name + fix inheritdocs
  [Security] added userChecker to SimpleAuthenticationProvider
  [Debug] fix test
  Fix typo in test method name
  Fixes #26563 (open_basedir restriction in effect)
  [Debug] Reset previous exception handler ealier to prevent infinite loop
  add hint in Github pull request template
  [Validator] Fix docblock of ClassMetadata#members
  [BrowserKit] Fix cookie path handling when $domain is null
  [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
  [BrowserKit] Improves CookieJar::get
  [BrowserKit] Fix Cookie's PHPDoc
  [DomCrawler] Change bad wording in ChoiceFormField::untick
  [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
  [DomCrawler] Avoid a useless call to strtolower
  [FrameworkBundle] HttpCache is not longer abstract
  ...
2018-03-19 23:35:49 +01:00
Nicolas Grekas
34d5b5eb99 Merge branch '2.8' into 3.4
* 2.8: (29 commits)
  [Console] Fix docblock of DescriptorInterface::describe
  [Config] Handle nullable node name + fix inheritdocs
  [Security] added userChecker to SimpleAuthenticationProvider
  [Debug] fix test
  Fix typo in test method name
  Fixes #26563 (open_basedir restriction in effect)
  [Debug] Reset previous exception handler ealier to prevent infinite loop
  add hint in Github pull request template
  [Validator] Fix docblock of ClassMetadata#members
  [BrowserKit] Fix cookie path handling when $domain is null
  [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
  [BrowserKit] Improves CookieJar::get
  [BrowserKit] Fix Cookie's PHPDoc
  [DomCrawler] Change bad wording in ChoiceFormField::untick
  [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
  [DomCrawler] Avoid a useless call to strtolower
  [FrameworkBundle] HttpCache is not longer abstract
  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-19 23:32:39 +01:00
Nicolas Grekas
ed028fc4f4 [Form] fix tests and deps 2018-03-19 23:30:33 +01:00
Nicolas Grekas
e4973ad8dc [Cache] Rely on mock for Doctrine ArrayCache 2018-03-19 23:12:11 +01:00
Fabien Potencier
4cc8cf62a1 feature #26449 Make ProgressBar::setMaxSteps public (ostrolucky)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Make ProgressBar::setMaxSteps public

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

This is useful in cases when target of tracking changes its size during progress advancement. My exact use case is showing progress of file upload for file which is still being downloading.

Commits
-------

2b3c37a2d8 Make ProgressBar::setMaxSteps public
2018-03-19 22:16:45 +01:00
Nicolas Grekas
677d9aa8be Merge branch '2.7' into 2.8
* 2.7:
  [Console] Fix docblock of DescriptorInterface::describe
2018-03-19 22:13:58 +01:00
Fabien Potencier
28f4662935 bug #26513 [FrameworkBundle] Respect debug mode when warm up annotations (Strate)
This PR was squashed before being merged into the 3.4 branch (closes #26513).

Discussion
----------

[FrameworkBundle] Respect debug mode when warm up annotations

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

Propagate current debug mode to the annotations reader. Without thi, warmup is useless with debug mode, because timetsamps are not written to cache.

Commits
-------

f3ec39616c [FrameworkBundle] Respect debug mode when warm up annotations
2018-03-19 22:13:45 +01:00
Artur Eshenbrener
f3ec39616c [FrameworkBundle] Respect debug mode when warm up annotations 2018-03-19 22:13:45 +01:00
Nicolas Grekas
af6be350e6 Merge branch '2.7' into 2.8
* 2.7:
  [Config] Handle nullable node name + fix inheritdocs
  [Security] added userChecker to SimpleAuthenticationProvider
  [Debug] fix test
  Fix typo in test method name
  Fixes #26563 (open_basedir restriction in effect)
  [Debug] Reset previous exception handler ealier to prevent infinite loop
  add hint in Github pull request template
  [Validator] Fix docblock of ClassMetadata#members
  [BrowserKit] Fix cookie path handling when $domain is null
  [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
  [BrowserKit] Improves CookieJar::get
  [BrowserKit] Fix Cookie's PHPDoc
  [DomCrawler] Change bad wording in ChoiceFormField::untick
  [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
  [DomCrawler] Avoid a useless call to strtolower
  [FrameworkBundle] HttpCache is not longer abstract
  [DomCrawler] extract(): fix a bug when the attribute list is empty
  [Config] Backport string|null api for node names
2018-03-19 22:11:56 +01:00
Tim Goudriaan
dad27b0b2a [Console] Fix docblock of DescriptorInterface::describe 2018-03-19 21:46:57 +01:00
Nicolas Grekas
7101893b51 [Routing] rename Route::getLocales() to Route::getLocalizedPaths() 2018-03-19 21:13:17 +01:00
Nicolas Grekas
7323372c2b minor #26335 [Config] Handle nullable node name + fix inheritdocs (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #26335).

Discussion
----------

[Config] Handle nullable node name + fix inheritdocs

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

Small split from #26297 that can be merged until master/4.1. Whereas the doc fixes only apply until 3.4, hence the split.

Small change regarding `getName/Path()` for not returning a `null` value anymore which violates `NodeInterface::getName/Path()`

Remainng issue left at

cd5f4105a4/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php (L381-L383)

which i tend to leave untouched across all branches for now.

Commits
-------

5c3e6a9 [Config] Handle nullable node name + fix inheritdocs
2018-03-19 21:05:12 +01:00
Roland Franssen
5c3e6a95b3 [Config] Handle nullable node name + fix inheritdocs 2018-03-19 21:05:09 +01:00
Boris Vujicic
cb9c92d065 [Security] added userChecker to SimpleAuthenticationProvider 2018-03-19 21:02:10 +01:00
Nicolas Grekas
bd49884804 bug #26569 [BrowserKit] Fix cookie path handling when $domain is null (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[BrowserKit] Fix cookie path handling when $domain is null

| 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
| License       | MIT
| Doc PR        | n/a

The bug is highlighted by the new test: there is an inconsistency in the path handling regarding if a domain is set or not. If it is set, and the cookie is set to a subpath of the passed path, the cookie is returned. However if no domain is set, it is not. This PR fixes this bug.

Commits
-------

acc20fc [BrowserKit] Fix cookie path handling when $domain is null
2018-03-19 21:00:51 +01:00
Nicolas Grekas
ee47236a4c [Debug] fix test 2018-03-19 19:37:04 +01:00
Egor Gorbachev
cc38c6bb62 Fix typo in test method name 2018-03-19 19:30:35 +01:00
Fred Cox
abc7480828 Allow "json:" env var processor to parse null values
Amend EnvVarProcessorTest to include all possible json values
2018-03-19 19:53:10 +02: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
David Prévot
44b4fc8db5 [SecurityBundle] Make extra character non mandatory in regex
The extra character was introduced in 5f9471e, and breaks the testsuite
in native php 7.2.
2018-03-05 22:53:32 -10:00
David Prévot
dff88d44be [Config] Add characters to the regex
This allow paths containing ~ and + (as used in version number in Debian
for example) to be used while running the testsuite.
2018-03-05 16:10:46 -10:00
Fabien Potencier
c83784cf2f bumped Symfony version to 4.0.7 2018-03-05 14:43:55 -08:00
Fabien Potencier
33b0481618 updated VERSION for 4.0.6 2018-03-05 14:27:01 -08:00
Fabien Potencier
d6fd5798ea bumped Symfony version to 3.4.7 2018-03-05 14:26:20 -08:00
Fabien Potencier
932c275e65 updated VERSION for 3.4.6 2018-03-05 11:41:07 -08:00
Fabien Potencier
6e80476d64 bumped Symfony version to 2.8.37 2018-03-05 11:40:00 -08:00
Fabien Potencier
af393d7663 updated VERSION for 2.8.36 2018-03-05 11:06:26 -08:00
Fabien Potencier
1616d368d9 bumped Symfony version to 2.7.44 2018-03-05 11:05:22 -08:00
Fabien Potencier
4d96c086a0 updated VERSION for 2.7.43 2018-03-05 10:32:00 -08:00
Fabien Potencier
d79c528b40 Merge branch '4.0'
* 4.0:
  fix the handling of timestamp in the MongoDBSessionHandler
  Improve the documentation of `Finder::exclude()`
  [DI] Skip resource tracking if disabled
  [WebProfilerBundle] fix wrong variable for profiler counting ajax requests
2018-03-05 10:28:38 -08:00
Fabien Potencier
fa8455aba6 Merge branch '3.4' into 4.0
* 3.4:
  Improve the documentation of `Finder::exclude()`
  [DI] Skip resource tracking if disabled
  [WebProfilerBundle] fix wrong variable for profiler counting ajax requests
2018-03-05 10:28:26 -08:00
Fabien Potencier
ab07cddf04 Merge branch '2.8' into 3.4
* 2.8:
  Improve the documentation of `Finder::exclude()`
2018-03-05 10:28:11 -08:00
Fabien Potencier
a03ae7c194 Merge branch '2.7' into 2.8
* 2.7:
  Improve the documentation of `Finder::exclude()`
2018-03-05 10:27:59 -08:00
Fabien Potencier
d65c43ba84 feature #26372 Revert "feature #24763 [Process] Allow writing portable "prepared" command lines (Simperfit)" (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Revert "feature #24763 [Process] Allow writing portable "prepared" command lines (Simperfit)"

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

This reverts commit 136408937b, reversing
changes made to e043478ba5.

As discussed in #24763 and #26344

This doens't revert the possibility to use prepared command lines. They just won't be *portable* anymore, unless special care is taken by "userland".
Ie the placeholders need to be shell-dependent: use eg `echo "$FOO"` on *nix (the double quotes *are* important), and `echo !FOO!` on Windows (no double quotes there).

Commits
-------

6a98bfa8d7 Revert "feature #24763 [Process] Allow writing portable "prepared" command lines (Simperfit)"
2018-03-05 08:20:17 -08:00
Helmut Januschka
97d9ea8269 fix the handling of timestamp in the MongoDBSessionHandler 2018-03-05 17:01:10 +01:00
Javier Eguiluz
21ee76c0ad Made the translation profiler panel more compact 2018-03-05 16:26:36 +01:00
Daniel STANCU
5b4354f46c Readd 'form_label_errors' block to disable errors on form labels 2018-03-05 15:16:24 +02:00
Matthieu Napoli
cc3084ed65
Improve the documentation of Finder::exclude() 2018-03-04 16:13:29 +01:00
Robin Chalas
0b748fac95 [DI] Skip resource tracking if disabled 2018-03-04 04:54:53 +01:00
Nicolas Grekas
710a189e83 Merge branch '2.7' into 2.8
* 2.7:
  [WebProfilerBundle] fix wrong variable for profiler counting ajax requests
2018-03-02 16:25:13 +01:00
Marin Nicolae
0fb83af015 [WebProfilerBundle] fix wrong variable for profiler counting ajax requests 2018-03-02 16:24:40 +01:00
Nicolas Grekas
a8dc953279 Merge branch '4.0'
* 4.0:
  [DI] Fix missing "id" normalization when dumping the container
  Add entry for `container.dumper.inline_class_loader` param at `UPGRADE-3.4.md` and `UPGRADE-4.0.md`
2018-03-02 15:22:00 +01:00
Nicolas Grekas
cb06d0f926 Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix missing "id" normalization when dumping the container
  Add entry for `container.dumper.inline_class_loader` param at `UPGRADE-3.4.md` and `UPGRADE-4.0.md`
2018-03-02 15:21:47 +01:00
Nicolas Grekas
6ac7b50021 bug #26355 [DI] Fix missing "id" normalization when dumping the container (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix missing "id" normalization when dumping the container

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

Commits
-------

4a5e43e [DI] Fix missing "id" normalization when dumping the container
2018-03-02 15:13:11 +01:00
Nicolas Grekas
4a5e43eae8 [DI] Fix missing "id" normalization when dumping the container 2018-03-02 14:51:21 +01:00
Nicolas Grekas
6a98bfa8d7 Revert "feature #24763 [Process] Allow writing portable "prepared" command lines (Simperfit)"
This reverts commit 136408937b, reversing
changes made to e043478ba5.
2018-03-02 13:21:49 +01:00
Nicolas Grekas
1f7b9f0fc5 feature #26223 [FrameworkBundle] Add command to delete an item from a cache pool (pierredup)
This PR was squashed before being merged into the 4.1-dev branch (closes #26223).

Discussion
----------

[FrameworkBundle] Add command to delete an item from a cache pool

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

Currently there is no way to clear a specific item from a cache pool (except programatically), the entire pool needs to be cleared.
Especially during development, when implementing caching, it is useful to delete a specific key to test functionality. Clearing the entire pool, means that everything will need to be cached again, adding unnecessary execution time.

I propose adding a new command, `cache:pool:delete` to delete a specific item from a cache pool

Commits
-------

fd43e81 [FrameworkBundle] Add command to delete an item from a cache pool
2018-03-02 13:13:05 +01:00
Pierre du Plessis
fd43e81fd7 [FrameworkBundle] Add command to delete an item from a cache pool 2018-03-02 13:13:00 +01:00
Nicolas Grekas
acb5d9f9a1 Merge branch '4.0'
* 4.0:
  [WebProfilerBundle] Fix Debug toolbar breaks app
  Use fill instead of style for svg colors
  bumped Symfony version to 4.0.6
  updated VERSION for 4.0.5
  updated CHANGELOG for 4.0.5
  bumped Symfony version to 3.4.6
  updated VERSION for 3.4.5
  updated CHANGELOG for 3.4.5
  bumped Symfony version to 2.8.36
  updated VERSION for 2.8.35
  updated CHANGELOG for 2.8.35
  [FrameworkBundle] Silence "Failed to remove directory" on cache:clear
  bumped Symfony version to 2.7.43
  updated VERSION for 2.7.42
  update CONTRIBUTORS for 2.7.42
  updated CHANGELOG for 2.7.42
2018-03-02 09:29:06 +01:00
Nicolas Grekas
1c826ca0f3 Merge branch '3.4' into 4.0
* 3.4:
  [WebProfilerBundle] Fix Debug toolbar breaks app
  Use fill instead of style for svg colors
  bumped Symfony version to 3.4.6
  updated VERSION for 3.4.5
  updated CHANGELOG for 3.4.5
  bumped Symfony version to 2.8.36
  updated VERSION for 2.8.35
  updated CHANGELOG for 2.8.35
  [FrameworkBundle] Silence "Failed to remove directory" on cache:clear
  bumped Symfony version to 2.7.43
  updated VERSION for 2.7.42
  update CONTRIBUTORS for 2.7.42
  updated CHANGELOG for 2.7.42
2018-03-02 09:28:17 +01:00
Nicolas Grekas
fe4d055bd7 Merge branch '2.8' into 3.4
* 2.8:
  [WebProfilerBundle] Fix Debug toolbar breaks app
  bumped Symfony version to 2.8.36
  updated VERSION for 2.8.35
  updated CHANGELOG for 2.8.35
  bumped Symfony version to 2.7.43
  updated VERSION for 2.7.42
  update CONTRIBUTORS for 2.7.42
  updated CHANGELOG for 2.7.42
2018-03-02 09:27:00 +01:00
Nicolas Grekas
aa8254ce2f Merge branch '2.7' into 2.8
* 2.7:
  [WebProfilerBundle] Fix Debug toolbar breaks app
  bumped Symfony version to 2.7.43
  updated VERSION for 2.7.42
  update CONTRIBUTORS for 2.7.42
  updated CHANGELOG for 2.7.42
2018-03-02 09:25:37 +01:00
Nicolas Grekas
b2df671912 feature #26341 Autoconfigure service locator tag (apfelbox)
This PR was squashed before being merged into the 4.1-dev branch (closes #26341).

Discussion
----------

Autoconfigure service locator tag

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

We will now also autoconfigure the (required) tag `container.service_locator` for all `ServiceLocator`s.

I couldn't find any integration tests for the whole list of autoconfigured core services, so I didn't add any new tests.

Commits
-------

c4b9b42 Autoconfigure service locator tag
2018-03-02 09:24:43 +01:00
Jannik Zschiesche
c4b9b4252b Autoconfigure service locator tag 2018-03-02 09:24:40 +01:00
Xavier HAUSHERR
52f187e86a [WebProfilerBundle] Fix Debug toolbar breaks app 2018-03-02 09:20:32 +01:00
Remon van de Kamp
e29677858f
Use fill instead of style for svg colors
Using style does not work when a Content Security Policy is in place,
resulting in non-styles (black) images instead of grey.
2018-03-02 09:07:37 +01:00
Fabien Potencier
6628318b29 bug #26358 [FrameworkBundle] Silence "Failed to remove directory" on cache:clear (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Silence "Failed to remove directory" on cache:clear

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

Let's improve the experience of ppl (see old linked issue). This warning is just noise to most.

Commits
-------

3ba624af9f [FrameworkBundle] Silence "Failed to remove directory" on cache:clear
2018-03-01 12:19:29 -08:00
Fabien Potencier
4b13407362 bumped Symfony version to 4.0.6 2018-03-01 12:16:32 -08:00
Fabien Potencier
173d4aea89 updated VERSION for 4.0.5 2018-03-01 11:48:35 -08:00
Fabien Potencier
b3f807cc5a bumped Symfony version to 3.4.6 2018-03-01 11:47:22 -08:00
Fabien Potencier
1ec5a562b3 updated VERSION for 3.4.5 2018-03-01 11:23:56 -08:00
Fabien Potencier
3ff74ada0d bumped Symfony version to 2.8.36 2018-03-01 11:16:54 -08:00
Fabien Potencier
fbf0d0cce1 updated VERSION for 2.8.35 2018-03-01 08:45:28 -08:00
Nicolas Grekas
3ba624af9f [FrameworkBundle] Silence "Failed to remove directory" on cache:clear 2018-03-01 15:51:10 +01:00
Fabien Potencier
31c69ec90d bumped Symfony version to 2.7.43 2018-03-01 06:32:34 -08:00
Nicolas Grekas
d1b67a561c fix test 2018-03-01 11:49:02 +01:00
Nicolas Grekas
a06f826a21 Merge branch '4.0'
* 4.0:
  [Form][WCAG] Errors sign for people that do not see colors
  [Form][WCAG] Added role=\"presentation\" on tables & removed bootstrap4 table
2018-03-01 11:22:02 +01:00
Nicolas Grekas
39dabcd5ba Merge branch '3.4' into 4.0
* 3.4:
  [Form][WCAG] Errors sign for people that do not see colors
  [Form][WCAG] Added role=\"presentation\" on tables & removed bootstrap4 table
2018-03-01 11:21:51 +01:00
Nicolas Grekas
c572e6c570 bug #26327 [Form][WCAG] Errors sign for people that do not see colors (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #26327).

Discussion
----------

[Form][WCAG] Errors sign for people that do not see colors

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

According to my friend and WCAG2 expect [Sandra](https://twitter.com/sandrability):

> The form errors is correctly encoded and works great. But visually they may be hard to see for people that do not see colors very well. Try to improve errors with an icon to make it more visual clear that an error has occurred.

![screen shot 2018-02-26 at 17 42 01](https://user-images.githubusercontent.com/1275206/36802282-c81357c6-1cb4-11e8-843c-4592e3d597f9.png)

Commits
-------

3f8cd05 [Form][WCAG] Errors sign for people that do not see colors
2018-03-01 11:20:21 +01:00
Tobias Nyholm
3f8cd05c34 [Form][WCAG] Errors sign for people that do not see colors 2018-03-01 11:20:19 +01:00
Kai Eichinger
e5734aacc6
Fix typo in test method name
In regards to 8456f3b32c (r171488418)
2018-03-01 10:56:19 +01:00
Nicolas Grekas
bacae4d2d6 bug #26326 [Form][WCAG] Added role="presentation" on tables & removed bootstrap4 table (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #26326).

Discussion
----------

[Form][WCAG] Added role="presentation" on tables & removed bootstrap4 table

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

According to my friend and WCAG2 expect [Sandra](https://twitter.com/sandrability):

> Tables works best for table data, it should not be used for doing layouts. If you really really want to use the label add `role="presentation"`. This will make screen readers to ignore the table structure which will make it easier to navigate. It will also prevent screen readers to read "row 1, column 1".
> But we should consider not using a table here.

Commits
-------

635220a [Form][WCAG] Added role=\"presentation\" on tables & removed bootstrap4 table
2018-03-01 09:50:24 +01:00
Tobias Nyholm
635220a657 [Form][WCAG] Added role=\"presentation\" on tables & removed bootstrap4 table 2018-03-01 09:50:19 +01:00
Fabien Potencier
751196e8f0 updated VERSION for 2.7.42 2018-02-28 14:53:23 -08:00
Fabien Potencier
97cee3a157 Merge branch '4.0'
* 4.0:
  [Form][WCAG] Add hidden labels on date and time fields
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
  [Form][WCAG] Fixed HTML errors
  fix merge
  [FrameworkBundle] [Console] add a warning when command is not found
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
2018-02-28 13:50:15 -08:00
Fabien Potencier
96aac17c0d Merge branch '3.4' into 4.0
* 3.4:
  [Form][WCAG] Add hidden labels on date and time fields
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
  [Form][WCAG] Fixed HTML errors
  fix merge
  [FrameworkBundle] [Console] add a warning when command is not found
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
2018-02-28 13:50:02 -08:00
Fabien Potencier
b7b6bd2605 Merge branch '2.8' into 3.4
* 2.8:
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
2018-02-28 13:49:22 -08:00
Fabien Potencier
3dd843ba7e Merge branch '2.7' into 2.8
* 2.7:
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
2018-02-28 13:47:46 -08:00
Fabien Potencier
18beaeedfd bug #26325 [Form][WCAG] Add hidden labels on date and time fields (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #26325).

Discussion
----------

[Form][WCAG] Add hidden labels on date and time fields

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License       | MIT
| Doc PR        |

According to my friend and WCAG2 expect [Sandra](https://twitter.com/sandrability):

> "Guidance texts" (my translation) on DateType and DateTimeType etc are missing. It is great that they are grouped with a "fieldset" but it will be more clear if there was a label on each select. Especially since different countries have different time and date formats. The time form is read like "00 00" and you have no idea if it is seconds, minutes or hours. You may do "guidance texts" visually hidden if you do not want to change the looks of the form. But since "month" is shorten to "Jan" instead of "January" you may want to have clear and visual guidance texts.

Commits
-------

14978e905c [Form][WCAG] Add hidden labels on date and time fields
2018-02-28 13:47:15 -08:00
Tobias Nyholm
14978e905c [Form][WCAG] Add hidden labels on date and time fields 2018-02-28 13:47:10 -08:00
Fabien Potencier
1928fafb9f feature #26330 [FORM] Fix HTML errors. (Nyholm)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FORM] Fix HTML errors.

| 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 mentioned in #26328.
Range and color do not support "required" attribute

Commits
-------

f75d8c1985 Fix HTML errors.
2018-02-28 13:42:57 -08:00
Fabien Potencier
4c98001119 feature #26334 [SecurityBundle] Deprecate switch_user.stateless config node (chalasr)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[SecurityBundle] Deprecate switch_user.stateless config node

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

unused since 4.0.

Commits
-------

5781b8f1a1 [SecurityBundle] Deprecate switch_user.stateless config node
2018-02-28 13:40:40 -08:00
Philipp Keck
b1b6093f3d Pass on previous exception in FatalThrowableError 2018-02-28 13:02:44 -08:00
Nicolas Grekas
a5f58f22d7 [Process] fix interpolation of placeholders 2018-02-28 20:33:07 +01:00
Nicolas Grekas
4ae66dc18d [Routing] Handle "_canonical_route" 2018-02-28 12:40:48 +01:00
Frank de Jonge
e32c414b04 [Routing] Implement i18n routing 2018-02-28 12:40:22 +01:00
Tobias Schultze
f9b54c5ccd [Routing] support scheme requirement without redirectable dumped matcher 2018-02-28 12:35:06 +01:00
Nicolas Grekas
2f4b867b50 [Routing] remove dead code 2018-02-28 10:36:59 +01:00
Nicolas Grekas
c794fa821b [Routing] fix typo 2018-02-28 10:29:53 +01:00
Grégoire Pineau
8f16c2e39e [Security][Profiler] Display the original expression in 'Access decision log' 2018-02-28 09:32:47 +01:00
Nicolas Grekas
4a9e5c7099 minor #26270 [WebProfilerBundle] limit ajax request to 100 and remove the last one (Simperfit)
This PR was merged into the 3.4 branch.

Discussion
----------

[WebProfilerBundle] limit ajax request to 100 and remove the last one

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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 | none fix merge
| License       | MIT

Merging back the bugfix to 3.4.

Commits
-------

33bace4 [WebProfilerBundle] limit ajax request to 100 and remove the last one
2018-02-27 19:18:46 +01:00
Roland Franssen
fe586acd92 [Config] Backport string|null api for node names 2018-02-27 17:11:57 +01:00
Robin Chalas
5781b8f1a1 [SecurityBundle] Deprecate switch_user.stateless config node 2018-02-27 15:11:07 +01:00
Tobias Nyholm
f75d8c1985
Fix HTML errors.
Range and color do not support "required" attribute
2018-02-27 10:04:56 +01:00
Fabien Potencier
b953e859b7 bug #26328 [Form][WCAG] Fixed HTML errors (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #26328).

Discussion
----------

[Form][WCAG] Fixed HTML errors

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

According to my friend and WCAG2 expect [Sandra](https://twitter.com/sandrability):

> Fix your HTML errors.

Should I fix the same issues on other forms as well? Or could someone claim that is a BC break?

Commits
-------

fe668190c8 [Form][WCAG] Fixed HTML errors
2018-02-27 08:07:15 +01:00
Tobias Nyholm
fe668190c8 [Form][WCAG] Fixed HTML errors 2018-02-27 08:07:06 +01:00
Fabien Potencier
4261b19e75 bug #26290 [FrameworkBundle] [Console][DX] add a warning when command is not found (Simperfit)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] [Console][DX] add a warning when command is not found

| 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 | none
| License       | MIT
| Doc PR        |

This PR add DX on the the console `find()` and `get()` methods when a command is not found because it has not been registered properly.

Commits
-------

efd8f7fa3a [FrameworkBundle] [Console] add a warning when command is not found
2018-02-27 08:02:49 +01:00
Nicolas Grekas
d419fd4cc8 fix merge 2018-02-26 19:35:35 +01:00
Nicolas Grekas
308e12cb59 Merge branch '4.0'
* 4.0:
  fix merge
2018-02-26 19:13:01 +01:00
Nicolas Grekas
6c32bcd77e fix merge 2018-02-26 19:12:53 +01:00
Nicolas Grekas
add5d84e8c Merge branch '4.0'
* 4.0:
  fix merge
2018-02-26 18:43:03 +01:00
Nicolas Grekas
05782adc3b Merge branch '3.4' into 4.0
* 3.4:
  fix merge
2018-02-26 18:39:40 +01:00
Nicolas Grekas
ea7a66d532 fix merge 2018-02-26 18:39:27 +01:00
Nicolas Grekas
f06fa04ff1 Merge branch '4.0'
* 4.0:
  Fix typos
  [Routing] remove useless failing mocks
  [appveyor] Workaround GitHub disabling of low versions of TLS
  Use long array syntax
  [Routing] Fix GC control of PHP-DSL
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  [WebProfilerBundle] fix test after ajax path updated
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  Update excluded_ajax_paths for sf4
  Add missing use for RoleInterface
  Add missing use of Role
  [Routing] fix CS
  add container.autowiring.strict_mode to 3.4 docs
  Set controller without __invoke method from invokable class
  [VarDumper] Fixed PHPDoc
2018-02-26 18:04:28 +01:00
Nicolas Grekas
8d9d7e7e65 Merge branch '3.4' into 4.0
* 3.4:
  Fix typos
2018-02-26 16:57:42 +01:00
Nicolas Grekas
80f993fdba Fix typos 2018-02-26 16:57:04 +01:00
Nicolas Grekas
b56674720c Merge branch '3.4' into 4.0
* 3.4:
  [Routing] remove useless failing mocks
  [appveyor] Workaround GitHub disabling of low versions of TLS
  Use long array syntax
  [Routing] Fix GC control of PHP-DSL
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  [WebProfilerBundle] fix test after ajax path updated
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  Update excluded_ajax_paths for sf4
  Add missing use for RoleInterface
  [Routing] fix CS
  add container.autowiring.strict_mode to 3.4 docs
  Set controller without __invoke method from invokable class
  [VarDumper] Fixed PHPDoc
2018-02-26 16:55:47 +01:00
Nicolas Grekas
119291883f bug #26318 [Routing] Fix GC control of PHP-DSL (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Fix GC control of PHP-DSL

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

Adding fluently in a collection is broken currently.

Commits
-------

239f2e2 [Routing] Fix GC control of PHP-DSL
2018-02-26 16:49:59 +01:00
Nicolas Grekas
68ff3d3fa2 Merge branch '2.8' into 3.4
* 2.8:
  [Routing] remove useless failing mocks
2018-02-26 16:48:52 +01:00
Nicolas Grekas
64e538e730 Merge branch '2.7' into 2.8
* 2.7:
  [Routing] remove useless failing mocks
2018-02-26 16:48:27 +01:00
Nicolas Grekas
87bbe5ef5f [Routing] remove useless failing mocks 2018-02-26 16:48:14 +01:00
Nicolas Grekas
0b86145f0b Merge branch '2.8' into 3.4
* 2.8:
  [appveyor] Workaround GitHub disabling of low versions of TLS
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  [Routing] fix CS
2018-02-26 16:46:28 +01:00
Nicolas Grekas
19d6b592f4 Merge branch '2.7' into 2.8
* 2.7:
  [appveyor] Workaround GitHub disabling of low versions of TLS
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  [Routing] fix CS
2018-02-26 16:33:21 +01:00
Nicolas Grekas
4f14fff13b bug #26312 [Routing] Don't throw 405 when scheme requirement doesn't match (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Don't throw 405 when scheme requirement doesn't match

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

Commits
-------

9d70ef0 [Routing] Don't throw 405 when scheme requirement doesn't match
2018-02-26 16:07:55 +01:00
Nicolas Grekas
04b56d6ddf [appveyor] Workaround GitHub disabling of low versions of TLS 2018-02-26 16:04:10 +01:00
Nicolas Grekas
ffb0a7a360 minor #26319 Use long array syntax (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

Use long array syntax

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

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

Commits
-------

2abb8a4 Use long array syntax
2018-02-26 15:40:03 +01:00
Roland Franssen
2abb8a4fd1 Use long array syntax 2018-02-26 15:27:04 +01:00
Nicolas Grekas
239f2e21e5 [Routing] Fix GC control of PHP-DSL 2018-02-26 14:41:42 +01:00
Fabien Potencier
52af59fd48 bug #26275 Set controller without __invoke method from invokable class (Tobion)
This PR was merged into the 3.4 branch.

Discussion
----------

Set controller without __invoke method from invokable class

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| 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 |
| License       | MIT
| Doc PR        |

Fixes one part of #25103

Commits
-------

cc68c5074e Set controller without __invoke method from invokable class
2018-02-26 05:28:34 +01:00
Nicolas Grekas
9d70ef0915 [Routing] Don't throw 405 when scheme requirement doesn't match 2018-02-25 22:38:00 +01:00
Tobias Schultze
cd5f4105a4 minor #26280 [FrameworkBundle] clarify changelog and upgrade instructions (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] clarify changelog and upgrade instructions

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

Commits
-------

a8df0aee92 clarify changelog and upgrade instructions
2018-02-25 16:08:35 +01:00
Nicolas Grekas
391b01393d [Routing] Revert throwing 405 on missed slash/scheme redirections 2018-02-25 09:34:03 +01:00
Amrouche Hamza
efd8f7fa3a
[FrameworkBundle] [Console] add a warning when command is not found 2018-02-25 09:26:30 +01:00
Amrouche Hamza
77dfc90846
[WebProfilerBundle] fix test after ajax path updated 2018-02-24 20:41:23 +01:00
Tobias Schultze
be1a3b4380 feature #26283 [Routing] Redirect from trailing slash to no-slash when possible (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] Redirect from trailing slash to no-slash when possible

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

Implemented as suggest by @Tobion in https://github.com/symfony/symfony/pull/26059#issuecomment-365071281

When a route for `/foo` exists but the request is for `/foo/`, we now redirect.
(this complements the flipped side redirection, which already exists.)

Commits
-------

69a4e94130 [Routing] Redirect from trailing slash to no-slash when possible
2018-02-24 18:49:49 +01:00
Maxim Lovchikov
f371fd8ced Fix ArrayInput::toString() for InputArgument::IS_ARRAY args 2018-02-24 16:59:02 +00:00
Houziaux mike
ce01097935 Update excluded_ajax_paths for sf4 2018-02-24 12:14:39 +01:00
Tobias Schultze
dc56a83e31 minor #26285 [FrameworkBundle] fix lowest supported Serializer version (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] fix lowest supported Serializer version

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

The `AbstractObjectNormalizer::setMaxDepthHandler()` method does not
exist before `symfony/serializer` 4.1.

Commits
-------

3b092a08ea fix lowest supported Serializer version
2018-02-24 03:18:53 +01:00
Tony Tran
05359f310f Add missing use for RoleInterface 2018-02-23 16:50:25 +01:00
Tony Tran
3cfe7d0ee3 Add missing use of Role 2018-02-23 15:40:28 +01:00
Nicolas Grekas
9587d04520 [Routing] fix CS 2018-02-23 15:02:47 +01:00
Amrouche Hamza
965e472acb
[Console] fix console test 2018-02-23 14:20:15 +01:00
Christian Flothmann
3b092a08ea fix lowest supported Serializer version
The `AbstractObjectNormalizer::setMaxDepthHandler()` method does not
exist before `symfony/serializer` 4.1.
2018-02-23 14:04:00 +01:00
Nicolas Grekas
69a4e94130 [Routing] Redirect from trailing slash to no-slash when possible 2018-02-23 13:28:39 +01:00
Fabien Potencier
f48ed85d9d minor #26274 [VarDumper] Fixed PHPDoc (lyrixx)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Fixed PHPDoc

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

Commits
-------

38ad82566a [VarDumper] Fixed PHPDoc
2018-02-23 10:06:40 +01:00
Christian Flothmann
a8df0aee92 clarify changelog and upgrade instructions 2018-02-23 09:21:43 +01:00
Tobias Schultze
cc68c5074e Set controller without __invoke method from invokable class 2018-02-23 00:30:18 +01:00
Grégoire Pineau
38ad82566a [VarDumper] Fixed PHPDoc 2018-02-22 18:29:24 +01:00