. namespace core\router\parameters; use core\param; use core\router\schema\example; use core\router\schema\referenced_object; /** * A component path parameter. * * @package core * @copyright 2023 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class path_component extends \core\router\schema\parameters\path_parameter implements referenced_object { /** * Create a new path_component parameter. * * @param string $name The name of the parameter to use for the component name * @param mixed ...$extra Additional arguments */ public function __construct( string $name = 'component', ...$extra, ) { $extra['name'] = $name; $extra['type'] = param::COMPONENT; $extra['description'] = 'The name of a Moodle component, in frankenstyle format.'; $extra['examples'] = [ new example( name: 'The core subsystem', value: 'core', ), new example( name: 'The Course subsystem', value: 'core_course', ), new example( name: 'An activity module', value: 'mod_assign', ), new example( name: 'An assignment subplugin', value: 'assignsubmission_file', ), ]; parent::__construct(...$extra); } }