我有一台安装了PEAR的开发机器(在/usr/share/php/PEAR.php中)和一个没有安装PEAR的生产系统。
在生产包装盒上,我收到了这个错误,我无法使用开发机器:
A PHP Error was encountered
Severity: Warning
Message: require_once(PEAR.php): failed to open stream: No such file or directory
Filename: Archive/Tar.php
Line Number: 42
Fatal error: require_once(): Failed opening required 'PEAR.php' (include_path='.:') in /www/application/vendor/pear/archive_tar/Archive/Tar.php on line 42
见第42行:https://github.com/pear/Archive_Tar/blob/master/Archive/Tar.php#L42
我不想在生产箱上安装PEAR,因为它已在系统范围内安装。如果我可以从作曲家本身安装PEAR.php及其所有相关文件,对我来说似乎更清晰。
我能找到的与Composer和PEAR相关的所有问题都与从Composer安装软件包有关。
但我想要做的是让Composer 从项目的供应商目录中自动加载PEAR代码,这样我就不必全局安装PEAR了。生产系统。
这里有一个几乎完全相同的问题:How do I get PEAR.php with Composer?
但看起来他接受了自己的答案,甚至没有解决问题。
我的composer.json看起来像:
{
"require": {
"pear/archive_tar": "*",
}
}
似乎,如果我的建议是可能的,我会添加" pear / pear"或需要的东西,它会将PEAR代码本身安装在项目目录中,但我找不到这样的包。
答案 0 :(得分:1)
最终找到了一个Github的要点,其中有人列出了#梨;梨/梨"作为你需要的包裹:
}
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {
"pear-pear/PEAR": "*",
"pear/archive_tar": "*"
}
}
答案 1 :(得分:0)
我找到了秘诀:作曲家似乎并没有真正尊重“梨子”。作为pear.php.net的别名。所以,如果你想要梨(但不是pear2)风格的依赖,那么这里是我的代码片段:
"repositories": [
{
"type": "pear",
"url": "https://pear.php.net"
}
],
"require": {
"pear-pear.php.net/PEAR": "*",
"pear-pear.php.net/archite_tar": "*"
}
请注意,网址必须为' https'或作曲家会抱怨和/或失败。