MDL-69415 core_h5p: prepend H5P libraries in autoloader
authorSara Arjona <sara@moodle.com>
Mon, 22 Mar 2021 11:36:41 +0000 (12:36 +0100)
committerSara Arjona <sara@moodle.com>
Mon, 22 Mar 2021 11:39:16 +0000 (12:39 +0100)
Core and mod_hvp are using the same namespace for some H5P
libraries. This is causing some random errors.
In order to get the expected behaviour in Moodle core, this patch
prepends H5P libraries in order to guarantee they are loaded first.
Plugins using same libraries will need to use a different namespace
if they overlap and a different version of these libraries should
be used.

h5p/classes/local/library/handler.php

index 6108969..3e1ee64 100644 (file)
@@ -79,7 +79,9 @@ abstract class handler {
      * Register the H5P autoloader.
      */
     public static function register(): void {
-        spl_autoload_register([static::class, 'autoload']);
+        // Prepend H5P libraries in order to guarantee they are loaded first. Plugins using same libraries will need to use a
+        // different namespace if they want to use a different version.
+        spl_autoload_register([static::class, 'autoload'], true, true);
     }
 
     /**