【问题标题】:Have Composer auto-load PEAR's code (e.g. PEAR.php) for archive_tar from within vendor directory?Composer 是否从供应商目录中为 archive_tar 自动加载 PEAR 的代码(例如 PEAR.php)?
【发布时间】:2014-04-23 01:48:21
【问题描述】:

我有一台安装了 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 代码本身安装在项目目录中,但我找不到这样的包。

【问题讨论】:

    标签: php composer-php pear


    【解决方案1】:

    最终找到了一个 Github gist,其中有人将“pear-pear/PEAR”列为您需要的包:

    }
        "repositories": [
            {
                "type": "pear",
                "url": "http://pear.php.net"
            }
        ],
        "require": {
            "pear-pear/PEAR": "*",
            "pear/archive_tar": "*"
        }
    }
    

    【讨论】:

    • 对我来说失败:在任何版本中都找不到请求的包 pear-pear/pear,包名称可能有拼写错误。
    【解决方案2】:

    我找到了秘诀:Composer 实际上并没有将“pear”作为 pear.php.net 的别名。所以如果你想要 pear(但不是 pear2)风格的依赖,这里是我的 sn-p:

    "repositories": [
        {
            "type": "pear",
            "url": "https://pear.php.net"
        }
    ],
    "require": {
        "pear-pear.php.net/PEAR": "*",
        "pear-pear.php.net/archite_tar": "*"
    }
    

    请注意,网址必须为“https”,否则作曲家会抱怨和/或失败。

    【讨论】:

    • 这里有一个错字 -- archite_tar 应该是 archive_tar
    猜你喜欢
    • 2015-11-20
    • 2019-03-16
    • 2015-03-30
    • 2014-10-11
    • 2017-12-11
    • 2015-08-20
    • 2015-06-10
    • 1970-01-01
    • 2017-02-22
    相关资源
    最近更新 更多