. namespace core_course\hook; use stdClass; use Psr\EventDispatcher\StoppableEventInterface; /** * Hook before course deletion. * * @package core_course * @copyright 2024 Safat Shahin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ #[\core\attribute\label('Allows plugins or features to perform actions before a course is deleted.')] #[\core\attribute\tags('course')] class before_course_delete implements StoppableEventInterface { /** * @var bool Whether the propagation of this event has been stopped. */ protected bool $stopped = false; /** * Constructor for the hook. * * @param stdClass $course The course instance. */ public function __construct( public readonly stdClass $course, ) { } public function isPropagationStopped(): bool { return $this->stopped; } /** * Stop the propagation of this event. */ public function stop(): void { $this->stopped = true; } }