86dev/php-tools

1.3.2 2021-06-09 07:58 UTC

This package is auto-updated.

Last update: 2024-09-09 14:51:50 UTC


README

一组PHP工具

布尔值

BoolHelper类提供静态函数,用于将人类布尔字符串解析为布尔值。

  • 已为布尔值的将直接返回。

  • 所有非零数字值将返回true。

  • null和0将返回false。

  • 如"yes"、"true"和"1"等字符串将返回true。(不区分大小写)

  • 如"no"、"false"和"0"等字符串将返回false。(不区分大小写)

  • 这些字符串的国际化值也是可用的

    • 真字符串:ae, ano, asli, bai, benetako, bəli, bẹẹni, da, dhabta ah, e, ea sebele, echt, ee, eh, eny, evet, ezigbo, fíor, gerçek, gidi, go iawn, ha, haa, halisi, haqiqiy, ie, igen, inde, iva, iya nih, ja, jah, joo, já, jā, ndiyo, nekilnojamasis, nuhun, nyata, oo, oui, po, pravi, prawdziwy, real, reali, reyèl, reāls, sebenar, si, sim, skutečný, skutočný, sì, sí, taip, tak, tena, thực, tinuod nga, true, tá, tõeline, tūturu, valódi, vero, vrai, vâng, weniweni, werklike, wi, ya, yebo, yes, áno, ναί, πραγματικός, да, бодит, вистински, воқеӣ, да, ды, иә, прави, реален, реальный, реальный, рэальны, так, тийм ээ, шын, ҳа, այո, իրական, אמיתי, כן, פאַקטיש, اصلی, بله, جی ہاں, حقيقي, نعم فعلا, واقعی, असली, रिअल, वास्तविक, हाँ, हो, होय, বাস্তব, হাঁ, ਅਸਲੀ, ਹਾਂ, વાસ્તવિક, હા, ஆம், உண்மையான, అవును, నిజమైన, ನಿಜವಾದ, ಹೌದು, അതെ, യഥാർത്ഥ, ඔව්, සැබෑ, จริง, ใช่, ທີ່ແທ້ຈິງ, ແມ່ນແລ້ວ, စစ်မှန်သော, ဟုတ်ကဲ့, დიახ, რეალური, បាទ, ពិតប្រាកដ, はい, リアル, 実, 實, 是, 예, 현실
    • 假字符串:amanga, ayi, babu, bakak, been ah, bohata, br, bréagach, cha, che, dili, dim, diso, ee e, ei, eke, fals, falsch, false, falsk, falso, faltsua, falz, faux, fałszywy, ffug, fo, geen, hamis, hapana, hindi, huwad, ingen, jo, không, klaidinga, lažan, lažno, le, maya, napačen, ne, nee, nei, nein, nej, nem, nepravdivé, nepravdivý, nie, no, non, noto'g'ri, nr, nu, nē, onwaar, ora, pa gen okenn, palsu, rangt, rara, sai, salah, teka, teu, tidak, tsy misy, uimh, uongo, vale, vals, viltus, väärä, yanlış, yo'q, yok hayır, yox, zabodza, št, žiadny, ƙarya, ψευδής, όχι, не, бр, жалған, жоқ, лажно, ложный, не, немає, нет, неточно, нодуруст, négo, помилковий, фалшив, фальшывы, худал, үгүй, կեղծ, ոչ, לא, שֶׁקֶר, خاطئة, غلط, لا, نادرست, نه, نہیں, असत्य, खोटे, गलत, नहीं, नाही, না, মিথ্যা, ਝੂਠ, ਨਹੀਂ, ખોટા, ના, இல்லை, தவறான, ఏ, తప్పుడు, ಇಲ್ಲ, ಸುಳ್ಳು, ഇല്ല, തെറ്റായ, අසත්යය, නැත, เท็จ, ไม่, ບໍ່ຖືກຕ້ອງ, မမှန်သော, အဘယ်သူမျှမ, არა, ყალბი, ទេ, មិនពិត, ụgha, 假, 偽, 没有, 没有, 그릇된, 아니

    注意:这是通过谷歌完成的,可能会出错。如果您在您的语言中发现错误,请提交一个问题。此外,在检查值之前调用了mb_strtolower。它在几乎所有语言中都工作得很好,但在某些语言中则不行:mb_strtoupper('yanlış') === 'YANLIŞ'(注意i上的点缺失)但转换回小写时给出'yanliş'(这次i上有点)

