Skip to content
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

[GraphQL] Add a clearer error message when TwigBundle is disable but graphql clients aren't #5064

Merged
merged 1 commit into from
Oct 21, 2022

Conversation

ArnoudThibaut
Copy link
Contributor

Q A
Branch? 3.0
Tickets #4897
License MIT

Instead of having an error thrown by the CheckExceptionOnInvalidReferenceBehaviorPass when Twig is not installed or enabled we send a clearer exception and force the user to either disable the GraphQL clients or enable Twig.

If the clients are not enabled we remove the definition as they can't be instantiate and we pass null to the GraphQl action.

Maybe we should not trowing an exception and instead disable silently the the clients if Twig is not enabled but I find better to add an explicit error message.

@ArnoudThibaut ArnoudThibaut force-pushed the 4897-graphql-twig branch 2 times, most recently from c23a046 to a1e5e2f Compare October 13, 2022 10:22
@soyuka
Copy link
Member

soyuka commented Oct 17, 2022

nice patch, I think that the phpstan issue is related though

@ArnoudThibaut
Copy link
Contributor Author

nice patch, I think that the phpstan issue is related though

Yes it's totally related but I think it's because of phpsant.neon.dist. Inside we specify to phpstan to use the container of the test env cache and in test the parameter kernel.bundles contains the key TwigBundle so for phpstan the isset it useless but that's not true

Do you have any idea on how to fix that without adding a @phpstan-ignore-next-line ?

@alanpoulain
Copy link
Member

In this specific case, I think a @phpstan-ignore-next-line with an explanation is in order.

@ArnoudThibaut ArnoudThibaut force-pushed the 4897-graphql-twig branch 2 times, most recently from 0d46cd6 to fd2444a Compare October 21, 2022 09:25
@@ -476,6 +480,15 @@ private function registerGraphQlConfiguration(ContainerBuilder $container, array

$loader->load('graphql.xml');

// @phpstan-ignore-next-line We ignore the next line because we specify to phpstan to use the container of the test env cache and in test the parameter kernel.bundles always contains the key TwigBundle
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// @phpstan-ignore-next-line We ignore the next line because we specify to phpstan to use the container of the test env cache and in test the parameter kernel.bundles always contains the key TwigBundle
// @phpstan-ignore-next-line because PHPStan uses the container of the test env cache and in test the parameter kernel.bundles always contains the key TwigBundle

@ArnoudThibaut ArnoudThibaut force-pushed the 4897-graphql-twig branch 2 times, most recently from 8967c5c to 30f3d5f Compare October 21, 2022 11:48
@alanpoulain alanpoulain merged commit 541b738 into api-platform:3.0 Oct 21, 2022
@alanpoulain
Copy link
Member

Thanks @ArnoudThibaut.

soyuka added a commit that referenced this pull request Nov 4, 2022
* fix: update yaml extractor test file coding standard (#5068)

* fix(graphql): add clearer error message when TwigBundle is disabled but graphQL clients are enabled (#5064)

* fix(metadata): add class key in payload argument resolver (#5067)

* fix: add class key in payload argument resolver

* add null if everything else goes wrong

* fix: upgrade command remove ApiSubresource attribute  (#5049)

Fixes #5038

* fix(doctrine): use abitrary index instead of value (#5079)

* fix: uri template should respect rfc 6570 (#5080)

* fix: remove @internal annotation for Operations (#5089)

See #5084

* fix(metadata): define a name on a single operation (#5090)

fixes #5082

* fix(metadata): deprecate when user decorates in legacy mode (#5091)

fixes #5078

* fix(graphql): use right nested operation (#5102)

* Revert "fix(graphql): use right nested operation (#5102)" (#5111)

This reverts commit 44337dd.

* fix(graphql): always allow to query nested resources (#5112)

* fix(graphql): always allow to query nested resources

* review

Co-authored-by: Alan Poulain <contact@alanpoulain.eu>

* chore: php-cs-fixer update

* fix: only alias if exists for opcache preload

Fixes api-platform/api-platform#2284 (#5110)

Co-authored-by: Liviu Mirea <liviu.mirea@wecodepixels.com>

* chore: php-cs-fixer update (#5118)

* chore: php-cs-fixer update

* chore: php-cs-fixer update

* fix(metadata): upgrade script keep operation name (#5109)

origin: #5105

Co-authored-by: WilliamPeralta <william.peralta18@gmail.com>

* chore: v2.7.3 changelog

* chore: v3.0.3 changelog

Co-authored-by: helyakin <CourcierMarvin@gmail.com>
Co-authored-by: ArnoudThibaut <thibaut.arnoud@gmail.com>
Co-authored-by: davy-beauzil <38990335+davy-beauzil@users.noreply.github.com>
Co-authored-by: Baptiste Leduc <baptiste.leduc@gmail.com>
Co-authored-by: Xavier Laviron <norival@users.noreply.github.com>
Co-authored-by: Alan Poulain <contact@alanpoulain.eu>
Co-authored-by: Liviu Cristian Mirea-Ghiban <contact@liviucmg.com>
Co-authored-by: Liviu Mirea <liviu.mirea@wecodepixels.com>
Co-authored-by: WilliamPeralta <william.peralta18@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants