Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Form][Profiler] Fixes form collector triggering deprecations#23050

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
fabpot merged 1 commit intosymfony:3.3fromogizanagi:fix/form/profiler/seek
Jun 3, 2017
Merged

[Form][Profiler] Fixes form collector triggering deprecations#23050

fabpot merged 1 commit intosymfony:3.3fromogizanagi:fix/form/profiler/seek
Jun 3, 2017

Conversation

@ogizanagi
Copy link
Contributor

QA
Branch?3.3
Bug fix?yes
New feature?no
BC breaks?no
Deprecations?no
Tests pass?yes
Fixed ticketsN/A
LicenseMIT
Doc PRN/A

Since 3.3, if you inspect your logs when accessing the form profiler panel, you'll see some of these:

php.INFO: User Deprecated: The Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::dumpValue() method is deprecated since version 3.2 and will be removedin 4.0.[...] at /src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php:119

TheWebProfilerExtension is still using aValueExporter instance for BC reasons when the $value ins't an instance ofData and this BC layer will be removed in 4.0 (so it'll throw an exception/error when trying to use it with something else than aData instance).

The issue is since#21638, collectors (including forms one) have been drastically simplified to leverage the "seamless usage of Data clones", which is great!... But there is a slightly different implementation betweenData::seek() andData::__get(). There are probably good reasons for this, but it prevents from using classic Twig property access when the underlying data may be a scalar (null,false, ...).

I already spot that while working on theValidator panel. Perhaps there is a better solution, though.

Anyway, currentmaster is currently broken, as it still tries to use theValueExporter, which is already removed. And removing the BC layer inWebProfilerExtension isn't enough for now. It needs this fix.

BTW it also fixes rendering of the concerned inlined-dumps:

BeforeAfter
screenshot 2017-06-03 a 13 35 25screenshot 2017-06-03 a 13 35 47

Copy link
Member

@nicolas-grekasnicolas-grekas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

👍

@fabpot
Copy link
Member

Thank you@ogizanagi.

@fabpotfabpot merged commit9de898d intosymfony:3.3Jun 3, 2017
fabpot added a commit that referenced this pull requestJun 3, 2017
…ons (ogizanagi)This PR was merged into the 3.3 branch.Discussion----------[Form][Profiler] Fixes form collector triggering deprecations| Q             | A| ------------- | ---| Branch?       | 3.3 <!-- see comment below -->| Bug fix?      | yes| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->| BC breaks?    | no| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->| Tests pass?   | yes| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->| License       | MIT| Doc PR        | N/ASince 3.3, if you inspect your logs when accessing the form profiler panel, you'll see some of these:```shphp.INFO: User Deprecated: The Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::dumpValue() method is deprecated since version 3.2 and will be removed in 4.0.[...] at /src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php:119```The [WebProfilerExtension](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php#L73) is still using a `ValueExporter` instance for BC reasons when the $value ins't an instance of `Data` and this BC layer will be removed in 4.0 (so it'll throw an exception/error when trying to use it with something else than a `Data` instance).The issue is since#21638, collectors (including forms one) have been drastically simplified to leverage the "seamless usage of Data clones", which is great!... But there is a slightly different implementation between `Data::seek()` and [`Data::__get()`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/VarDumper/Cloner/Data.php#L123-L130). There are probably good reasons for this, but it prevents from using classic Twig property access when the underlying data may be a scalar (`null`, `false`, ...).I already spot that while working on the [Validator panel](https://github.com/symfony/symfony/pull/22554/files#diff-deac3c5ce4aa87243093dcd6a3f77a56R84). Perhaps there is a better solution, though.Anyway, current `master` is currently broken, as it still tries to use the `ValueExporter`, which is already removed. And removing the BC layer in `WebProfilerExtension` isn't enough for now. It needs this fix.BTW it also fixes rendering of the concerned inlined-dumps:|Before|After||--|--||<img width="818" alt="screenshot 2017-06-03 a 13 35 25" src="https://cloud.githubusercontent.com/assets/2211145/26753222/01a692e6-4862-11e7-90d5-9cc9e4832648.PNG">|<img width="817" alt="screenshot 2017-06-03 a 13 35 47" src="https://cloud.githubusercontent.com/assets/2211145/26753224/090d5d6c-4862-11e7-87c1-73d5346f602c.PNG">|Commits-------9de898d [Form][Profiler] Fixes form collector triggering deprecations
@ogizanagiogizanagi deleted the fix/form/profiler/seek branchJune 3, 2017 16:05
@fabpotfabpot mentioned this pull requestJun 5, 2017
fabpot added a commit that referenced this pull requestNov 6, 2017
…rt decision.object being null (ogizanagi)This PR was merged into the 3.3 branch.Discussion----------[SecurityBundle] Fix the datacollector to properly support decision.object being null| Q             | A| ------------- | ---| Branch?       | 3.3 <!-- see comment below -->| Bug fix?      | yes| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->| BC breaks?    | no| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->| Tests pass?   | yes| Fixed tickets |#24804 <!-- #-prefixed issue number(s), if any -->| License       | MIT| Doc PR        | N/ASimilar to#23050, when accessing a `Data` clone property through `__get()` and the value is `null` for instance, you'll really get `null` instead of a `Data` instance. The solution is to use `seek` instead whenever we access and try to use `profiler_dump` on a `Data` property that can be a simple scalar like `null` or `false`. AFAIK, `decision.object` is the only one here.Commits-------769a5f2 [SecurityBundle] Fix the datacollector to properly support decision.object being null
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@fabpotfabpotfabpot approved these changes

@nicolas-grekasnicolas-grekasnicolas-grekas approved these changes

Assignees

No one assigned

Projects

None yet

Milestone

3.3

Development

Successfully merging this pull request may close these issues.

4 participants

@ogizanagi@fabpot@nicolas-grekas@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp