在 PHP 7 中使用 Composer 安装 PEAR 包是否有效?
Does using Composer to install PEAR packages work in PHP 7?
在 PHP 5.5 中使用 Composer 安装 PEAR 包工作正常(当然)。我已经设置了一个 PHP 7 测试框来查看我们的单元测试是否会在 PHP 7 下通过,我 运行 遇到的直接问题是 PEAR 依赖项不起作用:
Loading composer repositories with package information
Initializing PEAR repository https://pear.php.net
Updating dependencies (including require-dev)
- Installing packagist/closurecompiler-bin (dev-master d52231c)
Cloning d52231c49813347010fa605d0f102ada68bb8b4b
- Installing pear-pear.php.net/structures_graph (1.1.1)
Loading from cache
[UnexpectedValueException]
Failed to extract PEAR package /opt/navigate/vendor/pear-pear.php.net/Structures_Graph/Structures_Graph-1.1.1.tgz to /opt/navigate/vendor/pear-pear.php.net/Structures_Graph. Reason: phar error: tar-base
d phar "Structures_Graph-1.1.1/tests/BasicGraphTest.php" cannot be registered
[UnexpectedValueException]
phar error: tar-based phar "Structures_Graph-1.1.1/tests/BasicGraphTest.php" cannot be registered
我想不通这个 - 它似乎是一个彻头彻尾的 PHP 7 不兼容,网上没有人写过?
该错误是由 tar 包含重复文件名的文件引起的,已在 php 7.0.5 中修复。
在 5.5 和 5.6 中存在相同的错误,但是这里它 "only" 导致内存泄漏,因为 php7 中的代码更改仅检查无效 return 值未应用于 php 5.5 或 5.6。内存泄漏也已在 php 5.6.20 中以与 php 7.0.5.
中相同的方式得到解决
在 PHP 5.5 中使用 Composer 安装 PEAR 包工作正常(当然)。我已经设置了一个 PHP 7 测试框来查看我们的单元测试是否会在 PHP 7 下通过,我 运行 遇到的直接问题是 PEAR 依赖项不起作用:
Loading composer repositories with package information
Initializing PEAR repository https://pear.php.net
Updating dependencies (including require-dev)
- Installing packagist/closurecompiler-bin (dev-master d52231c)
Cloning d52231c49813347010fa605d0f102ada68bb8b4b
- Installing pear-pear.php.net/structures_graph (1.1.1)
Loading from cache
[UnexpectedValueException]
Failed to extract PEAR package /opt/navigate/vendor/pear-pear.php.net/Structures_Graph/Structures_Graph-1.1.1.tgz to /opt/navigate/vendor/pear-pear.php.net/Structures_Graph. Reason: phar error: tar-base
d phar "Structures_Graph-1.1.1/tests/BasicGraphTest.php" cannot be registered
[UnexpectedValueException]
phar error: tar-based phar "Structures_Graph-1.1.1/tests/BasicGraphTest.php" cannot be registered
我想不通这个 - 它似乎是一个彻头彻尾的 PHP 7 不兼容,网上没有人写过?
该错误是由 tar 包含重复文件名的文件引起的,已在 php 7.0.5 中修复。 在 5.5 和 5.6 中存在相同的错误,但是这里它 "only" 导致内存泄漏,因为 php7 中的代码更改仅检查无效 return 值未应用于 php 5.5 或 5.6。内存泄漏也已在 php 5.6.20 中以与 php 7.0.5.
中相同的方式得到解决