通过 PECL 的内置支持
自 PHP 7.0 发布以来,SPL 类的性能问题日益引起开发人员的关注。PHP 7.0 并没有对早期设计的 SPL 类带来任何改进,因此许多开发人员现在对继续使用它持怀疑态度。许多开发人员为 PHP 编写了自定义库和扩展库,以提高数据结构的效率。PHP DS 就是其中之一,它是 PHP 7 数据结构的一个专门扩展。该扩展由 Joe Watkins 和 Rudi Theunissen 编写。PHP DS 扩展的官方文档可以在 PHP 手册中找到,网址是 http://php.net/manual/en/book.ds.php 。
该库可替代 PHP 数组,后者是一种非常灵活、动态的混合数据结构。该扩展提供了大量预置数据结构,如集合、映射、序列、集合、向量、栈、队列、优先队列等。我们将在接下来的几节中对其进行探讨。
安装
该库有不同的安装选项。最简单的是从 PECL(PHP 扩展库)中获取:
pecl install ds
如果需要,我们还可以下载源代码并编译库。为此,我们只需从 GitHub 代码库中获取代码,然后按照 git
命令进行编译:
clone https://github.com/php-ds/extension "php-ds"
cd php-ds
# Build and install the extension
phpize
./configure
make
make install
# Clean up the build files
make clean
phpize --clean
如果存在任何依赖性问题,我们还必须安装此软件包:
sudo apt-get install git build-essential php7.0-dev
对于 Windows,可从 PECL 网站下载 DLL。对于 Mac OS 用户,Homebrew 支持安装此扩展:
brew install homebrew/php/php71-ds
安装完成后,我们必须将扩展添加到我们的主 php.ini
文件中:
extension=ds.so #(php_ds.dll for windows)
如果正确添加扩展,所有预构建的类都可以通过 global \DS\ namespace
使用。
现在,让我们详细了解此扩展中预构建的 DS 类。我们将从所有类的基础——集合接口开始。