This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src
Fabien Potencier e756135f64 feature #12960 [FrameworkBundle] Container parameters in Route#condition (nikita2206)
This PR was squashed before being merged into the 2.7 branch (closes #12960).

Discussion
----------

[FrameworkBundle] Container parameters in Route#condition

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

Adds ability to use parameters in route conditions like you can use them in container definitions:

```php
contact:
    path:     /contact
    defaults: { _controller: AcmeDemoBundle:Main:contact }
    condition: "request.headers.get('User-Agent') matches '%allowed_user_agents%'"
```

As you could see replacement of the placeholder happens before ExpressionLanguage will tokenize and compile the expression so it looks kinda ad-hoc and primitive. This means a BC break for us, because some of conditions out there that had percentage symbol might be invalid now, f.e.: `10%var_name%2`- without the patch this will be currently compiled to `10 % $var_name % 2`, with the patch it will try to replace `%var_name%` with a parameter. The same goes for percentage symbols inside string literals.

This PR is a different implementation of #12869 which is I think is too overcomplicated for this feature.

Commits
-------

505e474 [FrameworkBundle] Container parameters in Route#condition
2015-01-16 23:05:28 +01:00
..
Symfony feature #12960 [FrameworkBundle] Container parameters in Route#condition (nikita2206) 2015-01-16 23:05:28 +01:00