Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让Composer自动加载PEAR';从供应商目录中获取存档tar的s代码(例如PEAR.php)?_Php_Composer Php_Pear - Fatal编程技术网

让Composer自动加载PEAR';从供应商目录中获取存档tar的s代码(例如PEAR.php)?

让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

我有一台安装了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 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