使用composer全局安装的.phar类

时间:2015-07-14 10:34:11

标签: php composer-php phar

我在PHP中创建了一个小命令行工具,我还将其打包为PHAR存档。

我接下来要做的就是将我的存档发布到packagist.org又名composer

我现在可以通过这样的作曲家安装我的PHAR包:

composer global require acme/mypackage

这样安装我的包很好。我也可以通过命令运行它。

到目前为止一直很好,但是我现在遇到的问题就出现了。

我有另一个项目应该使用acme/mypackage。我希望该项目引用一个打包到该PHAR中的类。像这样:

<?php
class SomeClass extends AcmeClass { 

}

问题是PHP代码无法识别AcmeClass类。有道理,因为它显然是“全局”安装在系统的某个地方。

其他图书馆如何解决这个问题?如果我没有弄错,那么PHPUnit做了类似的事情吗?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要将composer.json文件添加到项目的根目录:

  

您在composer.json中指定的第一个(通常也是唯一的)是require键。您只是告诉Composer您的项目所依赖的包。

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

接下来,您需要自动加载您的依赖项。

  

对于指定自动加载信息的库,Composer会生成vendor / autoload.php文件。您只需包含此文件即可免费进行自动加载。

require 'vendor/autoload.php';

https://getcomposer.org/doc/01-basic-usage.md