godsdev / tools
PHP的辅助函数
v0.3.8
2021-04-11 09:32 UTC
Requires
- php: ^5.6 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^4|^5
This package is auto-updated.
Last update: 2024-09-14 16:13:42 UTC
README
一个包含实用通用函数(方法)的类。这些方法是静态的。一些用于HTML输出的方法采用了Bootstrap库中使用的类。
部署
安装Composer后,在项目根目录中执行以下命令以安装此库
composer require godsdev/tools:^0.3.8
然后,确保composer.json文件包含当前类的版本 - 类似于
{
"require": {
"godsdev/tools": "^0.3.8"
}
}
然后请确保包含自动加载器
require_once '/path/to/your-project/vendor/autoload.php';
最后,将以下行
use GodsDev\Tools\Tools;
添加到您希望使用Tools方法的位置的file中。然后您可以使用以下方式调用其所有功能 - Tools::method()。
兼容性
- PHP 5.6+, 7+
- 一些字符串处理函数调用需要
ext-mbstring扩展的mb_XXXX函数 relativeTime()创建new DateTime()stripAttributes()使用libxml并创建new DOMDocument()、new DOMXPath()str_putcsv()打开"php://memory"流curlCall()使用cURL扩展webalize()检查ext-iconv扩展和iconv()函数
备注
- 处理消息的方法使用会话(
$_SESSION["messages"]变量)来存储消息。 escapeSQL()已过时,不应使用escapeIn()和escapeDbIdentifier()是针对MySQL/MariaDb DBMS特定的。
PHP扩展
composer.json中的"require"项应该实际上是
"require": { "php": "^5.6 || ^7.0", "ext-curl": "*", "ext-date": "*", "ext-dom": "*", "ext-iconv": "*", "ext-json": "*", "ext-mbstring": "*", "ext-pcre": "*", "ext-session": "*", "ext-SimpleXML": "*" }
但由于并非所有方法都被每个项目使用,因此那里并没有列出所有这些要求。这可能会在测试时触发一些错误信息。有关更多信息,请参阅故障排除章节。
配置
类常量
::$LOCALE[]数组包含地区日期/时间格式的配置。例如,捷克语语言的示例
Tools::LOCALE['cs'] => [ 'date format' => 'j. F', 'full date format' => 'j. F Y', 'time format' => 'H:i:s', 'weekdays' => [ 'Sunday' => 'neděle', 'Monday' => 'pondělí', 'Tuesday' => 'úterý', 'Wednesday' => 'středa', 'Thursday' => 'čtvrtek', 'Friday' => 'pátek', 'Saturday' => 'sobota' ], 'months' => [ 'January' => 'leden', 'February' => 'únor', 'March' => 'březen', 'April' => 'duben', 'May' => 'květen', 'June' => 'červen', 'July' => 'červenec', 'August' => 'srpen', 'September' => 'září', 'October' => 'říjen', 'November' => 'listopad', 'December' => 'prosinec' ], 'time ago' => [ 'y' => ['rok', 'roky', 'let'], //enclination for "1 year" form, "2-4 years" form, and "5+ years" form 'm' => ['měsíc', 'měsíce', 'měsíců'], 'd' => ['den', 'dny', 'dnů'], 'h' => ['hodina', 'hodiny', 'hodin'], 'i' => ['minuta', 'minuty', 'minut'], 's' => ['vteřina', 'vteřiny', 'vteřin'], 'ago' => 'zpátky', 'in' => 'za', 'moment' => 'okamžik' ] ];
::$MESSAGE_ICONS数组包含(HTML编码的)与每种消息类型一起使用的图标。键(和消息类型)是:success、danger、warning和info。::$PASSWORD_CHARS常量是一个包含用于生成密码的字符的字符串。由randomPassword()使用。
测试
测试是通过在项目文件夹vendor/phpunit/phpunit中使用phpunit实现的。测试类在test/ToolsTest.php中(按字母顺序测试那里的方法)。如果您添加了新方法,请别忘了将其测试添加到ToolsTest.php并运行
vendor/phpunit/phpunit/phpunit
- 注意:执行HTTP重定向的
redir()方法不包括在单元测试中。 - 注意:在GitHub Actions中使用的ubuntu-latest(PHP)不支持iconv //TRANSLIT标志,因为iconv实现是未知的,因此PHPUnit组iconvtranslit被排除。
故障排除
在运行phpunit之后,您可能会收到某些PHP扩展不可用的错误消息。(有关更多信息,请参阅PHP扩展章节)。如果您的项目不需要该扩展,则不会出现此类错误消息。如果确实需要,则您需要提供启用此/这些扩展的方法。
方法
变量测试和设置
anyset()– 给定的变量中是否设置了任何一个?equal()– 与isset()的比较ifempty()– 与empty()和isset()的组合ifnull()– 与isnull()和isset()的组合nonempty()– 与!empty()和isset()的组合nonzero()– 与isset()的非零测试set()– 对isset()的测试或将值设置到变量中setarray()–isset()和is_array()的快捷方式setifempty()– 如果isset()和empty()则设置setifnotset()– 如果!isset()则设置setifnull()– 如果isset()和is_null()则设置setscalar()–isset()和is_scalar()的快捷方式
HTML 输出
dump()– 在<pre>...</pre>中var_dump()的快捷方式h()– UTF-8 中htmlspecialchars()的快捷方式htmlInput()– 输出给定类型的<input>htmlOption()– 输出<option>htmlRadio()– 输出<input type="radio">htmlSelect()– 输出带有给定选项的<select>htmlTextarea()– 输出<textarea>htmlTextInput()– 输出<input type="text">stripAttributes()– 从 HTML 代码中移除属性
HTTP
curlCall()– 调用一个 URL,返回结果httpResponse()– 将 HTTP 响应分为头部和主体redir()– 进行 HTTP 重定向urlChange()– 添加/删除/修改 URL 的 GET 变量
消息
addMessage()– 向会话中添加消息outputMessage()– 输出消息resolve()– 根据结果添加 '成功' 或 '错误' 消息showMessages()– 显示会话中的消息
字符串
begins()– 字符串是否以给定的参数开始?cutTill()– 截断字符串到给定的参数第一次出现的位置ends()– 字符串是否以给定的参数结束?exploded()–explode()并返回给定索引的项目mb_lcfirst()– 多字节版本的首字母小写mb_ucfirst()– 多字节版本的首字母大写randomPassword()– 返回随机密码str_after()– 返回参数出现后的字符串部分str_before()– 返回参数出现前的字符串部分str_delete()– 删除 byref 变量的部分str_putcsv()– 与str_getcsv()相反
转换
columnName()– 将数字转换为 26 进制(字母)系统escapeDbIdentifier()– MySQL/MariaDb 标识符的转义函数escapeIn()– 在 SQL 的IN()子句中转义值escapeJS()– JavaScript 的转义escapeSQL()– SQL 的基本转义(已弃用)shortify()– 限制长字符串的长度,并添加可选的省略号webalize()– 转换为 URL 友好的字符串xorCipher()– 基本加密xorDecipher()– 基本解密
变量
among()– 给定的值是否在列出的值中blacklist()– 如果在黑名单上,则设置给定的默认值whitelist()– 如果不在白名单上,则设置给定的默认值
数组
array_search_i()– 不区分大小写的array_search()arrayConfineKeys()– 提取并返回给定数组的选择键arrayKeyAsValues()– 使用键填充数组的值arrayListed()– 输出数组的项目列表arrayReindex()– 根据给定的索引重新索引数组中的数组arrayRemoveItems()– 从数组中删除项目arraySearchAssoc()– 在数组中搜索给定的键:值对(s)in_array_i()– 不区分大小写的in_array()
区域设置
localeDate()– 使用 ::$LOCALE[]设置输出日期localeTime()– 使用 ::$LOCALE[]设置输出时间plural()– 输出给定词的适当单数/复数形式relativeTime()– 使用 ::$LOCALE[]设置相对于now()的输出
特定
GoogleAuthenticatorCode()– GoogleAuthenticator 哈希preg_max()– 返回匹配从0到给定最大值的整数范围的正则表达式掩码