Moodle PHP Documentation 5.1
Moodle 5.1dev (Build: 20250711) (9addea9f0ac)
/home/runner/work/phpdoc/phpdoc/.moodle/lib/classes/hook/di_configuration.php

Add a definition to the Dependency Injection container.

Add a definition to the Dependency Injection container.A definition is a callable that returns an instance of the service.

The callable can take arguments which are resolved using the DI container, for example a definition for the following example service requires moodle_database, and core\formatting which will be resolved using the DI container.

$hook->add_definition( id: mod::example::service::class, definition: function ( moodle_database $db, core\formatting $formatter, ): mod::example::service { return new mod::example::service( $database, $formatter, $some, $other, $args, )' }, );

Parameters
string$idThe identifier of the container entry
callable | Definition::Definition | Definition::SelfResolvingDefinition | Definition::Helper::DefinitionHelper$definitionThe definition of the container entry
Return values
self
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core\hook;
#[label('A hook to allow per-component configuration of the DI container.')]
class di_configuration {
public function __construct(
protected ContainerBuilder $builder,
) {
}
public function add_definition(
string $id,
callable|Definition\Definition|Definition\SelfResolvingDefinition|Definition\Helper\DefinitionHelper $definition,
): self {
$this->builder->addDefinitions([
$id => $definition,
]);
return $this;
}
}
Definition ContainerBuilder.php:38
Definition label.php:27
__construct()
Constructor creates and initialises parser resource and calls initialise.
Definition xmlparser.php:60
&#160;
Definition ArrayDefinition.php:5
&#160;