UserModel::getIDs PHP Méthode

getIDs() public méthode

public getIDs ( array $IDs, boolean $SkipCacheQuery = false ) : array
$IDs array
$SkipCacheQuery boolean
Résultat array
    public function getIDs($IDs, $SkipCacheQuery = false)
    {
        $DatabaseIDs = $IDs;
        $Data = [];
        if (!$SkipCacheQuery) {
            $Keys = [];
            // Make keys for cache query
            foreach ($IDs as $UserID) {
                if (!$UserID) {
                    continue;
                }
                $Keys[] = formatString(self::USERID_KEY, ['UserID' => $UserID]);
            }
            // Query cache layer
            $CacheData = Gdn::cache()->get($Keys);
            if (!is_array($CacheData)) {
                $CacheData = [];
            }
            foreach ($CacheData as $RealKey => $User) {
                if ($User === null) {
                    $ResultUserID = trim(strrchr($RealKey, '.'), '.');
                } else {
                    $ResultUserID = val('UserID', $User);
                }
                $this->setCalculatedFields($User);
                $Data[$ResultUserID] = $User;
            }
            //echo "from cache:\n";
            //print_r($Data);
            $DatabaseIDs = array_diff($DatabaseIDs, array_keys($Data));
            unset($CacheData);
        }
        // Clean out bogus blank entries
        $DatabaseIDs = array_diff($DatabaseIDs, [null, '']);
        // If we are missing any users from cache query, fill em up here
        if (sizeof($DatabaseIDs)) {
            $DatabaseData = $this->SQL->whereIn('UserID', $DatabaseIDs)->getWhere('User')->result(DATASET_TYPE_ARRAY);
            $DatabaseData = Gdn_DataSet::index($DatabaseData, 'UserID');
            //echo "from DB:\n";
            //print_r($DatabaseData);
            foreach ($DatabaseIDs as $ID) {
                if (isset($DatabaseData[$ID])) {
                    $User = $DatabaseData[$ID];
                    $this->userCache($User, $ID);
                    // Apply calculated fields
                    $this->setCalculatedFields($User);
                    $Data[$ID] = $User;
                } else {
                    $User = null;
                    $this->userCache($User, $ID);
                }
            }
        }
        $this->EventArguments['RequestedIDs'] = $IDs;
        $this->EventArguments['LoadedUsers'] =& $Data;
        $this->fireEvent('AfterGetIDs');
        return $Data;
    }
UserModel