ILIAS  release_8 Revision v8.23
ApiHook.php
Go to the documentation of this file.
1 <?php
2 
20 
28 trait ApiHook
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 }
static string $CONTEXT_ID_HOOK
Context Id hook name.
Definition: ApiHook.php:38
static string $MEMBERSHIPS_SERVICE_HOOK
Memberships service hook name.
Definition: ApiHook.php:48
static array $API_HOOKS
API hook class names.
Definition: ApiHook.php:68
static hasConfiguredApiHook(string $hookName, string $familyCode, $sourceObject)
Check if an API hook is registered and configured.
Definition: ApiHook.php:115
static hasApiHook(string $hookName, string $familyCode)
Check if an API hook is registered.
Definition: ApiHook.php:100
static registerApiHook(string $hookName, string $familyCode, string $className)
Register the availability of an API hook.
Definition: ApiHook.php:77
static getApiHook(string $hookName, string $familyCode)
Get the class name for an API hook.
Definition: ApiHook.php:88
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: ApiContext.php:19
static string $OUTCOMES_SERVICE_HOOK
Outcomes service hook name.
Definition: ApiHook.php:53
static string $ACCESS_TOKEN_SERVICE_HOOK
Access Token service hook name.
Definition: ApiHook.php:63
static string $GROUPS_SERVICE_HOOK
Course Groups service hook name.
Definition: ApiHook.php:43
static string $TOOL_SETTINGS_SERVICE_HOOK
Tool Settings service hook name.
Definition: ApiHook.php:58