每个项目都写 helper? 为什么不自己搞一个呢?给你一个不一样的 PHP-tools 分享
工具包分享
相信每个人都有这样的问题,每开一个新项目,都要写一个 helper 文件,复制粘贴是挺方便。
但是后续维护新增一个方法,就需要复制到每个 helper,这样真的好吗?
9102 年了,在现在这种项目趋于服务化的形势下,业务拆分的模块只多不少,还要这么 low 的复制吗?
9102 年了,我们还不好好使用 composer 吗?
9102 年了,你该有一个属于自己的工具包了。
在这里分享一下我自己的工具包:yiranzai/php-tools,很多东西都参考了 laravel
ps: 我不是说一定要让你用我的包,毕竟第一我的包内容有限,第二这种东西更应该发布在内部的仓库上,composer.json 是可以指定包的来源的
仅供参考,欢迎批评和pr
个人推荐
这一段理解为王婆卖瓜
查看完整直接看下边 用户手册
\Yiranzai\Tools\Arr::sortBy()使用给定的回调对数组进行排序并保留原始键,支持多列排序,特别实用。
\Yiranzai\Tools\Date::toCarbon($dateTime, $default)生成 Carbon 对象,不合法数据会返回默认值
\Yiranzai\Tools\Date::timeDiffFormat($leftTime, $rightTime, $absolute)人性化显示两个 DateTime 对象的差,9102 年了,我的同事还在
strtotime()相减然后慢慢取余呢\Yiranzai\Tools\Math::formatDiv()四舍五入除法,基于 bcmath,不用担心除数为 0 的问题
\Yiranzai\Tools\Tools::iteratorGet()获取一个对象或者一个数组的属性,如果属性或者 key 不存在,返回默认值,如果默认值是一个异常,抛出异常。(对于手动校验的参数相当实用)
\Yiranzai\Snowflake\SnowFlake::next()雪花算法生成 64 位 id,这个自行搜索雪花算法
\Yiranzai\Snowflake\SnowFlake::analysis()// 解析 64 位 id解析雪花算法生成的 64 位 id
用户手册
Arr::class\Yiranzai\Tools\Arr::sortBy()// 使用给定的回调对数组进行排序并保留原始键,支持多列排序\Yiranzai\Tools\Arr::arrSortByField()// 二维数组排序\Yiranzai\Tools\Arr::arrGroup()// 数组按字段分组\Yiranzai\Tools\Arr::heapSort()// 堆排序\Yiranzai\Tools\Arr::mergeSort()// 归并排序\Yiranzai\Tools\Arr::quickSort()// 快速排序
Date::class\Yiranzai\Tools\Date::toCarbon()// 生成 Carbon 对象\Yiranzai\Tools\Date::timeDiffFormat()// 输出两个 DateTime 对象的差距
Math::class\Yiranzai\Tools\Math::formatDiv()// 四舍五入 格式化除法\Yiranzai\Tools\Math::formatMod()// 四舍五入 格式化取余(模运算)\Yiranzai\Tools\Math::formatMul()// 四舍五入 格式化乘法\Yiranzai\Tools\Math::formatSub()// 四舍五入 格式化减法\Yiranzai\Tools\Math::formatAdd()// 四舍五入 格式化加法\Yiranzai\Tools\Math::gcd()// 求两个数的最大公约数\Yiranzai\Tools\Math::gcdArray()// 求一个数组的最大公约数
Filesystem::class\Yiranzai\Tools\Filesystem::hash()// 获取给定路径上的文件的 MD5 哈希值。\Yiranzai\Tools\Filesystem::prepend()// 将内容存储到到文件开头。\Yiranzai\Tools\Filesystem::exists()// 确定文件或目录是否存在。\Yiranzai\Tools\Filesystem::put()// 将内容存储在文件中。\Yiranzai\Tools\Filesystem::makeDirectory()// 创建一个目录。\Yiranzai\Tools\Filesystem::get()// 获取文件的内容。\Yiranzai\Tools\Filesystem::isFile()// 确定给定路径是否为文件。\Yiranzai\Tools\Filesystem::sharedGet()// 获取具有共享访问权限的文件的内容。\Yiranzai\Tools\Filesystem::size()// 获取给定文件的文件大小。\Yiranzai\Tools\Filesystem::append()// 将内容存储到到文件结尾(追加)。\Yiranzai\Tools\Filesystem::chmodFile()// 获取或设置文件或目录的 UNIX 模式。\Yiranzai\Tools\Filesystem::move()// 将文件移动到新位置。\Yiranzai\Tools\Filesystem::name()// 从文件路径中提取文件名。\Yiranzai\Tools\Filesystem::basename()// 从文件路径中提取尾随名称组件。\Yiranzai\Tools\Filesystem::dirname()// 从文件路径中提取父目录。\Yiranzai\Tools\Filesystem::extension()// 从文件路径中提取文件扩展名。\Yiranzai\Tools\Filesystem::type()// 获取给定文件的文件类型。\Yiranzai\Tools\Filesystem::mimeType()// 获取给定文件的 mime 类型。\Yiranzai\Tools\Filesystem::lastModified()// 获取文件的上次修改时间。\Yiranzai\Tools\Filesystem::isReadable()// 确定给定路径是否可读。\Yiranzai\Tools\Filesystem::isWritable()// 确定给定路径是否可写。\Yiranzai\Tools\Filesystem::moveDirectory()// 移动目录。\Yiranzai\Tools\Filesystem::isDirectory()// 确定给定路径是否是目录。\Yiranzai\Tools\Filesystem::deleteDirectory()// 递归删除目录。\Yiranzai\Tools\Filesystem::delete()// 删除给定路径的文件。\Yiranzai\Tools\Filesystem::copyDirectory()// 将目录从一个位置复制到另一个位置。\Yiranzai\Tools\Filesystem::copyFile()// 将文件复制到新位置。\Yiranzai\Tools\Filesystem::cleanDirectory()// 清空所有文件和文件夹的指定目录。\Yiranzai\Tools\Filesystem::windowsOs()// 确定当前环境是否基于 Windows。
Tools::class\Yiranzai\Tools\Tools::getNiceFileSize()// 人性化转化内存信息\Yiranzai\Tools\Tools::callFunc()// 调用对象的方法\Yiranzai\Tools\Tools::iteratorGet()// 获取一个对象或者一个数组的属性\Yiranzai\Tools\Tools::arrGet()// 获取数组中的某个元素\Yiranzai\Tools\Tools::objectGet()// 获取对象中的某个元素
SnowFlake::class\Yiranzai\Snowflake\SnowFlake::next()// 生成 64 位 id\Yiranzai\Snowflake\SnowFlake::analysis()// 解析 64 位 id
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: