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
TASK: #899 Make Fizzle filter nested object properties #924
TASK: #899 Make Fizzle filter nested object properties #924
Conversation
@joachimmathes, thanks for your PR! By analyzing the history of the files in this pull request, we identified @robertlemke, @skurfuerst and @gerhard-boden to be potential reviewers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome <3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this, congrats to your first PR and warm welcome :) Apart from my one question this looks pretty good from reading!
@@ -12,7 +12,7 @@ namespace Neos\Eel; | |||
* source code. | |||
*/ | |||
|
|||
require_once __DIR__ . '/../../../Resources/Private/PHP/php-peg/Parser.php'; | |||
require_once __DIR__ . '/../Resources/Private/PHP/php-peg/Parser.php'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this really correct? Not rather '/../PHP/php-peg/Parser.php'
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! :)
And thanks for pointing this out. When I generated AbstractParser.php
from AbstractParser.peg.inc
for the first time, i.e. with /../../../Resources ...
, the Unit-Tests didn't run at all due to the wrong path. So I changed it to /../Resources/ ...
, since the resulting AbstractParser.php
is placed in Classes/
. That's why I'm pretty sure this is correct. And not only the Unit-Tests have worked as expected by then, but also the respective line in AbstractParser.php
hasn't changed in the diff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, must be a misconception on my side and I guess I have a clue on what it is (this just being the code template for the actual AbstractParser, which resides somewhere else and not being actually executed itself)... well, no objections from my side then :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the clarification! :)
@@ -12,7 +12,7 @@ namespace Neos\Eel; | |||
* source code. | |||
*/ | |||
|
|||
require_once __DIR__ . '/../../../Resources/Private/PHP/php-peg/Parser.php'; | |||
require_once __DIR__ . '/../Resources/Private/PHP/php-peg/Parser.php'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, must be a misconception on my side and I guess I have a clue on what it is (this just being the code template for the actual AbstractParser, which resides somewhere else and not being actually executed itself)... well, no objections from my side then :)
The final parsers are created from the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good by reading and running the tests. Thx for the PR ;)
But we need an accompanying change to update the usage of 'Identifer'
in Neos.ContentRepository/Classes/Eel/FlowQueryOperations/ChildrenOperation.php:106 or we put an additional entry Identifier
in the parsed result object to stay compatible (also with user operations). I'd tend to the latter one because it would not be breaking which the change would be otherwise for 3rd party operations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the compatibility by adding an additional Identifier
key in the result and checked that with the Neos.ContentRepository
tests, works fine.
Lesson learned: Always check the NEOS development package when changing fundamental code in the Flow development package. :) |
What I did
Implements #899. I extended the FlowQuery grammar to filter nested object properties.
How I did it
It was not possible to just extend the
Identifier
rule inAbstractParser.peg.inc
since that led to a lot of regressions in the Eel parser. Thus, a new rulePropertyPath
was necessary.How to verify it
Unit-Tests in Neos.Eel run successfully.