Commit Graph

32625 Commits

Author SHA1 Message Date
Fabien Potencier
c97c6d48b3 feature #24080 Deprecated the web_profiler.position option (javiereguiluz)
This PR was squashed before being merged into the 3.4 branch (closes #24080).

Discussion
----------

Deprecated the web_profiler.position option

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #23528
| License       | MIT
| Doc PR        | -

Related to #23728, which removes the feature for Symfony 4.0.

Commits
-------

53387b4335 Deprecated the web_profiler.position option
2017-09-07 08:02:00 -07:00
Javier Eguiluz
53387b4335 Deprecated the web_profiler.position option 2017-09-07 08:01:45 -07:00
Fabien Potencier
b6a29a28db bug #24101 [Security] Fix exception when use_referer option is true and referer is not set or empty (linniksa)
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes #24101).

Discussion
----------

[Security] Fix exception when use_referer option is true and referer is not set or empty

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

Commits
-------

a29e0694de [Security] Fix exception when use_referer option is true and referer is not set or empty
2017-09-07 07:52:52 -07:00
Sergey Linnik
a29e0694de [Security] Fix exception when use_referer option is true and referer is not set or empty 2017-09-07 07:52:52 -07:00
Fabien Potencier
22c00283bb feature #24114 [SecurityBundle] Throw a meaningful exception when an undefined user provider is used inside a firewall (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[SecurityBundle] Throw a meaningful exception when an undefined user provider is used inside a firewall

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

Before

> The service "security.authentication.manager" has a dependency on a non-existent service "security.user.provider.concrete.undefined_provider".

After

> Invalid firewall "main": user provider "undefined_provider" not found.

Commits
-------

b884c6612d Throw a meaningful exception when an undefined user provider is used inside a firewall
2017-09-07 07:47:43 -07:00
Fabien Potencier
7dfb5aa321 feature #24122 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass

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

Because that name makes things harder to understand now.
This uses exactly the same BC layer logic as the one we have for the renaming of DefinitionDecorator to ChildDefinition.

Commits
-------

a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass
2017-09-07 07:45:15 -07:00
Fabien Potencier
d74144fc0b bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] check permissions if dump target dir is missing

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

`is_dir()` returns `false` if the parent directory misses the executable
bit even when the directory itself is present.

Commits
-------

a0f9f2c537 check permissions if dump target dir is missing
2017-09-07 07:43:15 -07:00
Fabien Potencier
1bfa6a9ff7 feature #23901 [DI] Allow processing env vars (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow processing env vars

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

This PR is an updated version of #20276 ~~(it embeds #23899 for now.)~~

It superscedes/closes:
- [DI] Add support for secrets #23621 ping @dunglas
- Runtime container parameter not found event filter #23669 ping @marfillaster
- [DependencyInjection] [DX] Support for JSON string environment variables #23823 ping @Pierstoval
- add support for composite environment variables #17689 ping @greg0ire
- [DI] ENV parameters at runtime with PHP 7 strict types not working properly #20434 ping @sandrokeil
- Issue when using a SQLite database and the DATABASE_URL env var #23527 ping @javiereguiluz

#22151 is another story, so not fixed here.

The way it works is via `%env(foo:BAR)%` prefixes, where "foo" can be bound to any services you'd like.
By default, the following prefixes are supported:
- `bool`, `int`, `float`, `string`, `base64`
- `const` (for referencing PHP constants)
- `json` (supporting only json **arrays** for type predictability)
- `file` (eg for access to secrets stored in files.)
- `resolve` (for processing parameters inside env vars.)

New prefixes can be added by implementing the new `EnvProviderInterface`, and tagging with `container.env_provider` (see `Rot13EnvProvider` in tests.)

Prefixes can be combined to chain processing, eg.
`%env(json:base64:file:FOO)%` will be roughly equivalent to
`json_decode(base64_decode(file_get_content(getenv('FOO'))))`.

Commits
-------

