Clarify types on custom hooks
authorEileen McNaughton <emcnaughton@wikimedia.org>
Thu, 3 Jun 2021 00:56:16 +0000 (12:56 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Thu, 3 Jun 2021 00:57:33 +0000 (12:57 +1200)
The custom & customPre hooks are not called elsewhere in gituniverse
so we can add type hints and fix casting & comments to make it
clearer what the variables are

CRM/Core/BAO/CustomValue.php
CRM/Core/BAO/CustomValueTable.php
CRM/Utils/Hook.php

index 555077b0428c190e93c682eec1395a860316373b..ebf1f75aa09a7897e8e9fedfef33c479966a3a47 100644 (file)
@@ -194,7 +194,7 @@ class CRM_Core_BAO_CustomValue extends CRM_Core_DAO {
     $tableName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $customGroupID, 'table_name');
 
     // Retrieve the $entityId so we can pass that to the hook.
-    $entityID = CRM_Core_DAO::singleValueQuery("SELECT entity_id FROM {$tableName} WHERE id = %1", [
+    $entityID = (int) CRM_Core_DAO::singleValueQuery("SELECT entity_id FROM {$tableName} WHERE id = %1", [
       1 => [$customValueID, 'Integer'],
     ]);
 
@@ -203,7 +203,7 @@ class CRM_Core_BAO_CustomValue extends CRM_Core_DAO {
     CRM_Core_DAO::executeQuery($sql);
 
     CRM_Utils_Hook::custom('delete',
-      $customGroupID,
+      (int) $customGroupID,
       $entityID,
       $customValueID
     );
index e0992417599f0cf98113a5de9e5f83a920e05b68..eab4a9b8591b247839b6dce58cd4ba5f2f385050 100644 (file)
@@ -48,8 +48,7 @@ class CRM_Core_BAO_CustomValueTable {
         $count = 1;
 
         $firstField = reset($fields);
-        $entityID = $firstField['entity_id'];
-        $hookID = $firstField['custom_group_id'];
+        $entityID = (int) $firstField['entity_id'];
         $isMultiple = $firstField['is_multiple'];
         if (array_key_exists('id', $firstField)) {
           $sqlOP = "UPDATE $tableName ";
@@ -64,8 +63,9 @@ class CRM_Core_BAO_CustomValueTable {
           $hookOP = 'create';
         }
 
-        CRM_Utils_Hook::customPre($hookOP,
-          $hookID,
+        CRM_Utils_Hook::customPre(
+          $hookOP,
+          (int) $firstField['custom_group_id'],
           $entityID,
           $fields
         );
@@ -273,7 +273,7 @@ class CRM_Core_BAO_CustomValueTable {
           CRM_Core_DAO::executeQuery($query, $params);
 
           CRM_Utils_Hook::custom($hookOP,
-            $hookID,
+            (int) $firstField['custom_group_id'],
             $entityID,
             $fields
           );
index 746290b0232c531037826458cfe1b788b068a144..20b606f782ea279bd84ea9205d362dba4b373532 100644 (file)
@@ -517,9 +517,9 @@ abstract class CRM_Utils_Hook {
    *
    * @param string $op
    *   The type of operation being performed.
-   * @param string $groupID
+   * @param int $groupID
    *   The custom group ID.
-   * @param object $entityID
+   * @param int $entityID
    *   The entityID of the row in the custom table.
    * @param array $params
    *   The parameters that were sent into the calling function.
@@ -527,7 +527,7 @@ abstract class CRM_Utils_Hook {
    * @return null
    *   the return value is ignored
    */
-  public static function custom($op, $groupID, $entityID, &$params) {
+  public static function custom(string $op, int $groupID, int $entityID, &$params) {
     return self::singleton()
       ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, self::$_nullObject, self::$_nullObject, 'civicrm_custom');
   }
@@ -537,9 +537,9 @@ abstract class CRM_Utils_Hook {
    *
    * @param string $op
    *   The type of operation being performed.
-   * @param string $groupID
+   * @param int $groupID
    *   The custom group ID.
-   * @param object $entityID
+   * @param int $entityID
    *   The entityID of the row in the custom table.
    * @param array $params
    *   The parameters that were sent into the calling function.
@@ -547,7 +547,7 @@ abstract class CRM_Utils_Hook {
    * @return null
    *   the return value is ignored
    */
-  public static function customPre($op, $groupID, $entityID, &$params) {
+  public static function customPre(string $op, int $groupID, int $entityID, array &$params) {
     return self::singleton()
       ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, self::$_nullObject, self::$_nullObject, 'civicrm_customPre');
   }