似乎这个线程上的大多数答案都不是“知道的”。我自己是 Composer 的新手,但这些答案具有误导性。这个问题可以简单地表述为:“我怎样才能开发一个作曲家包”。
是的,您可以使用自定义存储库或上传未完成的包并在每次更改后更新它。这既不是正确的解决方案,也不是问题的答案。
Composer 的官方文档没有预先说明这一点并没有帮助,但是您可以在Libraries 文档页面上看到标题:
每个项目都是一个包
理解这一点非常重要
作曲家.json:
前面提到的页面继续说明:
为了使该软件包可安装,您需要为其命名。您可以通过在composer.json
{
"name": "acme/hello-world",
"require": {
"monolog/monolog": "1.0.*"
}
}
到目前为止,在这个示例中,我们有一个必需的包,现在还有一个名称。注意vendor/name
格式。
所以现在自动加载我们自己的文件,这些文件记录在基本使用页面上。
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
这将自动加载目录下的命名空间类文件src/Acme
。
继续玩乐。
安装更新
使用以下命令安装或更新软件包:
composer update
或者
php composer.phar update
这将下载所需的包并创建 autoload.php 文件
我们的项目结构应该类似于以下内容:
src
Acme
Foo.php
vendor
monolog
...
composer.json
包含
现在来测试。
包括 autoload.php
require_once 'path/to/project/vendor/autoload.php';
假设 Foo.php 如下所示:
<?php
namespace Acme;
class Foo {
public static function bar(){
return 'baz';
}
}
?>
然后我们可以从我们的脚本中调用它:
echo Acme\Foo::bar(); // baz
请更正我可能陈述的任何误导性信息。这似乎是一个流行问题的解决方案。