gamify-1.1.x-dev/src/Traits/DbLogResultTrait.php

src/Traits/DbLogResultTrait.php
<?php

namespace Drupal\gamify\Traits;


/**
 * Trait for using Gamify entity log.
 *
 * @ingroup gamify
 */
trait DbLogResultTrait {

  public function getNewResult(string $trigger, array $entries): ?object {
    if (count($entries)) {
      $result = new \stdClass();
      $result->origin = $trigger;
      $result->interim = ['default' => $entries];
      return $result;
    }
    return NULL;
  }

  /**
   * Get array nesting level of an array.
   *
   * @param object &$result
   *   Some variable assumed to be an array.
   */
  public function clearResult(object &$result): void {
    foreach ($result as $key => $value) {
      if (!in_array($key, ['origin', 'target_uid', 'interim'])) {
        unset($result->$key);
      }
    }
    // Remove all results from interim except of 'default'.
    if (is_array($result->interim) && array_key_exists('default', $result->interim)) {
      $result->interim = ['default' => $result->interim['default']];
    }
  }



  /**
   * Get array nesting level of an interim result array.
   *
   * @param mixed $array
   *   Some variable assumed to be an array.
   *
   * @return int
   *   The array nesting level.
   */
  public function getNestingLevel(mixed $array): int {
    $nesting_level = 0;
    while (is_array($array)) {
      $array = $array[array_key_first($array)];
      $nesting_level++;
    }
    return $nesting_level;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc