-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Implemented possibility to skip key normalization in config processing #6086
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
this is tricky since you might break some app config formats. Semi related: I assume few people test their Bundles with anything but Yaml, but ATM the chances are quite good that it would also work with XML. then again many people are already not including the fix keys call so maybe we should also enable people to explicitly say which formats they support. |
@lsmith77 you won't break anything as this PR is BC. You would brak it only if an existing bundle starts using it (and you are using XML) |
I wasn't trying to imply it breaks BC but it would likely mean that Bundles using this would break the assumption that all formats are supported. |
@lsmith77 The only difference is that a bundle using that would have an XML config using underscores instead of dashes (which are the XML convention). |
right again. my point is that this feature breaks current assumptions. note I am not saying this should not be done either. just adding something to consider. |
Well, the real issue behind that is we currently don't know which format is used for application configuration, leading sometimes to unexpected issues. The problem is that the current fix is a bit brutal and magical, leading to headaches while debugging. |
Actually, this renaming of keys from dashes to underscores should probably be refactored to be aware of the tree. Because the only case where it causes some issues is for prototyped array nodes (using an associative array), as this is the only case where a key is defined by the user. |
@stof Exactly, and this is precisely where we have a problem, with prototyped array nodes. Having this key normalization aware of the tree is a nice option as well for a proper fix, but I think with this patch at least you can have some control 😃 |
ping @fabpot |
Hello, any news on this ? Thanks |
That can only be merged in master. |
@fabpot OK, should I open a new PR on master then ? |
No, I'm going to switch the branch when merging, it was just to warn you about this. |
OK thanks 😃 |
This PR was merged into the master branch. Commits ------- 6efae29 [TwigBundle] fixed configuration to avoid key normalizations for paths and globals (closes #5998) e31d4f1 [Config] allowed the disabling of key normalization on some array nodes Discussion ---------- Config key normalization This is a quick proof-of-concept for a better fix of #6086, where key normalizations can be disabled on specific nodes. The previous patch was not really useful as you were only able to disable key normalization globally for a configuration. ping @lolautruche The second commit fixes #5998. --------------------------------------------------------------------------- by lolautruche at 2012-12-15T15:39:00Z +1 The approach is neat and much better than my workaround. Gives better control and avoids magic :smiley: (even if this *normalization* is still a bit obscure to me).
Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
Description
This PR implements the possibility to deactivate explicitly config keys normalization as it's sometimes annoying and unexpected to have
-
transformed in_
. The default behavior is kept and deactivation is possible at the DI extension level (not possible to do it at the node level since the config processor does key normalization globally).