chore: Аннотации к типам
This commit is contained in:
parent
e2ba6bd46e
commit
e5713e9015
28 changed files with 305 additions and 110 deletions
|
|
@ -12,7 +12,15 @@ class Drawing
|
|||
const ALIGN_CENTER = "center";
|
||||
const ALIGN_RIGHT = "right";
|
||||
|
||||
static function drawrectnagle(GdImage &$image, int $left, int $top, int $width, int $height, array $rgb): void
|
||||
/**
|
||||
* @param GdImage $image
|
||||
* @param int $left
|
||||
* @param int $top
|
||||
* @param int $width
|
||||
* @param int $height
|
||||
* @param array $rgb
|
||||
*/
|
||||
static function drawRectangle(GdImage &$image, int $left, int $top, int $width, int $height, array $rgb): void
|
||||
{
|
||||
$color = imagecolorallocate($image, $rgb[0], $rgb[1], $rgb[2]);
|
||||
$right = $left + $width;
|
||||
|
|
@ -25,6 +33,19 @@ class Drawing
|
|||
|
||||
/**
|
||||
* http://ru2.php.net/imagettftext
|
||||
*
|
||||
* @param GdImage $image
|
||||
* @param int $size
|
||||
* @param float $angle
|
||||
* @param int $left
|
||||
* @param int $top
|
||||
* @param int $color
|
||||
* @param string $font
|
||||
* @param string $text
|
||||
* @param int $max_width
|
||||
* @param int $max_height
|
||||
* @param string $align
|
||||
* @param string $valign
|
||||
*/
|
||||
static function imagettftextbox(
|
||||
GdImage &$image,
|
||||
|
|
@ -115,7 +136,6 @@ class Drawing
|
|||
return $largest_line_height * count($lines);
|
||||
}
|
||||
|
||||
|
||||
function imagettftextSp(GdImage $image, float $size, float $angle, int $x, int $y, int $color, string $font, string $text, int $spacing = 0)
|
||||
{
|
||||
if ($spacing == 0) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ use GdImage;
|
|||
class Image
|
||||
{
|
||||
/**
|
||||
* @param $uri
|
||||
* @param string $uri
|
||||
* @return GdImage|false
|
||||
*/
|
||||
static function load($uri): GdImage|false
|
||||
|
|
|
|||
|
|
@ -2,10 +2,16 @@
|
|||
|
||||
namespace ctiso\Tools;
|
||||
|
||||
class StringUtil {
|
||||
class StringUtil
|
||||
{
|
||||
|
||||
// from creole
|
||||
static function strToArray(string $str): array {
|
||||
/**
|
||||
* Преобразует строку в массив
|
||||
* @param string $str
|
||||
* @return array
|
||||
*/
|
||||
static function strToArray(string $str): array
|
||||
{
|
||||
$str = substr($str, 1, -1); // remove { }
|
||||
$res = [];
|
||||
|
||||
|
|
@ -13,7 +19,7 @@ class StringUtil {
|
|||
$in_subarr = 0;
|
||||
|
||||
$toks = explode(',', $str);
|
||||
foreach($toks as $tok) {
|
||||
foreach ($toks as $tok) {
|
||||
if ($in_subarr > 0) { // already in sub-array?
|
||||
$subarr[$in_subarr][] = $tok;
|
||||
if ('}' === substr($tok, -1, 1)) { // check to see if we just added last component
|
||||
|
|
@ -21,7 +27,7 @@ class StringUtil {
|
|||
$in_subarr--;
|
||||
}
|
||||
} elseif ($tok[0] === '{') { // we're inside a new sub-array
|
||||
if ('}' !== substr($tok, -1, 1)) {
|
||||
if ('}' !== substr($tok, -1, 1)) {
|
||||
$in_subarr++;
|
||||
// if sub-array has more than one element
|
||||
$subarr[$in_subarr] = [];
|
||||
|
|
@ -32,26 +38,37 @@ class StringUtil {
|
|||
} else { // not sub-array
|
||||
$val = trim($tok, '"'); // remove " (surrounding strings)
|
||||
// perform type castng here?
|
||||
$res[] = $val;
|
||||
$res[] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
//Нормализация строк на русском
|
||||
static function normalizeRussian(string $str): string {
|
||||
$result = preg_replace('/\s+/',' ', $str);
|
||||
/**
|
||||
* Нормализация строк на русском
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
static function normalizeRussian(string $str): string
|
||||
{
|
||||
$result = preg_replace('/\s+/', ' ', $str);
|
||||
if (is_string($result)) {
|
||||
$result = trim($result); //Замена длинных пробелов на одинарные, пробелы по краям
|
||||
$result = mb_strtolower($result);
|
||||
$result = preg_replace('/ё/','е', $str); //е на ё
|
||||
$result = preg_replace('/ё/', 'е', $str); //е на ё
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
//Проверка равенства двух строк на русском языке.
|
||||
static function equalRussianCheck($str1,$str2): bool {
|
||||
/**
|
||||
* Проверка равенства двух строк на русском языке.
|
||||
* @param string $str1
|
||||
* @param string $str2
|
||||
* @return bool
|
||||
*/
|
||||
static function equalRussianCheck($str1, $str2): bool
|
||||
{
|
||||
return self::normalizeRussian($str1) == self::normalizeRussian($str2);
|
||||
}
|
||||
|
||||
|
|
@ -61,33 +78,52 @@ class StringUtil {
|
|||
* output: true
|
||||
* input: $str="foo" $variants="foo1|foo2|foo3"
|
||||
* output: false
|
||||
*/
|
||||
static function compare_string_to_variants($str, string $variants){
|
||||
*
|
||||
* @param string $str
|
||||
* @param string $variants
|
||||
* @return bool
|
||||
*/
|
||||
static function compare_string_to_variants($str, string $variants)
|
||||
{
|
||||
$variants_array = explode('|', $variants);
|
||||
$founded = false;
|
||||
foreach ($variants_array as $variant) {
|
||||
$founded = $founded || self::equalRussianCheck($variant, $str);
|
||||
$founded = $founded || self::equalRussianCheck($variant, $str);
|
||||
}
|
||||
return $founded;
|
||||
}
|
||||
|
||||
static function mb_str_split(string $str): array|false {
|
||||
/**
|
||||
* Разбивает строку на массив символов
|
||||
* @param string $str
|
||||
* @return array|false
|
||||
*/
|
||||
static function mb_str_split(string $str): array|false
|
||||
{
|
||||
return preg_split('~~u', $str, -1, PREG_SPLIT_NO_EMPTY);
|
||||
}
|
||||
|
||||
static function mb_strtr($str, $from, $to) {
|
||||
/**
|
||||
* Заменяет символы в строке на символы из другой строки
|
||||
* @param string $str
|
||||
* @param string $from
|
||||
* @param string $to
|
||||
* @return string
|
||||
*/
|
||||
static function mb_strtr($str, $from, $to)
|
||||
{
|
||||
return str_replace(self::mb_str_split($from), self::mb_str_split($to), $str);
|
||||
}
|
||||
|
||||
static function encodestring(string $st): string
|
||||
{
|
||||
$st = self::mb_strtr($st,"абвгдеёзийклмнопрстуфхъыэ !+()", "abvgdeeziyklmnoprstufh_ie_____");
|
||||
$st = self::mb_strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ", "ABVGDEEZIYKLMNOPRSTUFH_IE");
|
||||
$st = self::mb_strtr($st, "абвгдеёзийклмнопрстуфхъыэ !+()", "abvgdeeziyklmnoprstufh_ie_____");
|
||||
$st = self::mb_strtr($st, "АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ", "ABVGDEEZIYKLMNOPRSTUFH_IE");
|
||||
$st = strtr($st, [
|
||||
" " => '_',
|
||||
"." => '_',
|
||||
"," => '_',
|
||||
"?" => '_',
|
||||
"?" => '_',
|
||||
"\"" => '_',
|
||||
"'" => '_',
|
||||
"/" => '_',
|
||||
|
|
@ -95,18 +131,38 @@ class StringUtil {
|
|||
"%" => '_',
|
||||
"#" => '_',
|
||||
"*" => '_',
|
||||
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
|
||||
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
|
||||
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
|
||||
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
|
||||
"Й"=>"i", "й"=>"ie", "ё"=>"Ye",
|
||||
"№"=>"N"
|
||||
"ж" => "zh",
|
||||
"ц" => "ts",
|
||||
"ч" => "ch",
|
||||
"ш" => "sh",
|
||||
"щ" => "shch",
|
||||
"ь" => "",
|
||||
"ю" => "yu",
|
||||
"я" => "ya",
|
||||
"Ж" => "ZH",
|
||||
"Ц" => "TS",
|
||||
"Ч" => "CH",
|
||||
"Ш" => "SH",
|
||||
"Щ" => "SHCH",
|
||||
"Ь" => "",
|
||||
"Ю" => "YU",
|
||||
"Я" => "YA",
|
||||
"Й" => "i",
|
||||
"й" => "ie",
|
||||
"ё" => "Ye",
|
||||
"№" => "N"
|
||||
]);
|
||||
return strtolower($st);
|
||||
}
|
||||
|
||||
static function validate_encoded_string(string $st): int|false {
|
||||
/**
|
||||
* Проверяет, является ли строка кодированной
|
||||
* @param string $st
|
||||
* @return int|false
|
||||
*/
|
||||
static function validate_encoded_string(string $st): int|false
|
||||
{
|
||||
$enc_st = self::encodestring($st);
|
||||
return preg_match('/^[\w_-]+(\.[\w_-]+)?$/', $enc_st);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue