PHelP 包含 PHP 没有的有用工具 - PHP 5.6+ 的辅助工具

dev-master 2018-12-15 05:04 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:49:36 UTC


README

PHelP 包含 PHP 没有的有用工具 - PHP 5.6+ 的辅助工具

由 Joseph Cumines 编写 - 但我也欢迎贡献或甚至只是代码审查。

pipeline status coverage report

规则手册

  1. 无外部依赖的辅助库,且标准相似,并且很可能得到维护
  2. 对功能进行逻辑分组,并努力遵循最佳实践
  3. 始终进行测试,至少覆盖所有文档化或重要的情况
  4. 首选函数式风格,优先使用不可变对象
  5. 尽可能最小化或无耦合(在库之间等),不牺牲“DRY”原则
  6. 除非有非常好的理由或非常低的风险(向后兼容的更改是可行的),否则不要更改方法签名
  7. 代码必须编写为可用于生产,并且至少有很好的机会通过专业代码审查
  8. 作为一般规则,所有提供多个功能的聚合类必须始终使用实现单例风格 getInstance 方法的最终类,不提供其他公共静态方法,并提供一个公共默认构造函数用于依赖注入
  9. 除非特别设计为有状态,否则一切都必须是无状态的
  10. 明确记录所有功能,最好能够一目了然地了解某物的功能
  11. 类和命名空间等名称应像所有都是小写单词一样命名,然后连接,例如,JsonObject 而不是 JSONObject

发布计划

这将得到维护,在这个阶段,我将继续定期添加功能 - 尽管它几乎从零开始。我将重写我之前编写的一些功能,一些我之前想要的功能,以及可能只是做我想做的事情。最终,我计划设置子树或某种更好的依赖项打包方式,但在此之前,我只会把所有东西放在一个地方。

包概述

此包使用 Psr-4 命名空间。 src 文件夹是 autoload,映射到 JoeyCumines/Phelptests 文件夹是 autoload-dev,映射到 Tests/JoeyCumines/Phelp

以下标题基于这两个命名空间中嵌套的命名空间。

算法

解决方案,按功能分组,而不是按项目或类别分组,以获得更好的代码结构。虽然类似,但此命名空间的目的与 JoeyCumines/Phelp/Utilities 不同,侧重于包括(但不限于)实现计算机科学事物(如排序算法、原始类型辅助程序和扩展核心 PHP 功能的通用函数)的解决方案。

工具

任何倾向于解决特定问题而不是提供更通用解决方案的东西。测试实用程序是这种类型的良好示例。

辅助程序

"辅助"类在 JoeyCumines/Phelp/Algorithms 中的实现之间提供和记录一个薄层。辅助程序提供了一种更通用的方式来导入依赖项,并且能够模拟其方法。

接口

所有接口,提供作为依赖项(代替具体类)使用,都在这里。

适配器

接口的具体实现,仅此而已。

贡献

做你想做的事,我喜欢讨论解决问题的最佳方法。如果你认为某种方法更好,或者只是想尝试添加一些内容,那就放手去做吧,我很乐意审查你的pull request,即使只是你想要反馈的一些相关内容。我对这个项目并没有占有欲,如果我能同意,我愿意合并任何新的代码,并使用相同的许可协议。