我在PHP中创建了一个小命令行工具,我还将其打包为PHAR存档。
我接下来要做的就是将我的存档发布到packagist.org
又名composer
。
我现在可以通过这样的作曲家安装我的PHAR包:
composer global require acme/mypackage
这样安装我的包很好。我也可以通过命令运行它。
到目前为止一直很好,但是我现在遇到的问题就出现了。
我有另一个项目应该使用acme/mypackage
。我希望该项目引用一个打包到该PHAR中的类。像这样:
<?php
class SomeClass extends AcmeClass {
}
问题是PHP代码无法识别AcmeClass
类。有道理,因为它显然是“全局”安装在系统的某个地方。
其他图书馆如何解决这个问题?如果我没有弄错,那么PHPUnit做了类似的事情吗?
我该如何解决这个问题?
答案 0 :(得分:1)
您需要将composer.json
文件添加到项目的根目录:
您在composer.json中指定的第一个(通常也是唯一的)是require键。您只是告诉Composer您的项目所依赖的包。
{
"require": {
"monolog/monolog": "1.0.*"
}
}
接下来,您需要自动加载您的依赖项。
对于指定自动加载信息的库,Composer会生成vendor / autoload.php文件。您只需包含此文件即可免费进行自动加载。
require 'vendor/autoload.php';