Civi - Refactor unnecessary uses of CRM_Utils_Array::value
authorcolemanw <coleman@civicrm.org>
Mon, 23 Oct 2023 15:21:56 +0000 (11:21 -0400)
committercolemanw <coleman@civicrm.org>
Mon, 23 Oct 2023 15:21:56 +0000 (11:21 -0400)
Civi/API/Api3SelectQuery.php
Civi/API/SelectQuery.php
Civi/API/Subscriber/ChainSubscriber.php
Civi/API/Subscriber/DynamicFKAuthorization.php
Civi/API/WhitelistRule.php
Civi/Core/SettingsManager.php
Civi/Core/SettingsMetadata.php
Civi/Token/TokenRow.php

index 366223290e7f3c5e778a681e28d2cc150538ffd3..66c5a3fa6787ccc31f398c304ac79632c4b7cfd3 100644 (file)
@@ -157,8 +157,8 @@ class Api3SelectQuery extends SelectQuery {
     }
     foreach ($this->apiFieldSpec as $field) {
       if (
-        $fieldName == \CRM_Utils_Array::value('uniqueName', $field) ||
-        array_search($fieldName, \CRM_Utils_Array::value('api.aliases', $field, [])) !== FALSE
+        $fieldName == ($field['uniqueName'] ?? NULL) ||
+        array_search($fieldName, $field['api.aliases'] ?? []) !== FALSE
       ) {
         return $field;
       }
index f22742e844e8c638a8dc6c837ff109a684a5c282..b384a0e625a51486afb766cfc5115df33aa9a445 100644 (file)
@@ -217,7 +217,7 @@ abstract class SelectQuery {
       }
       $fieldInfo = $fkField['FKApiSpec'][$fieldName] ?? NULL;
 
-      $keyColumn = \CRM_Utils_Array::value('FKKeyColumn', $fkField, 'id');
+      $keyColumn = $fkField['FKKeyColumn'] ?? 'id';
       if (!$fieldInfo || !isset($fkField['FKApiSpec'][$keyColumn])) {
         // Join doesn't exist - might be another param with a dot in it for some reason, we'll just ignore it.
         return NULL;
@@ -404,7 +404,7 @@ abstract class SelectQuery {
       $words = preg_split("/[\s]+/", $item);
       if ($words) {
         // Direction defaults to ASC unless DESC is specified
-        $direction = strtoupper(\CRM_Utils_Array::value(1, $words, '')) == 'DESC' ? ' DESC' : '';
+        $direction = strtoupper($words[1] ?? '') === 'DESC' ? ' DESC' : '';
         $field = $this->getField($words[0]);
         if ($field) {
           $this->query->orderBy(self::MAIN_TABLE_ALIAS . '.' . $field['name'] . $direction, NULL, $index);
index 84b011eed431c3d91c6a91e06704303f300dfb13..c258c56eefdcf0347e17a988aeb34c0174af6ede 100644 (file)
@@ -162,17 +162,16 @@ class ChainSubscriber implements EventSubscriberInterface {
               $defaultSubParams[$lowercase_entity . "_id"] = $parentAPIValues['id'];
             }
           }
-          // @todo remove strtolower: $subEntity is already lower case
-          if ($entity != 'Contact' && \CRM_Utils_Array::value(strtolower($subEntity . "_id"), $parentAPIValues)) {
+          if ($entity !== 'Contact' && !empty($parentAPIValues[$subEntity . '_id'])) {
             //e.g. if event_id is in the values returned & subentity is event
             //then pass in event_id as 'id' don't do this for contact as it
             //does some weird things like returning primary email &
             //thus limiting the ability to chain email
             //TODO - this might need the camel treatment
-            $defaultSubParams['id'] = $parentAPIValues[$subEntity . "_id"];
+            $defaultSubParams['id'] = $parentAPIValues[$subEntity . '_id'];
           }
 
-          if (\CRM_Utils_Array::value('entity_table', $result['values'][$idIndex]) == $subEntity) {
+          if (($result['values'][$idIndex]['entity_table'] ?? NULL) == $subEntity) {
             $defaultSubParams['id'] = $result['values'][$idIndex]['entity_id'];
           }
           // if we are dealing with the same entity pass 'id' through
index e84bbb901de6be61cee03bfc093f89ff3a4368bc..1a6a684f5654f6c4becfcfa513301bd699450700 100644 (file)
@@ -177,7 +177,7 @@ class DynamicFKAuthorization implements EventSubscriberInterface {
         $this->authorizeDelegate(
           $apiRequest['action'],
           $apiRequest['params']['entity_table'],
-          \CRM_Utils_Array::value('entity_id', $apiRequest['params'], NULL),
+          $apiRequest['params']['entity_id'] ?? NULL,
           $apiRequest
         );
         return;
index 25d5e4f3c35882dc5b491386399f7879911cbd0d..e23ee655ce506f5e461c64b07b7fa7bf5a95c21d 100644 (file)
@@ -181,7 +181,7 @@ class WhitelistRule {
         // Kind'a silly we need to (re(re))parse here for each rule; would be more
         // performant if pre-parsed by Request::create().
         $options = _civicrm_api3_get_options_from_params($apiRequest['params'], TRUE, $apiRequest['entity'], 'get');
-        $return = \CRM_Utils_Array::value('return', $options, []);
+        $return = $options['return'] ?? [];
         $activatedFields = array_merge($activatedFields, array_keys($return));
       }
 
index feb3f86f66d13c06dff092d459f81d6b36e350f8..6bf667c05cb387ba5d7198785155d033b08d9d07 100644 (file)
@@ -239,7 +239,7 @@ class SettingsManager {
    */
   protected function getMandatory($entity) {
     if ($this->mandatory === NULL) {
-      $this->mandatory = self::parseMandatorySettings(\CRM_Utils_Array::value('civicrm_setting', $GLOBALS));
+      $this->mandatory = self::parseMandatorySettings($GLOBALS['civicrm_setting'] ?? NULL);
     }
     return $this->mandatory[$entity];
   }
index 00b8f034f0eb9f061a5d3690ca01cf01bb6b19d7..4f31a8a53b3da1d74f419ff02329c739475aa4f1 100644 (file)
@@ -155,7 +155,7 @@ class SettingsMetadata {
       // but it's tightly coupled to DAO/field. However, if you really need to support
       // more pseudoconstant types, then probably best to refactor it. For now, KISS.
       if (!empty($pseudoconstant['optionGroupName'])) {
-        $keyColumn = \CRM_Utils_Array::value('keyColumn', $pseudoconstant, 'value');
+        $keyColumn = $pseudoconstant['keyColumn'] ?? 'value';
         if (is_array($optionsFormat)) {
           $optionValues = \CRM_Core_OptionValue::getValues(['name' => $pseudoconstant['optionGroupName']]);
           foreach ($optionValues as $option) {
index 0379febff25852deb232ff364efc611e5970b21b..953154a2fc973ee40710855ed6644203f49f0164 100644 (file)
@@ -187,7 +187,7 @@ class TokenRow {
       'return' => $customFieldName,
       'id' => $entityID,
     ]);
-    $fieldValue = \CRM_Utils_Array::value($customFieldName, $record, '');
+    $fieldValue = $record[$customFieldName] ?? '';
     $originalValue = $fieldValue;
     // format the raw custom field value into proper display value
     if (isset($fieldValue)) {
@@ -281,7 +281,7 @@ class TokenRow {
               if ($entity == 'activity' && $field == 'details') {
                 $htmlTokens[$entity][$field] = $value;
               }
-              elseif (\CRM_Utils_Array::value('data_type', \CRM_Utils_Array::value($field, $entityFields['values'])) == 'Memo') {
+              elseif (($entityFields['values'][$field]['data_type'] ?? NULL) === 'Memo') {
                 // Memo fields aka custom fields of type Note are html.
                 $htmlTokens[$entity][$field] = \CRM_Utils_String::purifyHTML($value);
               }