1f92e459db [DI] Allow processing env vars
2017-09-07 07:23:45 -07:00
Fabien Potencier
1c04cd563a bug #24126 [HttpKernel] "controller.service_arguments" services should be public (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel] "controller.service_arguments" services should be public

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

Controller-as-services need to be public if they have constructor arguments (they don't need to if they have no arguments but that's for arcane reasons.)
Since services tagged "controller.service_arguments" *are* controllers, they need to be public to enhance DX and remove some WTFs that some ppl reported to me.

Commits
-------

b9c6928d7e [HttpKernel] "controller.service_arguments" services should be public
2017-09-07 07:05:07 -07:00
Nicolas Grekas
b9c6928d7e [HttpKernel] "controller.service_arguments" services should be public 2017-09-07 14:08:26 +02:00
Nicolas Grekas
a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass 2017-09-07 10:45:01 +02:00
Robin Chalas
b884c6612d Throw a meaningful exception when an undefined user provider is used inside a firewall 2017-09-07 10:19:55 +02:00
Nicolas Grekas
fda994b1e4 bug #24113 [FrameworkBundle] Get KERNEL_CLASS through $_ENV too for KernelTestCase (yceruto)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] Get KERNEL_CLASS through $_ENV too for KernelTestCase

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/recipes/pull/170/files#diff-793b024840ee04ebdff5e04c2cd44f8cR12
| License       | MIT
| Doc PR        | -

I guess the check could be simplied in `master` with php7+

/cc @nicolas-grekas

Commits
-------

73cdb68 Get KERNEL_CLASS through $_ENV too
2017-09-07 09:25:08 +02:00
Nicolas Grekas
2b79f48405 bug #24115 [FrameworkBundle] Get KERNEL_DIR through $_ENV too for KernelTestCase (yceruto)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle] Get KERNEL_DIR through $_ENV too for KernelTestCase

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

See https://github.com/symfony/symfony/pull/24113

Commits
-------

cf11fb9 Get KERNEL_DIR through $_ENV too for KernelTestCase
2017-09-07 09:24:29 +02:00
Nicolas Grekas
1f92e459db [DI] Allow processing env vars 2017-09-07 08:08:52 +02:00
Yonel Ceruto
cf11fb9652 Get KERNEL_DIR through $_ENV too for KernelTestCase 2017-09-06 18:24:46 -04:00
Nicolas Grekas
2fde0942ac fix the fix 2017-09-06 23:01:01 +02:00
Nicolas Grekas
367c4d9810 Fix deps=low tests 2017-09-06 22:50:21 +02:00
Nicolas Grekas
8015ad60cc Fix merge 2017-09-06 21:47:44 +02:00
Yonel Ceruto
73cdb68308 Get KERNEL_CLASS through $_ENV too 2017-09-06 15:05:48 -04:00
Nicolas Grekas
e565c6de00 Merge branch '3.3' into 3.4
* 3.3:
  [travis] fix minor php7.0 version
  [travis] add ldap.so for php70
  [HttpFoundation] Fix logic when JsonSerializable is missing
  [travis] update to trusty
  Don't use return on Assert::markTestSkipped.
  Create directories recursively in the PHPUnit bridge
  [Dotenv] Add a BC break note
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 21:03:12 +02:00
Nicolas Grekas
5f5ed69bea minor #24112 [travis] fix minor php7.0 version (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[travis] fix minor php7.0 version

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

7.0.7 is the default on travis-trusty, but we need 7.0.8 mini...

Commits
-------

0793365 [travis] fix minor php7.0 version
2017-09-06 21:00:36 +02:00
Nicolas Grekas
07933655e8 [travis] fix minor php7.0 version 2017-09-06 20:49:53 +02:00
Nicolas Grekas
9431a38cfc Merge branch '2.8' into 3.3
* 2.8:
  [travis] add ldap.so for php70
  [HttpFoundation] Fix logic when JsonSerializable is missing
2017-09-06 19:07:39 +02:00
Nicolas Grekas
e4ce14d073 [travis] add ldap.so for php70 2017-09-06 19:03:33 +02:00
Nicolas Grekas
9d240de539 Merge branch '2.7' into 2.8
* 2.7:
  [HttpFoundation] Fix logic when JsonSerializable is missing
