From c274b8ec28e227b3207a17841388b30879041a65 Mon Sep 17 00:00:00 2001 From: Mikael Meulle <21535-just_like_good_vibes@users.noreply.drupalcode.org> Date: Wed, 16 Oct 2024 10:36:36 +0000 Subject: [PATCH] Issue #3479656 by just_like_good_vibes, sea2709: Performance issue when using the formatter "Component per item (UI Pattern)" --- .gitlab-ci.yml | 2 ++ ...ValidatorRuleTest.php => TwigValidatorRuleTestExpr.php} | 2 +- ...rRuleTestTest.php => TwigValidatorRuleTestExprTest.php} | 4 ++-- .../tests/fixtures/tests.formatter.yml | 2 -- src/Element/ComponentElementBuilder.php | 7 ++++--- 5 files changed, 9 insertions(+), 8 deletions(-) rename modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/{TwigValidatorRuleTest.php => TwigValidatorRuleTestExpr.php} (98%) rename modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/{TwigValidatorRuleTestTest.php => TwigValidatorRuleTestExprTest.php} (93%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 50e4d030c..ff039ba5f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -55,6 +55,8 @@ phpstan: allow_failure: false phpunit: allow_failure: false + variables: + _PHPUNIT_EXTRA: '' diff --git a/modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTest.php b/modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTestExpr.php similarity index 98% rename from modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTest.php rename to modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTestExpr.php index 3372a35ad..cb652ab47 100644 --- a/modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTest.php +++ b/modules/ui_patterns_devel/src/Plugin/TwigValidatorRule/TwigValidatorRuleTestExpr.php @@ -22,7 +22,7 @@ use Twig\Node\Node; label: new TranslatableMarkup('Tests rules'), description: new TranslatableMarkup('Rules around Twig tests.'), )] -final class TwigValidatorRuleTest extends TwigValidatorRulePluginBase { +final class TwigValidatorRuleTestExpr extends TwigValidatorRulePluginBase { /** * Process Twig\Node\Expression\Test\NullTest. diff --git a/modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestTest.php b/modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestExprTest.php similarity index 93% rename from modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestTest.php rename to modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestExprTest.php index c0627e438..be3376427 100644 --- a/modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestTest.php +++ b/modules/ui_patterns_devel/tests/src/Kernel/TwigValidatorRule/TwigValidatorRuleTestExprTest.php @@ -8,14 +8,14 @@ use Drupal\Core\Logger\RfcLogLevel; use Drupal\Tests\ui_patterns_devel\Kernel\TwigValidatorTestBase; /** - * @coversDefaultClass \Drupal\ui_patterns_devel\Plugin\TwigValidatorRule\TwigValidatorRuleTest + * @coversDefaultClass \Drupal\ui_patterns_devel\Plugin\TwigValidatorRule\TwigValidatorRuleTestExpr * * @group ui_patterns_devel * @internal * * cSpell:disable */ -final class TwigValidatorRuleTestTest extends TwigValidatorTestBase { +final class TwigValidatorRuleTestExprTest extends TwigValidatorTestBase { /** * Provides tests data for testTwigValidatorTest. diff --git a/modules/ui_patterns_field_formatters/tests/fixtures/tests.formatter.yml b/modules/ui_patterns_field_formatters/tests/fixtures/tests.formatter.yml index aeaec42b3..b9d31f8f7 100644 --- a/modules/ui_patterns_field_formatters/tests/fixtures/tests.formatter.yml +++ b/modules/ui_patterns_field_formatters/tests/fixtures/tests.formatter.yml @@ -65,7 +65,6 @@ nesting_4: elementExists: - [ 'css', '.ui-patterns-test-component' ] elementNotExists: - - [ 'xpath', "//div[contains(@class, 'ui-patterns-test-component')]//div[contains(@class, 'ui-patterns-slots-wrapper') and contains(text(), '1')]" ] - [ 'xpath', "//div[contains(@class, 'ui-patterns-test-component')]//div[contains(@class, 'ui-patterns-slots-wrapper') and contains(text(), '2')]" ] - [ 'xpath', "//div[contains(@class, 'ui-patterns-test-component')]//div[contains(@class, 'ui-patterns-slots-wrapper') and contains(text(), '3')]" ] elementsCount: @@ -88,7 +87,6 @@ invalid_situation: field_name: 'field_text_with_summary' assertSession: elementNotExists: - - [ 'xpath', "//div[contains(@class, 'ui-patterns-test-component')]//div[contains(@class, 'ui-patterns-props-string') and contains(text(), 'this is first body3')]"] - [ 'xpath', "//div[contains(@class, 'ui-patterns-test-component')]//div[contains(@class, 'ui-patterns-props-string') and contains(text(), 'this is second body3')]"] elementsCount: - [ 'xpath', "//div[@class='ui-patterns-props-string']", 1 ] diff --git a/src/Element/ComponentElementBuilder.php b/src/Element/ComponentElementBuilder.php index a7cfe72d5..488181a4c 100644 --- a/src/Element/ComponentElementBuilder.php +++ b/src/Element/ComponentElementBuilder.php @@ -125,10 +125,11 @@ class ComponentElementBuilder implements TrustedCallbackInterface { if (!$source_id) { return NULL; } + /* @todo Performance issue... if (!$this->sourcesManager->isApplicable($source_id, $source_contexts)) { - // Throw new \Exception("source not applicable");. - return NULL; - } + // Throw new \Exception("source not applicable");. + return NULL; + }*/ /** @var \Drupal\ui_patterns\SourceInterface $source */ $source = $this->sourcesManager->createInstance( $source_id, -- GitLab