Commit Graph

53829 Commits

Author SHA1 Message Date
Fabien Potencier
2c37d6fd39 feature #40487 [Security] Remove deprecated support for passing a UserInterface implementation to Passport (wouterj)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Remove deprecated support for passing a UserInterface implementation to Passport

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

In https://github.com/symfony/symfony/pull/37846#pullrequestreview-473047140 , we agreed to have a deprecation path of only one minor release as the `Passport` feature is still experimental.

Commits
-------

99cf2a3a71 [Security] Disallow passing a UserInterface to Passport
2021-03-17 07:03:40 +01:00
Wouter de Jong
99cf2a3a71 [Security] Disallow passing a UserInterface to Passport
This was deprecated in 5.2, with a warning that support would be dropped in 5.3
(due to the experimental state).
2021-03-17 07:03:24 +01:00
Nicolas Grekas
49d23d4813 minor #40484 [DependencyInjection] accept null index in #[TaggedItem] (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[DependencyInjection] accept null index in #[TaggedItem]

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

As hinted by @stof in https://github.com/symfony/symfony/pull/40248#discussion_r595065941

Commits
-------

6d16fac703 [DI] accept null index in #[TaggedItem]
2021-03-16 20:14:20 +01:00
Nicolas Grekas
6d16fac703 [DI] accept null index in #[TaggedItem] 2021-03-16 20:13:40 +01:00
Fabien Potencier
db87d72869 feature #40443 [Security] Rename User to InMemoryUser (chalasr)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Rename User to InMemoryUser

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | Closes #26348
| License       | MIT
| Doc PR        | -

This PR aims to clarify that the `User` class should only be used by the `InMemoryUserProvider`, as documented:
c06a76c384/src/Symfony/Component/Security/Core/User/User.php (L15-L17)
It also renames `UserChecker` to `InMemoryUserChecker` because it only works with the in-memory user class:
c06a76c384/src/Symfony/Component/Security/Core/User/UserChecker.php (L31-L32)

Commits
-------

55b51d3f90 [Security] Rename User to InMemoryUser
2021-03-16 19:12:12 +01:00
Nicolas Grekas
7cc5cef1c3 feature #40468 Deprecate configuring tag names and service ids in compiler passes (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

Deprecate configuring tag names and service ids in compiler passes

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | -
| License       | MIT
| Doc PR        | -

This PR is aimed at reducing the code complexity by hardcoding the name of tags and service ids that compiler passes have to deal with.

I think making these names configurable only adds boilerplate and maintenance overhead for no benefit:
- for the practice: the need to use a pass with a renamed tag/id should be extremely rare (do yo know any?)
- for the theory: a decorating pass could still rename before/after the processing, so this use case is still supported.

Side note: I skipped updating changelog+upgrade files. This would be just noise to me (nobody uses this possibility anyway ;) )

Commits
-------