BoolHelper::to_bool('yes'); // true
BoolHelper::to_bool('true'); // true
BoolHelper::to_bool(1); // true
BoolHelper::to_bool(1.5); // true

BoolHelper::to_bool('no'); // false
BoolHelper::to_bool('false'); // false
BoolHelper::to_bool(0); // false
BoolHelper::to_bool(null); // false

使用案例

// You can use it to parse user input
BoolHelper::to_bool($_GET['user_input']);

// Or check a parameter
function test($param)
{
	$param = BoolHelper::to_bool($param);
}

字符串

StringHelper类提供静态函数,用于将字符串转换为不同的开发者大小写。

$value = "Some string with MANY Words";
StringHelper::split_words($value); // ['Some', 'string', 'with', 'MANY', 'Words']
StringHelper::capitalize($value); // Some string with many words
StringHelper::pascal_case($value); // SomeStringWithManyWords
StringHelper::camel_case($value); // someStringWithManyWords
StringHelper::snake_case($value); // some_string_with_many_words
StringHelper::upper_snake_case($value); // SOME_STRING_WITH_MANY_WORDS
StringHelper::capital_snake_case($value); // Some_String_With_Many_Words
StringHelper::kebab_case($value); // some-string-with-many-words
StringHelper::train_case($value); // Some-String-With-Many-Words
StringHelper::initial($value); // SSWMW

它还提供了一个remove_diacritics函数(用于上述函数),用于删除变音符号(é, è, à, â, ç, ...)。

调试

Debug类提供处理错误显示的函数。

  • dumpit($value)使用var_export
    标签中打印$value的内容。
  • dumpitscript($value)使用json_encode在javascript控制台中打印$value的内容。
  • reportitdumpit执行相同操作,但返回字符串而不是打印它。
  • reportitscriptdumpitscript 功能相同,但返回字符串而不是打印它。
  • exception_to_array($exception, $max_recursion = 5) 将异常转换为数组。如果给定的 $exception 有之前的异常且 $max_recursion 大于 0,则将递归调用自身。

ServerArray

厌倦了在网上检查 $_SERVER 数组的正确键吗?ServerArray 类提供了对所有标准 $_SERVER 键的访问。

ServerArray::REQUEST_URI();

https://php.ac.cn/manual/en/reserved.variables.server

HtmlCodes

ServerArray 类似,HtmlCodes 类提供了一个 html 代码常数的列表。

HtmlCodes::OK; // 200
HtmlCodes::UNAUTHORIZED; // 401
HtmlCodes::FORBIDDEN; // 403
HtmlCodes::NOT_FOUND; // 404
HtmlCodes::IM_A_TEAPOT; // 418
...

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Timer

Timer 类是一个简单的类,用于分析执行时间。

$timer = new Timer(true); // true to automatically start the timer

a_long_function();
$first_duration = $timer->duration(); // returns the time in seconds with milliseconds since the timer has been started until now

another_long_function();
$timer->stop(); // stops the timer
$final_duration = $timer->duration(); // returns the time since the timer has been started until it has been stopped.

a_third_long_function();
// calling $timer->duration() now will return the time since the timer has been started until it has been stopped, so the same as $final_duration.

echo $final_duration; // ex: 75.547682
echo $timer; // print m:ss.zzz, ex: 1:15.548

Timers

您可以使用 Timers 记录多次。

$timers = new Timers();
$timers->start('all');

$timers->start('first');
a_long_function();
$timers->stop('first');

$timers->start('second');
another_long_function();
$timers->stop('second');

$timers->start('third');
a_third_long_function();
$timers->stop('third');

$timers->stop('all');

echo $timers->get('first');
echo $timers->get('second');
echo $timers->get('third');
echo $timers->get('all');

Monolog\TimerProcessor

当使用 monolog/monolog 包时,Monolog\TimerProcessor 类将秒和毫秒的持续时间添加到 extra 数组中。

$logger = new Monolog\Logger('Test');
$logger->pushProcessor(new TimerProcessor());

Monolog\RequestIdProcessor

当使用 monolog/monolog 包时,Monolog\RequestIdProcessor 类将请求 ID 添加到 extra 数组中。

该 ID 是由 $_SERVER['REMOTE_ADDR'].$_SERVER['REMOTE_PORT'].$_SERVER['REQUEST_TIME_FLOAT'].$_SERVER['REQUEST_URI'] 组成的哈希值。

目标是提供一种方法来区分不同同时请求的记录消息。

$logger = new Monolog\Logger('Test');
$logger->pushProcessor(new RequestIdProcessor());