🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
###1. 发布到 VCS(线上版本控制系统) 一旦你有一个包含 composer.json 文件的库存储在线上版本控制系统(例如:Git),你的库就可以被 Composer 所安装。在这个例子中,我们将 acme/hello-world 库发布在 GitHub 上的 github.com/username/hello-world 中。 现在测试这个 acme/hello-world 包,我们在本地创建一个新的项目。我们将它命名为 acme/blog。此博客将依赖 acme/hello-world,而后者又依赖 monolog/monolog。我们可以在某处创建一个新的 blog 文件夹来完成它,并且需要包含 composer.json 文件: ~~~ { "name": "acme/blog", "require": { "acme/hello-world": "dev-master" } } ~~~ 在这个例子中 name 不是必须的,因为我们并不想将它发布为一个库。在这里为 composer.json 文件添加描述。 现在我们需要告诉我们的应用,在哪里可以找到 hello-world 的依赖。为此我们需要在 composer.json 中添加 repositories 来源申明: ~~~ { "name": "acme/blog", "repositories": [ { "type": "vcs", "url": "https://github.com/username/hello-world" } ], "require": { "acme/hello-world": "dev-master" } } ~~~ 更多关于包的来源是如何工作的,以及还有什么其他的类型可供选择,请查看资源库。 这就是全部了。你现在可以使用 Composer 的 install 命令来安装你的依赖包了! 小结: 任何含有 composer.json 的 GIT、SVN、HG 存储库,都可以通过 require 字段指定“包来源”和“声明依赖”来添加到你的项目中。 ###2. 发布到 packagist!!! 好的,你现在可以发布你的包了,但你不会希望你的用户每次都这样繁琐的指定包的来源。 你可能注意到了另一件事,我们并没有指定 monolog/monolog 的来源。它是怎么工作的?答案是 packagist。 Packagist 是 Composer 主要的一个包信息存储库,它默认是启用的。任何在 packagist 上发布的包都可以直接被 Composer 使用。就像 monolog 它被 发布在 packagist 上,我们可以直接使用它,而不必指定任何额外的来源信息。 如果我们想与世界分享我们的 hello-world,我们最好将它发布到 packagist 上。这样做是很容易的。 你只需要点击那个大大的 "Submit Package" 按钮并注册。接着提交你库的来源地址,此时 packagist 就开始了抓取。一旦完成,你的包将可以提供给任何人使用。