Генерация облака тегов на PHP

В итернете существует достаточно много рецептом как сделать облако тегов, и я не буду останавливаться на этой теме подробно. Основное, что мне не понравилось в примерах, что весь код был перемешан в одну кучу. Основа облака тегов - это формула определения размера тега. Вот для неё я и написал свою функцию (хелпер). А остальное, для вас не должно составить труда написать самостоятельно. В хелпере реализовано 2 формулы, для линейного расчета, и для логарифмического.

В итернете существует достаточно много рецептом как сделать облако тегов, и я не буду останавливаться на этой теме подробно. Основное, что мне не понравилось в примерах, что весь код был перемешан в одну кучу. Основа облака тегов - это формула определения размера тега. Вот для неё я и написал свою функцию (хелпер). А остальное, для вас не должно составить труда написать самостоятельно. В хелпере реализовано 2 формулы, для линейного расчета, и для логарифмического.

[code] class TagCloudHelper {

public static function tagSize($count, $minCount, $maxCount, $minSize = 1, $maxSize = 10)
{
    if ($count == 0)
    {
        return 0;
    }

    $diff = $maxCount - $minCount;

    if ($diff == 0) 
    {   
        $diff++;
    }

    $diffSize = $maxSize - $minSize;

    return round((($count - $minCount) / $diff) * $diffSize + $minSize);    
}

public static function logTagSize($count, $minCount, $maxCount, $minSize = 1, $maxSize = 10)
{
    $minCount = log($minCount + 1);

    $maxCount = log($maxCount + 1);

    if ($count == 0)
    {
        return 0;
    }

    $diffSize = $maxSize - $minSize;

    $diffCount = $maxCount - $minCount;

    return round($minSize + (log(1 + $count) - $minCount) * ($diffSize / $diffCount));
}

} [/code]

11.11.2016