X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FHook.php;h=381b69f8f68521ce164e56ebf4fe05589a8130a8;hb=7c5f6d7c004e6a3c2999bcc01903c8e4bbbc957b;hp=38c1da128e0db51fdf0e1678591e21dea5858ec7;hpb=fe71a72e510e046d7f21d7064802a15f64c6b957;p=civicrm-core.git diff --git a/CRM/Utils/Hook.php b/CRM/Utils/Hook.php index 38c1da128e..381b69f8f6 100644 --- a/CRM/Utils/Hook.php +++ b/CRM/Utils/Hook.php @@ -132,7 +132,7 @@ abstract class CRM_Utils_Hook { * but also accepts enough information to support Symfony Event * dispatching. * - * @param array|int $names + * @param array $names * (Recommended) Array of parameter names, in order. * Using an array is recommended because it enables full * event-broadcasting behaviors. @@ -152,32 +152,17 @@ abstract class CRM_Utils_Hook { &$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6, $fnSuffix ) { - if (!\Civi\Core\Container::isContainerBooted()) { - $prebootHooks = ['civicrm_container', 'civicrm_entityTypes']; - // 'civicrm_config' ? - if (in_array($fnSuffix, $prebootHooks)) { - $count = is_array($names) ? count($names) : $names; - return $this->invokeViaUF($count, $arg1, $arg2, $arg3, $arg4, $arg5, $arg6, $fnSuffix); - } - else { - // TODO: Emit a warning, eg - // error_log("Warning: hook_$fnSuffix fired prematurely. Dropped."); - return; - } - } - if (!is_array($names)) { // We were called with the old contract wherein $names is actually an int. // Symfony dispatcher requires some kind of name. - // TODO: Emit a warning, eg - // error_log("Warning: hook_$fnSuffix does not give names for its parameters. It will present odd names to any Symfony event listeners."); + Civi::log()->warning("hook_$fnSuffix should be updated to pass an array of parameter names to CRM_Utils_Hook::invoke().", ['civi.tag' => 'deprecated']); $compatNames = ['arg1', 'arg2', 'arg3', 'arg4', 'arg5', 'arg6']; $names = array_slice($compatNames, 0, (int) $names); } $event = \Civi\Core\Event\GenericHookEvent::createOrdered( $names, - array(&$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6) + [&$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6] ); \Civi::dispatcher()->dispatch('hook_' . $fnSuffix, $event); return $event->getReturnValues(); @@ -692,7 +677,7 @@ abstract class CRM_Utils_Hook { * the return value is ignored */ public static function activeTheme(&$theme, $context) { - return self::singleton()->invoke(array('theme', 'context'), $theme, $context, + return self::singleton()->invoke(['theme', 'context'], $theme, $context, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_activeTheme' ); @@ -883,7 +868,7 @@ abstract class CRM_Utils_Hook { * @return mixed */ public static function alterAdminPanel(&$panels) { - return self::singleton()->invoke(array('panels'), $panels, + return self::singleton()->invoke(['panels'], $panels, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_alterAdminPanel' ); @@ -2425,13 +2410,20 @@ abstract class CRM_Utils_Hook { /** * Check system status. * - * @param array $messages - * Array. A list of messages regarding system status. + * @param CRM_Utils_Check_Message[] $messages + * A list of messages regarding system status + * @param array $statusNames + * If specified, only these checks are being requested and others should be skipped + * @param bool $includeDisabled + * Run checks that have been explicitly disabled (default false) * @return mixed */ - public static function check(&$messages) { - return self::singleton() - ->invoke(['messages'], $messages, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_check'); + public static function check(&$messages, $statusNames = [], $includeDisabled = FALSE) { + return self::singleton()->invoke(['messages'], + $messages, $statusNames, $includeDisabled, + self::$_nullObject, self::$_nullObject, self::$_nullObject, + 'civicrm_check' + ); } /**