#75 - new colors

This commit is contained in:
Adrian Hopek
2022-03-16 09:42:17 +01:00
parent 894a1468b2
commit 7261c82c57
3 changed files with 82 additions and 18 deletions

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace Toby\Eloquent\Helpers;
class ColorGenerator
{
public static function generate(string $text): string
{
$colors = config("colors");
$hash = static::calculateHash($text);
$index = $hash - count($colors) * floor($hash / count($colors));
return $colors[$index];
}
protected static function calculateHash(string $text): int
{
$hash = 0;
if (empty($text)) {
return $hash;
}
for ($i = 0; $i < mb_strlen($text); $i++) {
$hash = abs(($hash << 2) - $hash) + mb_ord($text[$i]);
}
return $hash;
}
}