imphp / base
IMPHP组件使用的基本工具
Requires
- php: >=8.0.0
README
此仓库包含一些可能对任何类型的项目都很有用的基本工具。它作为其他IMPHP包的基础,但也被构建为可以作为一个独立的包使用。
包含
目前包含在此仓库中的,除了其他东西之外,还有工具包,它包含了很多类似Java的集合类。PHP数组对于某些任务来说是不错的,但由于它们完全缺乏合适的结构和行为(这是它们在某些任务上表现良好的原因),它们根本不适合所有事情。为特定任务正确定义的工具可以使代码更易于阅读、使用和调试。
这里还包含的另一件事是I/O包。这是一个包含一些流类的子包,使得处理文件等流更加友好。这主要是为了在Http
包中使用,但流是一个全局工具,不仅仅对单个包及其特定用途有用,所以它最终被整合到了基础包中。
除了上述子包,基础包还有一些自己的类。一个是ClassLoader
,虽然可能对大多数人来说不是必需的,但还有一个ErrorCatcher
和一个转换类。
完整文档
您可以查看完整文档来了解更多信息。
安装
使用.phar库
wget https://github.com/IMPHP/base/releases/download/<version>/imphp-base.phar
require "imphp-base.phar"; ...
通过git克隆
git clone https://github.com/IMPHP/base.git imphp/base/
Composer(Packagist)
composer require imphp/base
PHP版本
此包支持PHP >= 8.0
。这样做的原因很简单。一个库项目需要长期保持兼容性,所以你不应该用最老的技术开始一个新项目。
PHP 8带来了许多真正出色的变化,这些变化在很长时间内都不会有用。如果这个项目开始支持PHP 7(PHP 5已经死亡,接受现实吧)。其中一个主要变化是,正确的类型提示几乎已经完成。通往这个点的缓慢而愚蠢的道路使PHP 7变得一团糟,也使PHP 8的类型提示更改变得毫无意义,因为一半的参数等仍然没有。联合类型是一件事,但它们没有一次性添加对所有内置类型的支持,这是不合逻辑的。相反,它们为每个新的7.x
版本添加一个类型。所以当涉及到支持已经死亡的版本5、混乱的版本7或更完整的现代版本8时,选择很容易。就像我说的,你选择的版本是你将长期坚持的版本,同时逐渐升级你的项目。