joeycumines / phelp
PHelP 包含 PHP 没有的有用工具 - PHP 5.6+ 的辅助工具
Requires
- php: >=5.6
- symfony/polyfill-iconv: ^1.6
- symfony/polyfill-mbstring: ^1.6
- symfony/polyfill-php70: ^1.6
- symfony/polyfill-php71: ^1.6
This package is not auto-updated.
Last update: 2024-09-29 04:49:36 UTC
README
PHelP 包含 PHP 没有的有用工具 - PHP 5.6+ 的辅助工具
由 Joseph Cumines 编写 - 但我也欢迎贡献或甚至只是代码审查。
规则手册
- 无外部依赖的辅助库,且标准相似,并且很可能得到维护
- 对功能进行逻辑分组,并努力遵循最佳实践
- 始终进行测试,至少覆盖所有文档化或重要的情况
- 首选函数式风格,优先使用不可变对象
- 尽可能最小化或无耦合(在库之间等),不牺牲“DRY”原则
- 除非有非常好的理由或非常低的风险(向后兼容的更改是可行的),否则不要更改方法签名
- 代码必须编写为可用于生产,并且至少有很好的机会通过专业代码审查
- 作为一般规则,所有提供多个功能的聚合类必须始终使用实现单例风格
getInstance
方法的最终类,不提供其他公共静态方法,并提供一个公共默认构造函数用于依赖注入 - 除非特别设计为有状态,否则一切都必须是无状态的
- 明确记录所有功能,最好能够一目了然地了解某物的功能
- 类和命名空间等名称应像所有都是小写单词一样命名,然后连接,例如,
JsonObject
而不是JSONObject
。
发布计划
这将得到维护,在这个阶段,我将继续定期添加功能 - 尽管它几乎从零开始。我将重写我之前编写的一些功能,一些我之前想要的功能,以及可能只是做我想做的事情。最终,我计划设置子树或某种更好的依赖项打包方式,但在此之前,我只会把所有东西放在一个地方。
包概述
此包使用 Psr-4 命名空间。 src
文件夹是 autoload
,映射到 JoeyCumines/Phelp
。 tests
文件夹是 autoload-dev
,映射到 Tests/JoeyCumines/Phelp
。
以下标题基于这两个命名空间中嵌套的命名空间。
算法
解决方案,按功能分组,而不是按项目或类别分组,以获得更好的代码结构。虽然类似,但此命名空间的目的与 JoeyCumines/Phelp/Utilities
不同,侧重于包括(但不限于)实现计算机科学事物(如排序算法、原始类型辅助程序和扩展核心 PHP 功能的通用函数)的解决方案。
工具
任何倾向于解决特定问题而不是提供更通用解决方案的东西。测试实用程序是这种类型的良好示例。
辅助程序
"辅助"类在 JoeyCumines/Phelp/Algorithms
中的实现之间提供和记录一个薄层。辅助程序提供了一种更通用的方式来导入依赖项,并且能够模拟其方法。
接口
所有接口,提供作为依赖项(代替具体类)使用,都在这里。
适配器
接口的具体实现,仅此而已。
贡献
做你想做的事,我喜欢讨论解决问题的最佳方法。如果你认为某种方法更好,或者只是想尝试添加一些内容,那就放手去做吧,我很乐意审查你的pull request,即使只是你想要反馈的一些相关内容。我对这个项目并没有占有欲,如果我能同意,我愿意合并任何新的代码,并使用相同的许可协议。