php-kit/tools

通用实用函数工具集

3.0.0 2024-06-14 18:07 UTC

This package is auto-updated.

Last update: 2024-09-19 11:35:48 UTC


README

通用实用函数工具集

PHP-Kit Tools 是什么?

PHP-Kit Tools 是尝试创建一个通用目的的辅助/实用函数工具集,这些函数可以在多个项目之间重用。

此工具集提供了标准库中缺失的功能,并添加了一些通用的、低级别的、基础函数,使您的代码更清晰、更简洁,减少样板代码和复制粘贴。

为什么选择 PHP-Kit Tools?

在开发任何 PHP 项目时,都需要一些经常重复出现的函数和模式。因此,开发者经常在项目之间重复复制粘贴相同的自定义实用/辅助函数。

问题

  • 所有这些复制粘贴的代码难以组织、更新和维护,尤其是在项目之间共享时;
  • 不同的开发者(即使在同一个团队和/或同一个项目中)创建自己的实用/辅助函数,有时会冗余地重复现有代码,引入细微的差异和/或产生团队之间的混淆;
  • 复制修改后的代码通常文档不良,可能存在错误,并且作为开发者特定的代码,没有其他开发者的支持(除了原始开发者);
  • 如果您使用特定框架提供的实用函数,则限制了代码的可重用性,并使您更难切换到使用其他框架制作的项目。

PHP-Kit Tools 是解决方案

适用于任何 PHP 项目

一套一致的工具,可供您在任何项目中使用。
团队/项目中的所有开发者都可以共享相同的函数,并以相似的方式编写代码。

框架独立

与任何框架一起工作,始终使用同一套基础函数。
使您的代码更容易重用。
更容易切换到使用其他框架制作的项目,保持 您的工作方式

某些框架甚至在自己的代码中使用 PHP-Kit Tools。

文档化

大多数函数已经有了 doc-block(内联文档),所以您的 IDE 应该提供内联文档、参数验证和自动完成。

尽管如此,我们仍在寻找时间编写额外的文档(将显示在此 Readme 或项目的 Wiki 上)。

您赶时间吗?您可以自愿为编写文档。我们欢迎您的拉取请求 ;-)

测试

自动化测试尚未实现,但它们即将到来。

尽管如此,此库已在许多实际项目中经过实战测试。

支持

项目创建者和社区都将保持此库更新,修复错误并实现新功能,如有必要。

发展

有时可能会添加新函数,现有函数可能会改进,甚至可能删除(如果我们得出结论,它们对大多数开发者和用例来说不够有用)。

此库 不会 无限期地增长,以包含所有可能的实用/辅助函数! 我们只希望这里包含最佳/最有用/最需要的函数!

但仍足够稳定

请放心,您的代码因此库的变化而破坏的可能性。只需确保在项目的 composer.json 文件中指定特定版本的库。

不要在 composer.json 上使用 dev-master 作为版本约束!

用法

安装

在命令行中输入

composer require php-kit/tools

运行时要求

  • PHP >= 5.4

代码组织

在项目的 src 文件夹中,你可以找到每个功能组的独立文件,这些文件按照主题/目的/范围进行分组。

所有函数都是全局的,也就是说,它们没有命名空间,并且可以在应用程序的任何地方访问。

这个库中大多数函数的命名都让它们看起来就像另一个预定义的PHP函数,从而补充了标准API中我们希望存在的缺失功能。

例如,数组函数有 array_ 前缀,字符串函数有 str_ 前缀,依此类推。

常见问题解答

为什么所有函数都是全局的?

因为这些是辅助/实用/通用函数,它们可以在宿主应用程序的任何地方(并且经常)使用。

这个库与PHP 5.4兼容,这意味着没有简单的方法可以将函数导入到文件的命名空间中,也没有自动加载功能(它仅适用于类)。

我们可以将这些函数转换为类的静态方法,这将使调用它们更冗长(并破坏它们只是标准PHP全局函数扩展的错觉),或者我们将PHP版本要求提升到5.6。

即使使用PHP >= 5.6,也必须在每个源代码文件的顶部使用 use 语句导入每个单个函数,这并不是最实用/最有效率的解决方案。

全局变量不好吗?

是的,全局变量有一些问题。

使用全局变量的主要缺点是它们 污染 全局命名空间,并增加了与其他库中的函数发生标识符冲突的可能性。

尽管如此,PHP以其不介意用数千个函数、类、变量和常量污染全局命名空间而闻名。所以,我们只是继续保持这一传统,并稍微扩展一下。:-)

请注意,我们许多函数的命名都带有公共前缀。例如,数组函数有 array_ 前缀,字符串函数有 str_ 前缀,依此类推。这也有助于减少名称冲突的可能性。

此外,一些函数被包裹在 if 块中,这样如果已经定义了具有相同名称的函数,则不会发生错误,并且原始函数将保持未修改。当然,在这种情况下,你将无法使用具有相同名称的新函数,但至少它不会阻止你使用此库中的其他函数。

目前,这种条件定义仅保留给非常通用的函数(例如 get)。

许可证

这个库是开源软件,根据MIT许可证授权。

版权 © 2015 Impactwave, Lda。