From d2f55155a8ad7f75efee2b95bbfb3ced264ec7a5 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Wed, 28 Dec 2022 10:08:10 +0000 Subject: [PATCH] MDL-76760 tool_behat: defer library loading until service execution. Ensures that API documentation can be generated without requiring the presence of the `vendor/` directory. --- .../tool/behat/classes/external/get_entity_generator.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/admin/tool/behat/classes/external/get_entity_generator.php b/admin/tool/behat/classes/external/get_entity_generator.php index a3851f9c99e..569ed555666 100644 --- a/admin/tool/behat/classes/external/get_entity_generator.php +++ b/admin/tool/behat/classes/external/get_entity_generator.php @@ -28,8 +28,6 @@ namespace tool_behat\external; defined('MOODLE_INTERNAL') || die(); require_once($CFG->libdir . '/externallib.php'); -require_once($CFG->dirroot . '/vendor/autoload.php'); // Ensure we can load Behat and Facebook namespaces in behat libraries. -require_once($CFG->libdir . '/tests/behat/behat_data_generators.php'); /** * External function for getting properties of entity generators. @@ -59,6 +57,12 @@ class get_entity_generator extends \external_api { * @return array */ public static function execute(string $entitytype): array { + global $CFG; + + // Ensure we can load Behat and Facebook namespaces in behat libraries. + require_once("{$CFG->dirroot}/vendor/autoload.php"); + require_once("{$CFG->libdir}/tests/behat/behat_data_generators.php"); + $params = self::validate_parameters(self::execute_parameters(), ['entitytype' => $entitytype]); $context = \context_system::instance(); self::validate_context($context);