Commit Graph

1281 Commits

Author SHA1 Message Date
Nicolas Grekas
20ecf91d52 feature #24180 [Routing] Add PHP fluent DSL for configuring routes (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Add PHP fluent DSL for configuring routes

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

If we add a PHP DSL for DI config (#23834), we must have a similar one for routing. Here it is. See fixtures.

So, you always start with a `RoutingConfigurator $routes`, which allows you to:
```php
$routes->add($name, $path); // adds a route
$routes->import($resource, $type = null, $ignoreErrors = false); // imports routes
$routes->collection($name = ''); // starts a collection, all *names* might be prefixed
```

then
- for "import" and "collection", you can `->prefix($path)`;
- for "add" and "collection", you can fluently "add" several times;
- for "collection" you add sub"`->collection()`";
- and on all, you can configure the route(s) with:
```php
->defaults(array $defaults)
->requirements(array $requirements)
->options(array $options)
->condition($condition)
->host($pattern)
->schemes(array $schemes)
->methods(array $methods)
->controller($controller)
```

Commits
-------

f433c9a [Routing] Add PHP fluent DSL for configuring routes
2017-09-20 15:01:12 +02:00
Nicolas Grekas
f433c9a79d [Routing] Add PHP fluent DSL for configuring routes 2017-09-20 08:48:50 +02:00
Nicolas Grekas
4b31b47f08 Merge branch '3.3' into 3.4
* 3.3:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
  [Filesystem] mirror - fix copying content with same name as source/target.
  Removed unnecessary getDefinition() call.
  .php_cs.dist - simplify config
  [WebProfilerBundle] fixed TemplateManager when using Twig 2 without compat interfaces
2017-09-15 12:12:22 +02:00
Nicolas Grekas
ebbcb7b1be Merge branch '2.8' into 3.3
* 2.8:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
  [Filesystem] mirror - fix copying content with same name as source/target.
  .php_cs.dist - simplify config
  [WebProfilerBundle] fixed TemplateManager when using Twig 2 without compat interfaces
2017-09-15 12:08:59 +02:00
Nicolas Grekas
6f924755a6 Merge branch '2.7' into 2.8
* 2.7:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
2017-09-15 11:59:38 +02:00
SpacePossum
3e90138214 [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction 2017-09-15 11:46:57 +02:00
Nicolas Grekas
005cf6b463 Merge branch '3.3' into 3.4
* 3.3:
  Fix travis php7.0
  Add support to environment variables APP_ENV/DEBUG in KernelTestCase
  [Routing] Cleanup apache fixtures
2017-09-13 13:45:41 +02:00
Nicolas Grekas
f1ab3b28ac [Routing] Cleanup apache fixtures 2017-09-12 18:00:24 +02:00
Fabien Potencier
f46d324d63 Merge branch '3.3' into 3.4
* 3.3:
  fixed CS
  fixed CS
2017-09-11 14:23:16 -07:00
Fabien Potencier
ceae3bf16c fixed CS 2017-09-11 14:23:01 -07:00
Fabien Potencier
8cb614df9f Merge branch '3.3' into 3.4
* 3.3:
  [CS] Apply phpdoc_annotation_without_dot
  bumped Symfony version to 3.3.10
  updated VERSION for 3.3.9
  updated CHANGELOG for 3.3.9
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Remove `protected_to_private` rule.
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 13:45:17 -07:00
Fabien Potencier
e844b640de Merge branch '2.8' into 3.3
* 2.8:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:43:11 -07:00
Fabien Potencier
4e1c65c6f9 Merge branch '2.7' into 2.8
* 2.7:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:39:16 -07:00
Dariusz
7a97b49436 [CS] Apply phpdoc_annotation_without_dot 2017-09-11 13:37:52 -07:00
Fabien Potencier
00d959c933 [Routing] added the possibility to define a prefix for all routes of a controller 2017-08-29 15:38:20 -07:00
Oleg Voronkovich
06bbee862f [Routing] Use "controller" keyword for configuring routes controllers 2017-08-16 18:25:34 +02:00
Nicolas Grekas
6c1a5e1560 Merge branch '3.3' into 3.4
* 3.3:
  Removed useless argument $definition
  Fix comment
  [Config] Fix checking class existence freshness
  bumped Symfony version to 3.3.7
  updated VERSION for 3.3.6
  updated CHANGELOG for 3.3.6
  Bump minimal PHP version to ^5.5.9|>=7.0.8
2017-08-03 11:34:20 +02:00
Guilhem Niot
b63c55c72c [Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS 2017-08-03 11:25:34 +02:00
Nicolas Grekas
2282a6f895 Bump minimal PHP version to ^5.5.9|>=7.0.8 2017-07-29 23:54:42 +02:00
Nicolas Grekas
4a3b3bef03 Merge branch '3.3' into 3.4
* 3.3:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS
  [DI] Fix test
  [Cache] Handle unserialization failures for Memcached
  Remove unused prop + added @deprecated
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
  Router: allow HEAD method to be defined first
  [WebProfilerBundle] Display trace and context in the logger profiler
  Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-26 08:46:38 +02:00
David Badura
52e2821597 Router: allow HEAD method to be defined first 2017-07-21 19:43:13 +02:00
Tobias Schultze
4c1fdd4edf [Routing] also add matched params for redirect due to trailing slash 2017-07-11 08:35:47 +02:00
Arturs Vonda
dc3f7a9ebd [Routing] Add matched and default parameters to redirect responses 2017-07-06 17:17:23 +03:00
Christian Flothmann
411d9fa7a1 Merge branch '3.3' into 3.4
* 3.3: (64 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  Fix Predis client cluster with pipeline
  [Dotenv] Test load() with multiple paths
  [Console] Fix catching exception type in QuestionHelper
  Improved the exception page when there is no message
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Validator] replace hardcoded service id
  [Routing] Fix XmlFileLoader exception message
  [DI] Dedup tags when using instanceof/autoconfigure
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  fixed CS
  [WebProfilerBundle] Fix the icon for the Cache panel
  [WebServerBundle] Fix router script path and check existence
  ...
2017-06-24 11:47:31 +02:00
Christian Flothmann
22723dafd4 Merge branch '3.2' into 3.3
* 3.2: (42 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  [Console] Fix catching exception type in QuestionHelper
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Routing] Fix XmlFileLoader exception message
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  fixed bad merge
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  ...
2017-06-24 11:29:48 +02:00
Christian Flothmann
80b114e66b Merge branch '2.8' into 3.2
* 2.8: (40 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  return fallback locales whenever possible
  [Console] Fix catching exception type in QuestionHelper
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Routing] Fix XmlFileLoader exception message
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  [Translation][FrameworkBundle] Fix resource loading order inconsistency reported in #23034
  [Filesystem] added workaround in Filesystem::rename for PHP bug
  ...
2017-06-23 08:35:45 +02:00
Fabien Potencier
be6af2e944 Merge branch '2.7' into 2.8
* 2.7:
  [Routing] Fix XmlFileLoader exception message
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  [Translation][FrameworkBundle] Fix resource loading order inconsistency reported in #23034
  [Filesystem] added workaround in Filesystem::rename for PHP bug
  Add tests for ResponseCacheStrategy to document some more edge cases
  [HttpFoundation] added missing docs
  fixes #21606
  [VarDumper] fixes
  [Security] fix switch user _exit without having current token
2017-06-20 16:27:56 -07:00
Fabien Potencier
71b61b04a1 minor #23222 [Routing] Fix XmlFileLoader exception message (voronkovich)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Fix XmlFileLoader exception message

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

When an `XmlFileLoader` encounters an unknown tag it throws an exception with message like `Unknown tag "foo" used in file "bar". Expected "default", "requirement" or "option".`. A proper message should be `Unknown tag "foo" used in file "bar". Expected "default", "requirement", "option"  or "condition".`

Commits
-------

f6a94cb56f [Routing] Fix XmlFileLoader exception message
2017-06-19 07:02:36 -07:00
Oleg Voronkovich
f6a94cb56f [Routing] Fix XmlFileLoader exception message 2017-06-18 21:08:05 +03:00
Fabien Potencier
f392282984 bug #22636 [Routing] Expose request in route conditions, if needed and possible (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #22636).

Discussion
----------

[Routing] Expose request in route conditions, if needed and possible

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

given

```
/**
 * @Route("/", name="homepage", condition="request.isXmlHttpRequest()")
 */
```

```
$ app/console route:match /
```

before

![image](https://cloud.githubusercontent.com/assets/1047696/25716808/b9ab518e-3100-11e7-8b59-21351b5c14ca.png)

after

![image](https://cloud.githubusercontent.com/assets/1047696/25716833/d08065fc-3100-11e7-9462-987b2c6eaa26.png)

Commits
-------

016e976691 [Routing] Expose request in route conditions, if needed and possible
2017-06-14 13:57:27 -07:00
Roland Franssen
016e976691 [Routing] Expose request in route conditions, if needed and possible 2017-06-14 13:57:25 -07:00
Nicolas Grekas
c8cf42bcbb Merge branch '3.3' into 3.4
* 3.3:
  [TwigBundle] Add Doctrine Cache to dev dependencies
  [Yaml] Fix linting yaml with constants as keys
  [Routing] Revert the change in [#b42018] with respect to Routing/Route.php
2017-06-14 09:34:46 +02:00
Dan Wilga
f09893bed4 [Routing] Revert the change in [#b42018] with respect to Routing/Route.php 2017-06-13 10:11:59 -07:00
Guilhem Niot
c2f796fa15 Automatically enable the routing annotation loader 2017-06-07 12:20:52 +02:00
Nicolas Grekas
068f8d1341 Merge branch '3.3' into 3.4
* 3.3:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [Di] Remove closure-proxy arguments
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:54:06 +02:00
Nicolas Grekas
4ad0dbf584 Merge branch '3.2' into 3.3
* 3.2:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:51:43 +02:00
Fabien Potencier
69f1578d8c Merge branch '3.3' into 3.4
* 3.3: (31 commits)
  Using FQ name for PHP_VERSION_ID
  [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument
  Fix CacheCollectorPass priority
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  [Routing] Allow GET requests to be redirected. Fixes #23004
  [DI] Deal with inlined non-shared services
  [Cache] Ignore missing annotations.php
  [DI] Autowiring exception thrown when inlined service is removed
  Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available
  Harden the debugging of Twig filters and functions
  Fixing a bug where an autowiring exception was thrown even when that service was removed
  Remove extra arg in call to TraceableAdapter::start()
  Support unknown compiler log format
  [Config] Allow empty globs
  Fix decorating TagAware adapters in dev
  [Profiler] Fix clicking on links inside toggle
  [Profiler] Fix text selection on exception pages
  bumped Symfony version to 3.3.1
  updated VERSION for 3.3.0
  updated CHANGELOG for 3.3.0
  ...
2017-06-01 14:02:15 -07:00
Fabien Potencier
60b89bb67f Merge branch '3.2' into 3.3
* 3.2:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 3.2.10
  updated VERSION for 3.2.9
  updated CHANGELOG for 3.2.9
  bumped Symfony version to 2.8.22
  updated VERSION for 2.8.21
  updated CHANGELOG for 2.8.21
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 14:01:25 -07:00
Fabien Potencier
2c57bf20ad Merge branch '2.8' into 3.2
* 2.8:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 2.8.22
  updated VERSION for 2.8.21
  updated CHANGELOG for 2.8.21
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 14:00:24 -07:00
Fabien Potencier
bd62b148db Merge branch '2.7' into 2.8
* 2.7:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 13:52:29 -07:00
Fabien Potencier
f91a020b84 Using FQ name for PHP_VERSION_ID 2017-06-01 13:44:56 -07:00
Frank de Jonge
71d4e366a9 [Routing] Allow GET requests to be redirected. Fixes #23004 2017-06-01 11:46:06 +02:00
Fabien Potencier
683b236625 minor #22885 [3.4] Allow 4.* deps (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Allow 4.* deps

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

This is implementing option 3 as described in #22756.
See #22769 for corresponding PR on 2.8: everything goes well and this allows catching a few more potential mistakes.

Commits
-------

c3e1646af8 [3.4] Allow 4.* deps
2017-05-25 16:27:00 -07:00
Nicolas Grekas
e2689d42fc Merge branch '3.3' into 3.4
* 3.3:
  [DI] prepare for signature change in 4.0
  [DI] Add missing deprecation on Extension::getClassesToCompile
  [Routing] remove an unused routing fixture
  [Yaml] fix multiline block handling
  [WebProfilerBundle] Fix sub-requests display in time profiler panel
  [FrameworkBundle] Handle project dir in cache:clear command
  [WebServerBundle] Mark ServerCommand as internal
  [DI] Fix autowire error for inlined services
  Close PHP code in phpt file
  [Profiler][VarDumper] Fix searchbar css when in toolbar
  Prevent auto-registration of UserPasswordEncoderCommand
  [Process] Fixed incorrectly escaping arguments on Windows when inheritEnvironmentVariables is set to false
  avoid double blanks while rendering form attributes
  use getProjectDir() when possible
  [PhpUnitBridge] add a changelog file
  [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator
2017-05-24 13:37:21 +02:00
Nicolas Grekas
feaf5c987e Merge branch '3.2' into 3.3
* 3.2:
  [Routing] remove an unused routing fixture
  [WebProfilerBundle] Fix sub-requests display in time profiler panel
  [PhpUnitBridge] add a changelog file
2017-05-24 13:35:23 +02:00
Nicolas Grekas
c3e1646af8 [3.4] Allow 4.* deps 2017-05-24 11:02:43 +02:00
Christian Flothmann
6f67221129 [Routing] remove an unused routing fixture
This was initially removed in #13361 and accidentally added again
in #11394.
2017-05-24 00:01:29 +02:00
Kévin Dunglas
bcc408cfad Allow individual bridges, bundles and components to be used with 4.0 2017-05-18 14:56:12 +02:00
Fabien Potencier
7b59412301 updated version to 3.4 2017-05-17 18:21:40 +02:00
Nicolas Grekas
388e4b3389 [DI] Make tagged abstract services throw earlier 2017-04-13 15:45:25 +02:00