6fe82d8be7 Deprecate configuring tag names and service ids in compiler passes
2021-03-16 10:12:04 +01:00
Nicolas Grekas
5850f3d4ea Merge branch '5.2' into 5.x
* 5.2:
  [ErrorHandler] Fix error caused by `include` + open_basedir
  [FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens
  [Console] ProgressBar clears too many lines on update
  [FrameworkBundle] Exclude unreadable files when executing About command
  [Bridge\Twig] Add 'form-control-range' for range input type
  Be explicit about transparent background color of links in toolbar
  [Translation] fix test case name
  [Cache] Fix wrong namespace in test
  [DependencyInjection] Fix return type
2021-03-16 10:10:58 +01:00
Nicolas Grekas
ca06651235 Merge branch '4.4' into 5.2
* 4.4:
  [Console] ProgressBar clears too many lines on update
  [FrameworkBundle] Exclude unreadable files when executing About command
  [Bridge\Twig] Add 'form-control-range' for range input type
  Be explicit about transparent background color of links in toolbar
  [Translation] fix test case name
  [Cache] Fix wrong namespace in test
  [DependencyInjection] Fix return type
2021-03-16 10:10:13 +01:00
Nicolas Grekas
8113f10063 bug #40242 [ErrorHandler] Fix error caused by include + open_basedir (stlrnz)
This PR was submitted for the 5.x branch but it was merged into the 5.2 branch instead.

Discussion
----------

[ErrorHandler] Fix error caused by `include` + open_basedir

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

https://github.com/symfony/symfony/pull/37492 introduced the option to specify your own error template using `HtmlErrorRenderer::setTemplate('...');`

However, the implementation using `file_exists(...)` in `include` can cause an error when not setting a custom template.
> php.WARNING: Warning: file_exists(): open_basedir restriction in effect. File(assets/css/error.css) is not within the allowed path(s): (...) {"exception":"[object] (ErrorException(code: 0): Warning: file_exists(): open_basedir restriction in effect. File(assets/css/error.css) is not within the allowed path(s): (...) at ...\\vendor\\symfony\\error-handler\\ErrorRenderer\\HtmlErrorRenderer.php:355)"} []

As you can see the error is caused by checking `file_exists(...)` using relative paths in environments with a restrictive `open_basedir` policy.

The proposed solution always uses absolute paths to include errors templates (and other files).

Commits
-------

9ad7832acd [ErrorHandler] Fix error caused by `include` + open_basedir
2021-03-16 10:08:11 +01:00
stlrnz
9ad7832acd [ErrorHandler] Fix error caused by include + open_basedir 2021-03-16 10:07:47 +01:00
Nicolas Grekas
faf7269806 bug #40368 [FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens (Seldaek)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

For some reason most tokens implement getFirewallName (and the deprecated getProviderKey), but not all. This adds it to TestBrowserToken because it caused issues in my tests when upgrading to Symfony 5's `Client::loginUser()`.

I am also happy to add this to AnonymousToken but I am more worried about BC impacts there, so I left it alone for now. All other token classes implement it, so I am not sure why this isn't in TokenInterface to begin with.

Commits
-------

a4958ae7ad [FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens
2021-03-16 09:58:51 +01:00
Jordi Boggiano
a4958ae7ad [FrameworkBundle] Make the TestBrowserToken interchangeable with other tokens 2021-03-16 09:58:32 +01:00
Nicolas Grekas
a78fb1832b bug #40450 [Console] ProgressBar clears too many lines on update (danepowell)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Console] ProgressBar clears too many lines on update

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  |no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? |no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License       | MIT

The ProgressBar incorrectly calculates line lengths when updating, including non-displayable characters such as ANSI colors. This causes it to clear too many lines if the terminal width is greater than the displayed line length but less than the line length including non-displayed characters. An example of this bug in action is https://github.com/acquia/cli/issues/467

Commits
-------

2aa3df0c74 [Console] ProgressBar clears too many lines on update
2021-03-16 09:54:45 +01:00
Dane Powell
2aa3df0c74 [Console] ProgressBar clears too many lines on update 2021-03-16 09:54:32 +01:00
Nicolas Grekas
e21004d922 bug #40178 [FrameworkBundle] Exclude unreadable files when executing About command (michaljusiega)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Exclude unreadable files when executing About command

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix https://github.com/symfony/symfony/issues/39916
| License       | MIT
| Doc PR        | ~

Fix as explained in: https://github.com/symfony/symfony/issues/39916.

Tests failed looks like not releated to my changes.

Commits
-------

25f503a813 [FrameworkBundle] Exclude unreadable files when executing About command
2021-03-16 09:47:37 +01:00
Michał Jusięga
25f503a813 [FrameworkBundle] Exclude unreadable files when executing About command 2021-03-16 09:46:52 +01:00
Nicolas Grekas
73cef1553a minor #40423 [DependencyInjection] Fix return type of getSubscribedServices() (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix return type of getSubscribedServices()

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

Commits
-------

ef59c89dea [DependencyInjection] Fix return type
2021-03-16 09:36:52 +01:00
Nicolas Grekas
1e6237c717 feature #40248 [DependencyInjection] Add #[TaggedItem] attribute for defining the index and priority of classes found in tagged iterators/locators (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[DependencyInjection] Add `#[TaggedItem]` attribute for defining the index and priority of classes found in tagged iterators/locators

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Next to #39804, this PR adds a new `#[TaggedItem]` attribute that ppl can use to define the index of their service classes when they're used in tagged collections (iterators/locators.

This replaces the `public static getDefaultName()` and `getDefaultPriority()` methods that ppl could use for this purpose:
```php
#[TaggedItem(index: 'api.logger', priority: 123)]
class MyApiLogger implements LoggerInterface
{
}
```

This will ship the corresponding service at index `api.logger`, priority=123 when building locators/iterators.

Commits
-------

252f2ca1fb [DependencyInjection] Add `#[TaggedItem]` attribute for defining the index and priority of classes found in tagged iterators/locators
2021-03-16 09:24:13 +01:00
Nicolas Grekas
fcd658e6da minor #40475 Be explicit about anchor background color in profiler toolbar (bezin)
This PR was merged into the 4.4 branch.

Discussion
----------

Be explicit about anchor background color in profiler toolbar

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

Hello,

we have a project where we work with background colors on links. When we define this in our stylesheet, the Web Profiler picks these styles up due to the cascade. We added two CSS statements to the Web Profiler stylesheet to be explicit about the transparent background.

![2021-03-15 16_10_08](https://user-images.githubusercontent.com/4400435/111176325-860e8d80-85a9-11eb-82c4-7954aa01245a.png)
![2021-03-15 16_10_30](https://user-images.githubusercontent.com/4400435/111176328-86a72400-85a9-11eb-9515-280c5593a288.png)

Commits
-------

f0cac47ae7 Be explicit about transparent background color of links in toolbar
2021-03-16 09:13:06 +01:00
Nicolas Grekas
ff9c815c39 bug #40472 [Bridge\Twig] Add 'form-control-range' for range input type (Oviglo)
This PR was submitted for the 5.x branch but it was squashed and merged into the 4.4 branch instead.

Discussion
----------

[Bridge\Twig] Add 'form-control-range' for range input type

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Add 'form-control-range' for range input type for Bootstrap theme,  [see the doc](https://getbootstrap.com/docs/4.6/components/forms/#range-inputs)

Commits
-------

e73db2b1f1 [Bridge\Twig] Add 'form-control-range' for range input type
2021-03-16 09:09:07 +01:00
Oviglo
e73db2b1f1 [Bridge\Twig] Add 'form-control-range' for range input type 2021-03-16 09:08:39 +01:00
Fabien Potencier
a5a2d86929 Merge branch '5.2' into 5.x
* 5.2:
  Make async-ses required
  [RateLimiter] Fix wrong namespace in tests
2021-03-16 08:55:45 +01:00
Fabien Potencier
d9a8a05095 bug #40481 make async-ses required (jderusse)
This PR was merged into the 5.2 branch.

Discussion
----------

make async-ses required

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #40480
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

AWS S3 signature is not supported anymore, which mean the old "raw HTTP" implementation does not work anymore, and only the implementation that use "async-aws" works.

This PR move "async-aws" to the "requires" section in order to fix that.

Commits
-------

7904d0896b Make async-ses required
2021-03-16 08:52:44 +01:00
Jérémy Derussé
7904d0896b
Make async-ses required 2021-03-16 08:45:57 +01:00
Robin Chalas
55b51d3f90 [Security] Rename User to InMemoryUser 2021-03-16 00:01:28 +01:00
Robin Chalas
abf16d0f1b minor #40470 [Cache] fix test case name (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix test case name

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Should make #40468 green.

Commits
-------

e2dffea49d [Translation] fix test case name
2021-03-15 19:43:41 +01:00
Nicolas Grekas
6fe82d8be7 Deprecate configuring tag names and service ids in compiler passes 2021-03-15 19:33:21 +01:00
bezin
f0cac47ae7
Be explicit about transparent background color of links in toolbar 2021-03-15 16:12:10 +01:00
Nicolas Grekas
e2dffea49d [Translation] fix test case name 2021-03-15 13:54:07 +01:00
Nicolas Grekas
252f2ca1fb [DependencyInjection] Add #[TaggedItem] attribute for defining the index and priority of classes found in tagged iterators/locators 2021-03-15 12:58:02 +01:00
Robin Chalas
5b878a2599 minor #40465 [RateLimiter] [5.2] Fix wrong namespace in tests (chalasr)
This PR was merged into the 5.2 branch.

Discussion
----------

[RateLimiter] [5.2] Fix wrong namespace in tests

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

c620f407ba [RateLimiter] Fix wrong namespace in tests
2021-03-14 21:02:07 +01:00
Robin Chalas
bc87acdf77 minor #40464 [4.4] Fix wrong namespace in tests (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[4.4] Fix wrong namespace in tests

| Q             | A
| ------------- | ---
| Branch?       |  4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

b3759c2882 [Cache] Fix wrong namespace in test
2021-03-14 21:00:50 +01:00
Robin Chalas
c620f407ba [RateLimiter] Fix wrong namespace in tests 2021-03-14 20:33:15 +01:00
Robin Chalas
b3759c2882 [Cache] Fix wrong namespace in test 2021-03-14 20:28:18 +01:00
Robin Chalas
59e5ac5dcf Merge branch '5.2' into 5.x
* 5.2:
  [Routing] Remove unnecessary references to User class in test fixtures
2021-03-14 15:11:16 +01:00
Robin Chalas
20ebdc7003 minor #40463 [Routing] Remove unnecessary references to User class in test fixtures (chalasr)
This PR was merged into the 5.2 branch.

Discussion
----------

[Routing] Remove unnecessary references to User class in test fixtures

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

76ee9baf8e [Routing] Remove unnecessary references to User class in test fixtures
2021-03-14 15:10:51 +01:00
Robin Chalas
76ee9baf8e [Routing] Remove unnecessary references to User class in test fixtures 2021-03-14 14:53:33 +01:00
Christian Flothmann
98892f7db9 Merge branch '5.2' into 5.x
* 5.2:
  fix test
2021-03-12 14:29:20 +01:00
Christian Flothmann
088fbf7948 fix test 2021-03-12 14:28:30 +01:00
Christian Flothmann
3145fde13b Merge branch '5.2' into 5.x
* 5.2:
  [Mailer] fix lowest allowed dependencies
  Refresh original user in SwitchUserListener.
  check if templating engine supports view
  [Mime] Escape commas in address names
2021-03-12 14:21:57 +01:00
Christian Flothmann
03a9ac26bc Merge branch '4.4' into 5.2
* 4.4:
  [Mailer] fix lowest allowed dependencies
  Refresh original user in SwitchUserListener.
  check if templating engine supports view
  [Mime] Escape commas in address names
2021-03-12 14:18:39 +01:00
Christian Flothmann
58b1c61db3 minor #40455 [Mailer] fix lowest allowed dependencies (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] fix lowest allowed dependencies

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

e9f2ef211e [Mailer] fix lowest allowed dependencies
2021-03-12 14:11:54 +01:00
Christian Flothmann
e9f2ef211e [Mailer] fix lowest allowed dependencies 2021-03-12 12:23:44 +01:00
Fabien Potencier
6c0102c184 feature #40240 [Validator] Add Validation::createIsValidCallable() that returns a boolean instead of exception (wouterj)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Validator] Add Validation::createIsValidCallable() that returns a boolean instead of exception

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #36820
| License       | MIT
| Doc PR        | tbd

This adds a `Validator::createValidCallable()` (I'm very open for other name suggestions) that returns a boolean instead of exceptions. This allows usingit in places where booleans are expected, for instance in the referenced OptionsResolver case:

```php
$resolver->setAllowedValues('name', Validation::createValidCallable(
    new Assert\Length(['min' => 10 ])
));
```

Commits
-------

e731f5fda9 [Validator] Add createValidCallable() that returns a boolean
2021-03-12 09:58:03 +01:00
Fabien Potencier
93467c507e bug #39866 [Mime] Escape commas in address names (YaFou)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mime] Escape commas in address names

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #39416
| License       | MIT
| Doc PR        | --
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Never break backward compatibility (see https://symfony.com/bc).
 - Bug fixes must be submitted against the lowest maintained 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 branch 5.x.
-->

Before:
```php
$address = new Address('fabien@symfony.com', 'Fabien, Potencier');
$address->toString(); // Fabien, Potencier <fabien@symfony.com> -> Interpreted like two emails
```

After:
```php
$address = new Address('fabien@symfony.com', 'Fabien, Potencier');
$address->toString(); // "Fabien, Potencier" <fabien@symfony.com>
```

Commits
-------

39e9158999 [Mime] Escape commas in address names
2021-03-12 09:47:38 +01:00
Fabien Potencier
c487a56bf4 minor #40322 [Console] improve exception message when required argument is added after an optional one (marbul)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Console] improve exception message when required argument is added after an optional one

| Q             | A
| ------------- | ---
| Branch?       | 5.x <!-- see below -->
| Bug fix?      | no
| New feature?  | wouldn't say so, rather DX improvement <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #40302 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | n/a

Hello, this is my first contribution to Symfony Framework. It's time to pull my weight.
About the issue:
I did improve an error message to include passed argument's name and the latest optional argument's name.
![Screenshot at 2021-02-26 23-08-10](https://user-images.githubusercontent.com/79662742/109361609-8f011e80-7889-11eb-8700-cbbd388c0109.png)
An author also mentioned "But which command?", however this is shown twice as we can see on the screenshot above so I skipped that.

Commits
-------

9bddbbd7ed #40302 improve exception message when required argument is added after an optional one
2021-03-12 09:40:58 +01:00
Fabien Potencier
7754beddfc minor #40315 [HttpFoundation] Use InputBag for POST requests too (acasademont)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[HttpFoundation] Use InputBag for POST requests too

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Partially revert #37265
| License       | MIT
| Doc PR        | -

#37265 was created as a fix for #37100. However, when #37327 was merged, the original bug was also fixed with a different solution (allowing null values on `InputBag::set`) and parts of #37265 are not needed anymore. By using only `InputBag` as the `$request` bag we can tighten the typehint again and make static analysis a bit more useful.

Commits
-------

381a0a19f7 use InputBag for POST requests too, added missing scalar type hints
2021-03-12 09:36:26 +01:00
Fabien Potencier
fb670dfb2d bug #40373 Check if templating engine supports given view (fritzmg)
This PR was merged into the 4.4 branch.

Discussion
----------

Check if templating engine supports given view

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Currently the `ControllerTrait::render` and `ControllerTrait::renderView` methods assume that when the `templating` service is available it can always render the given view via that service.

However, that might not be the case. For example if `framework.templating` is not configured to support the `twig` engine for example but only some other custom engine, e.g.

```yaml
framework:
  templating:
    engines:
      - foobar
```

it will fail when the given view references a Twig template for instance and the configured engine cannot render that.

The `Symfony\Component\Templating\EngineInterface` which `templating` implements defines a `support` method:

2536e178b1/src/Symfony/Component/Templating/EngineInterface.php (L56-L63)

which should be used here, in order to make sure that `templating` actually does support rendering the given view.

Commits
-------

0f9434c189 check if templating engine supports view
2021-03-12 09:20:53 +01:00
Fabien Potencier
183b91c6ec feature #40366 [FrameworkBundle] Add KernelTestCase::getContainer() (Nyholm)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[FrameworkBundle] Add KernelTestCase::getContainer()

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       |
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/14731

There are at least 3 ways to get the container in a test class:

```php
class FooTest extends WebTestCase
{
    public function testGetContainerA()
    {
        $kernel = self::bootKernel();
        $container = $kernel->getContainer();
    }

    public function testGetContainerB()
    {
        self::bootKernel();
        $container = self::$container;
    }

    public function testGetContainerC()
    {
        $client = self::createClient();
        $container = $client->getContainer();
    }
}
```

I suggest to add a fourth =)

Basically, in tests you should always use the `test.service_container`. It is hard to remove A and C, but I can deprecate C and add a helper function.

```php
class FooTest extends WebTestCase
{
    public function testGetContainerTheOnlyWayYouShouldUse()
    {
        $container = $this->getContainer();
    }
}
```

This new way will also boot your kernel if it is not already booted.

Commits
-------

f4c97240ff [FrameworkBundle] Add KernelTestCase::getContainer()
2021-03-12 07:17:39 +01:00
Nyholm
f4c97240ff [FrameworkBundle] Add KernelTestCase::getContainer() 2021-03-12 07:17:35 +01:00