2017-09-06 18:54:42 +02:00
Nicolas Grekas
d1fe4153a1 [HttpFoundation] Fix logic when JsonSerializable is missing 2017-09-06 18:53:48 +02:00
Nicolas Grekas
87b3b1a685 Merge branch '2.8' into 3.3
* 2.8:
  [travis] update to trusty
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 18:40:18 +02:00
Christian Flothmann
a0f9f2c537 check permissions if dump target dir is missing
`is_dir()` returns `false` if the parent directory misses the executable
bit even when the directory itself is present.
2017-09-06 18:35:18 +02:00
Nicolas Grekas
c3f14708f4 Merge branch '2.7' into 2.8
* 2.7:
  [travis] update to trusty
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 18:32:38 +02:00
Nicolas Grekas
cf4f8325e9 minor #24108 [travis] update to trusty (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[travis] update to trusty

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

Precise is dying, see https://blog.travis-ci.com/2017-08-31-trusty-as-default-status

Commits
-------

cfc9346 [travis] update to trusty
2017-09-06 18:22:23 +02:00
Nicolas Grekas
cfc9346f66 [travis] update to trusty 2017-09-06 17:42:52 +02:00
Fabien Potencier
1022bb497d minor #24060 [Yaml] add inline parser context initializer (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] add inline parser context initializer

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

Calling the parser to initialize some internal context does not look
like a good idea. Additionally, this change allows to not accept null
values in `Inline::parse()` in 3.4 anymore.

Commits
-------

1be23c2a86 [Yaml] add inline parser context initializer
2017-09-06 08:08:15 -07:00
Fabien Potencier
2d330b2bb4 minor #24110 [Form] Add help description to debug:form command (yceruto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Add help description to debug:form command

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

I forgot to add this one in the introduction of the command.

Commits
-------

f8afe02a49 Add help description to debug:form command
2017-09-06 08:07:13 -07:00
Yonel Ceruto
f8afe02a49 Add help description to debug:form command 2017-09-06 08:10:51 -04:00
Fabien Potencier
a4a87ac3a3 minor #24106 [DependencyInjection] Don't use return on Assert::markTestSkipped (derrabus)
This PR was merged into the 3.3 branch.

Discussion
----------

[DependencyInjection] Don't use return on Assert::markTestSkipped

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

Removed an unnecessary return statement. `Assert::markTestSkipped()` will always throw an exception, so there's no need for a return statement here. And even if that method had a return value: A unit test is not supposed to return anything.

Commits
-------

9cadeb8af2 Don't use return on Assert::markTestSkipped.
2017-09-05 18:21:35 -07:00
Alexander M. Turek
9cadeb8af2 Don't use return on Assert::markTestSkipped. 2017-09-05 22:39:38 +02:00
Fabien Potencier
3d799ddcdb feature #24093 [FrameworkBundle] be able to enable workflow support explicitly (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] be able to enable workflow support explicitly

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

Commits
-------

