让Composer自动加载PEAR';从供应商目录中获取存档tar的s代码(例如PEAR.php)?
我有一台安装了PEAR的开发机器(in/usr/share/php/PEAR.php),还有一个没有安装PEAR的生产系统 在生产框中,我得到了在开发人员机器上没有得到的错误:让Composer自动加载PEAR';从供应商目录中获取存档tar的s代码(例如PEAR.php)?,php,composer-php,pear,Php,Composer Php,Pear,我有一台安装了PEAR的开发机器(in/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 Nu
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行:
我不想在生产箱上安装PEAR,因为它是在系统范围内安装的。如果我能从composer本身安装PEAR.php及其所有相关文件,我会觉得更干净
我能找到的所有与Composer和PEAR相关的问题都与安装Composer的软件包有关
但是我想做的是让Composer从项目的供应商目录中自动加载PEAR代码,这样我就不必在生产系统上全局安装PEAR
这里有一个几乎相同的问题:
但看起来他已经接受了自己的答案,甚至没有解决问题
My composer.json看起来像:
{
"require": {
"pear/archive_tar": "*",
}
}
似乎,如果我的建议可行,我会添加“pear/pear”或需要的东西,它会在项目目录中安装pear代码本身,但我找不到这样的包。最终找到了一个Github要点,其中有人将“pear/pear”列为您需要的包:
}
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {
"pear-pear/PEAR": "*",
"pear/archive_tar": "*"
}
}
我发现了秘诀:Composer实际上似乎并不把“pear”作为pear.php.net的别名。因此,如果您想要pear(而不是pear2)样式的依赖项,下面是我的代码片段:
"repositories": [
{
"type": "pear",
"url": "https://pear.php.net"
}
],
"require": {
"pear-pear.php.net/PEAR": "*",
"pear-pear.php.net/archite_tar": "*"
}
请注意,url必须为“https”,否则composer将投诉和/或失败。我失败:在任何版本中都找不到请求的包pear/pear,包名中可能存在键入错误。那里有一个键入错误--
archive\u tar
应该是archive\u tar
。