Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

(no description)

File Size: 152 lines (6 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class


Class: XMLProcessor  - X-Ref


__construct(XMLReader $xmlReader)   X-Ref

param: XMLReader $xmlReader XMLReader object

registerCallback(string $nodeName, int $nodeType, $callback)   X-Ref

param: string   $nodeName A callback may be triggered when a node with this name is read
param: int      $nodeType Type of the node [NODE_TYPE_START || NODE_TYPE_END]
param: callable $callback Callback to execute when the read node has the given name and type

readUntilStopped()   X-Ref
Resumes the reading of the XML file where it was left off.
Stops whenever a callback indicates that reading should stop or at the end of the file.


getCallbackKey(string $nodeName, int $nodeType)   X-Ref

param: string $nodeName Name of the node
param: int    $nodeType Type of the node [NODE_TYPE_START || NODE_TYPE_END]
return: string Key used to store the associated callback

getInvokableCallbackData($callback)   X-Ref
Because the callback can be a "protected" function, we don't want to use call_user_func() directly
but instead invoke the callback using Reflection. This allows the invocation of "protected" functions.
Since some functions can be called a lot, we pre-process the callback to only return the elements that
will be needed to invoke the callback later.

param: callable $callback Array reference to a callback: [OBJECT, METHOD_NAME]
return: array{reflectionMethod: ReflectionMethod, reflectionObject: object} Associative array containing the elements needed to invoke the callback using Reflection

getRegisteredCallbackData(string $nodeNamePossiblyWithPrefix, string $nodeNameWithoutPrefix, int $nodeType)   X-Ref

param: string $nodeNamePossiblyWithPrefix Name of the node, possibly prefixed
param: string $nodeNameWithoutPrefix      Name of the same node, un-prefixed
param: int    $nodeType                   Type of the node [NODE_TYPE_START || NODE_TYPE_END]
return: null|array{reflectionMethod: ReflectionMethod, reflectionObject: object} Callback data to be used for execution when a node of the given name/type is read or NULL if none found

invokeCallback(array $callbackData, array $args)   X-Ref

param: array{reflectionMethod: ReflectionMethod, reflectionObject: object} $callbackData Associative array containing data to invoke the callback using Reflection
param: XMLReader[]                                                         $args         Arguments to pass to the callback
return: int Callback response