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
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
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
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
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
This PR was merged into the 3.4 branch.
Discussion
----------
[VarDumper] Improve microseconds support in date caster
| 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 | /
This PR adds the microseconds in ``period`` virtual property and in tooltip overview.
Before:
![](https://user-images.githubusercontent.com/4578773/29843773-58a2e212-8d0d-11e7-9053-3eb1cf933e3b.png)
After:
![](https://user-images.githubusercontent.com/4578773/29843774-58bd8342-8d0d-11e7-8d83-40835c89313c.png)
And fixes interval caster:
```php
dump((new DateTime('00:00:00'))->diff(new DateTime('00:00:00.123')));
// before
DateInterval {
interval: + 00:00:00.0.123
}
// after
DateInterval {
interval: + 00:00:00.123
}
```
Commits
-------
479b5d6 Improve microseconds support in date caster
This PR was merged into the 3.4 branch.
Discussion
----------
Use new configuration depreciation method
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
In keeping with #22382
Commits
-------
4a62cc6 Do not trigger deprecation if node has not been explicitly filled
012e381 Use new configuration node depreciation method
This PR was submitted for the master branch but it was merged into the 3.4 branch instead (closes#24075).
Discussion
----------
Implemented PruneableInterface on TagAwareAdapter
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | See comment on https://github.com/symfony/symfony/pull/23451
| License | MIT
| Doc PR | Added a comment on https://github.com/symfony/symfony-docs/pull/8209
The `ChainAdapter` already delegates the `prune()` calls. The `TagAwareAdapter` is a wrapping adapter too and should delegate the `prune()` calls just the same.
Commits
-------
b635b62 Implemented PruneableInterface on TagAwareAdapter
This PR was merged into the 3.4 branch.
Discussion
----------
[3.4][DI] Inline trivial 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 | -
Unless I missed something, 3.4 also can have trivial services inlined.
And calls to factory methods also can be inlined btw, isn't it @stof?
Commits
-------
2a7f86f [3.4][DI] Inline trivial services
This PR was merged into the 3.4 branch.
Discussion
----------
sync upgrade file for Symfony 4.0 between branches
| 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
-------
5c030dd240 sync upgrade file for Symfony 4.0 between branches
This PR was merged into the 3.3 branch.
Discussion
----------
[DI] Minor fix in dumped code
| 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 | -
This check is useless, and leads to a potential BC break (a non-shared service overridden by calling `$container->set(...)` - unlikely yes).
Commits
-------
263b95e1d1 [DI] Minor fix in dumped code
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.
This PR was merged into the 3.4 branch.
Discussion
----------
Fix ability to deprecate a config node
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | not yet released
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22382
| License | MIT
| Doc PR | n/a
Unlocks #24025
Commits
-------
fc91869 Fix ability to deprecate a config node
This PR was merged into the 3.4 branch.
Discussion
----------
Fix deprecations regarding core commands registered as services
| 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/23624#discussion_r131979501
| License | MIT
| Doc PR | n/a
Current deprecation messages can be confusing (see fixed ticket), this improves them and adds a bunch of missing CHANGELOG/UPGRADE entries on the same topic
Commits
-------
4659975944 Fix deprecations regarding core commands registered as services
This PR was merged into the 3.4 branch.
Discussion
----------
[Console] Display file and line on Exception
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes/no
| Fixed tickets | -
| License | MIT
| Doc PR | -
When an exception occured:
If you have not set a verbose mode when running the command, you don't have information about the file and the line on which the exception occured.
So you must run a second time the command but the exception may not occured this time (if based on some databases datas which have changed) and it's a waste of time if you process is very long and the exception occured at the end.
The feature #21003 solve the problem if you are in a standard Symfony edition, if you leave the default settings and if you are in dev mode
Commits
-------
484d278 [Console] Display file and line on Exception
This PR was squashed before being merged into the 3.4 branch (closes#24068).
Discussion
----------
[HttpKernel] Deprecate EnvParametersResource
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!--highly recommended for new features-->
See #24067
Commits
-------
76ea6df [HttpKernel] Deprecate EnvParametersResource
This PR was squashed before being merged into the 3.4 branch (closes#22542).
Discussion
----------
[Lock] Check TTL expiration in lock acquisition
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #22452
| License | MIT
| Doc PR | NA
This PR improve lock acquisition by throwing exception when the TTL is expired during the lock process.
Commits
-------
f74ef35778 [Lock] Check TTL expiration in lock acquisition
This PR was submitted for the 3.4 branch but it was merged into the 3.3 branch instead (closes#23958).
Discussion
----------
[Lock] Fix race condition in tests between cache and lock component
| 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 |
Currently trying to fix
* [x] php 5.5 in testSaveWithDifferentResources "Failed asserting that false is true"
* [x] php 5.5 in testSaveWithDifferentKeysOnSameResources "The store shouldn't save the second key"
Workflow:
* [x] find a reproducer
* [x] fix memcached tests => #23969
* [x] fix redis tests => this PR
Commits
-------
26948cf Fix race condition in tests between cache and lock
This PR was merged into the 2.7 branch.
Discussion
----------
Added check for ext-dom to XmlUtil::loadFile
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no, minor enhancement to gracefully suggest to install `ext-dom` if missing when trying to use `XmlUtil::loadFile`
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | #24046
| License | MIT
Commits
-------
2f292c247e#24046 added check for ext-dom to XmlUtil::loadFile
* 3.3:
Improved the design of the redirection method in the web toolbar
Update NoSuchPropertyException message for writeProperty
[DI] Don't track merged configs when the extension doesn't expose it
[Cache] Use namespace versioning for backends that dont support clearing by keys