php-kit / tools
通用实用函数工具集
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。