eaa506f562 be able to enable workflow support explicitly
2017-09-05 12:26:40 -07:00
Fabien Potencier
77b6cc629b feature #24064 [TwigBridge] Show Twig's loader paths on debug:twig command (yceruto)
This PR was squashed before being merged into the 3.4 branch (closes #24064).

Discussion
----------

[TwigBridge] Show Twig's loader paths on debug:twig command

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

`bin/console debug:twig`:
![twig-loader-paths](https://user-images.githubusercontent.com/2028198/29986784-ee5a4094-8f32-11e7-86c8-c78183630221.png
)

This information is not displayed anywhere ATM and it should be important to know:
 * The Twig's namespaces availables
 * The Twig's paths availables
 * The order that templates will be loaded ( regarding its namespace -> LOAD PRIORITY ! )

So it should help us to debug any issue related to circular templates reference, invalid namespaces, unsuccessful attempt to override a template, etc.

WDYT?

Commits
-------

3fdcb40df3 [TwigBridge] Show Twig's loader paths on debug:twig command
2017-09-05 11:55:04 -07:00
Yonel Ceruto
3fdcb40df3 [TwigBridge] Show Twig's loader paths on debug:twig command 2017-09-05 11:55:03 -07:00
Fabien Potencier
a819038090 bug #24041 [ExpressionLanguage] throws an exception on calling uncallable method (fmata)
This PR was merged into the 2.7 branch.

Discussion
----------

[ExpressionLanguage] throws an exception on calling uncallable method

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

When we evaluate an expression, if a callable is incorrect (not exists or not accessible) a warning is printed.
This PR handles this case and throws a \RuntimeException when `is_callable()` returns `false` :

```php
$el = new ExpressionLanguage();
$el->evaluate('foo.myfunction()', array('foo' => new \stdClass()));
```

**Before:**
`Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'stdClass' does not have a method 'myfunction' in /home/.../src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php on line 84`

**After:**
`Fatal error: Uncaught RuntimeException: Unable to call method "myfunction" of object "stdClass". in /home/.../src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php:81`

Commits
-------

c8b65aeb8b [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-05 11:48:18 -07:00
Fabien Potencier
c0b4e564db feature #23978 [Cache] Use options from Memcached DSN (Bukashk0zzz)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Use options from Memcached DSN

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

This PR allows to pass options in cache config.
Example:
```yaml
framework:
    cache:
        app: cache.adapter.memcached
        default_memcached_provider: 'memcached://%env(MEMCACHE_HOST)%?socket_recv_size=1&socket_send_size=2'
```

Commits
-------

5798dd6bec [Cache] Use options from Memcached DSN
2017-09-05 11:44:31 -07:00
Fabien Potencier
4f02e91592 minor #24103 [FrameworkBundle] Fix Di config to allow for more private services (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Fix Di config to allow for more private services

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

This PR is a prelude to #23822:
- allow cache pool clearers to be private by using IGNORE_ON_UNINITIALIZED_REFERENCE, allowing much more sane logic in the related passes
- allow templating helpers to be private by using a service locator
- replace an inline def by a reference in workflow's config (ping @lyrixx @Nyholm)
- fix the Stopwatch alias, which is public in 3.4, but private in 3.3
- remove direct access to `->get('fragment.handler')` in tests so that the service could be made private

Commits
-------

76c42175b9 [FrameworkBundle] Fix Di config to allow for more private services
2017-09-05 11:43:18 -07:00
Fabien Potencier
fd568acd15 bug #24096 Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args

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

Commits
-------

2ba5005830 Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
2017-09-05 11:37:50 -07:00
Fabien Potencier
a964f37a87 minor #24102 Create directories recursively in the PHPUnit bridge (stof)
This PR was merged into the 3.3 branch.

Discussion
----------

Create directories recursively in the PHPUnit bridge

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

If the target directory is also missing its parent directory, we need to perform a recursive creation, otherwise we get weird failures later.

Commits
-------

0caeeff48a Create directories recursively in the PHPUnit bridge
2017-09-05 11:31:49 -07:00
Nicolas Grekas
76c42175b9 [FrameworkBundle] Fix Di config to allow for more private services 2017-09-05 18:47:43 +02:00
Christophe Coevoet
0caeeff48a Create directories recursively in the PHPUnit bridge 2017-09-05 13:23:06 +02:00
Nicolas Grekas
703a84c18c minor #24081 [Dotenv] Add a BC break note (voronkovich)
This PR was squashed before being merged into the 3.3 branch (closes #24081).

Discussion
----------

[Dotenv] Add a BC break note

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

Commits
-------

66621cc [Dotenv] Add a BC break note
2017-09-05 09:59:34 +02:00
Oleg Voronkovich
66621cc559 [Dotenv] Add a BC break note 2017-09-05 09:59:31 +02:00
Denis Golubovskiy
5798dd6bec
[Cache] Use options from Memcached DSN 2017-09-05 09:16:07 +03:00