README

只是一大堆您最喜欢的工具。

其中大部分都来自 Sprout。

请随意添加更多。

使用方法

轻松地锁定最新主要版本。

composer require karmabunny/kb:^2

代码规范

尽量减少依赖。

如果需要,那么它不属于这个库。

必须支持 php 7.0。

但您可以随意加入一些 ponyfills。

添加该死的测试。

就像,即使是快乐的案例。

运行测试

whenever you can.

运行它们这样: composer test.

弃用路径

错误会发生(例如 Copyable),有时你会意识到你的命名约定很糟糕。

因此,在删除东西时,首先将它们标记为 @deprecated,这应该向任何使用该代码的人发出信号,它将在下一个 major 版本中消失。

就像往常一样,在弃用和删除东西时,总是注释你的发布标签。想象一下,你的生命取决于把所有东西都包含在内。这是一项威胁吗?也许。

集合

模型!模型!模型!

集合扩展了 DataObject,并添加了一些类似于数组的、虚拟的、可序列化的东西。

一些可选的行为特性

  • UpdateStrictTrait
  • UpdateTidyTrait
  • UpdateVirtualTrait
  • FieldsTrait
  • CachedHelperTrait

验证器

集合扩展

  • 文档验证器
  • 规则验证器

还有 Validity 类。太棒了。

可记录的

按类别的日志工具。具有日志转发功能。有点意思。

任务

用于 cron 和工作者的通用类型。

反射

一些有用的反射功能。

序列化

  • Json - 标准化编码/解码,带有异常
  • XML - 现在带有模板
  • Enc
  • Url

安全性

  • 安全的随机数 - 字节,字符串!
  • 散列密码
  • 比较

时间

  • utime,以整数为微秒时间
  • 过去的时间
  • 在 DateTime、DateTimeImmutable、DateTimeInterface 之间转换东西
  • 日期周期

数组

非标准或弱支持的项。

  • 数组第一个
  • 数组最后一个
  • 用回调填充
  • 用回调查找
  • 平坦!
  • 查询(即 value()
  • 创建映射
  • 标准化键
  • 配置加载器!

配置加载器非常愉快。它支持传统的 $config 和现代的 return []; 风格配置。结合 value(),您可以轻松地重新创建 Kohana::config()

常量

  • HttpStatus
  • CountryNames

UUID

用于 v1、v4、v5(好的那些)

Env

从系统或配置文件加载环境。

还有 isDocker() - 非常方便。

FnUtils (Wrap)

主要与 array_map()array_filter() 相关。

CSV

  • 导入器
  • 导出器

XML/Dom 工具

  • 解析
  • 验证
  • XPath!
  • '期望'

URL

  • 编码 + 解码
  • URL 构建器

Shell 工具

  • 安全的命令行参数
  • 异步 + 同步接口

CLI 工具

  • 文本输入
  • 掩码输入
  • 隐藏输入
  • 问题 - 布尔值
  • 选项 - 带有键浏览