ILIAS  release_8 Revision v8.24
ApiHook.php
Go to the documentation of this file.
1<?php
2
20
29{
33 public static string $USER_ID_HOOK = "UserId";
34
38 public static string $CONTEXT_ID_HOOK = "ContextId";
39
43 public static string $GROUPS_SERVICE_HOOK = "Groups";
44
48 public static string $MEMBERSHIPS_SERVICE_HOOK = "Memberships";
49
53 public static string $OUTCOMES_SERVICE_HOOK = "Outcomes";
54
58 public static string $TOOL_SETTINGS_SERVICE_HOOK = "ToolSettings";
59
63 public static string $ACCESS_TOKEN_SERVICE_HOOK = "AccessToken";
64
68 private static array $API_HOOKS = array();
69
77 public static function registerApiHook(string $hookName, string $familyCode, string $className)
78 {
79 $objectClass = get_class();
80 self::$API_HOOKS["{$objectClass}-{$hookName}-{$familyCode}"] = $className;
81 }
82
88 private static function getApiHook(string $hookName, string $familyCode)
89 {
90 $class = self::class;
91 return self::$API_HOOKS["{$class}-{$hookName}-{$familyCode}"];
92 }
93
100 private static function hasApiHook(string $hookName, string $familyCode): bool
101 {
102 $class = self::class;
103 return isset(self::$API_HOOKS["{$class}-{$hookName}-{$familyCode}"]);
104 }
105
115 private static function hasConfiguredApiHook(string $hookName, string $familyCode, $sourceObject): bool
116 {
117 $ok = false;
118 $class = self::class;
119 if (isset(self::$API_HOOKS["{$class}-{$hookName}-{$familyCode}"])) {
120 $className = self::$API_HOOKS["{$class}-{$hookName}-{$familyCode}"];
121 $hook = new $className($sourceObject);
122 $ok = $hook->isConfigured();
123 }
124
125 return $ok;
126 }
127}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: ApiContext.php:19
trait ApiHook
Trait to handle API hook registrations.
Definition: ApiHook.php:29
static string $CONTEXT_ID_HOOK
Context Id hook name.
Definition: ApiHook.php:38
static string $GROUPS_SERVICE_HOOK
Course Groups service hook name.
Definition: ApiHook.php:43
static string $OUTCOMES_SERVICE_HOOK
Outcomes service hook name.
Definition: ApiHook.php:53
static array $API_HOOKS
API hook class names.
Definition: ApiHook.php:68
static string $MEMBERSHIPS_SERVICE_HOOK
Memberships service hook name.
Definition: ApiHook.php:48
static getApiHook(string $hookName, string $familyCode)
Get the class name for an API hook.
Definition: ApiHook.php:88
static registerApiHook(string $hookName, string $familyCode, string $className)
Register the availability of an API hook.
Definition: ApiHook.php:77
static hasConfiguredApiHook(string $hookName, string $familyCode, $sourceObject)
Check if an API hook is registered and configured.
Definition: ApiHook.php:115
static string $ACCESS_TOKEN_SERVICE_HOOK
Access Token service hook name.
Definition: ApiHook.php:63
static string $TOOL_SETTINGS_SERVICE_HOOK
Tool Settings service hook name.
Definition: ApiHook.php:58
static hasApiHook(string $hookName, string $familyCode)
Check if an API hook is registered.
Definition: ApiHook.php:100