当前位置:K88软件开发文章中心编程工具Composer → 文章内容

Composer 资源库

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-24 10:15:08

方式支持 composer,你仍然可以使用 package 类型定义资源库。基本上,你可以定义与 packages.json 中 composer 类型资源库相同的信息,但需要为每个这样的资源包分别定义。同样,至少应该包含以下信息:name、version、(dist 或 source)。这是一个 smarty 模板引擎的例子:{ "repositories": [ { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "http://www.smarty.net/files/Smarty-3.1.7.zip", "type": "zip" }, "source": { "url": "http://smarty-php.googlecode.com/svn/", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" }, "autoload": { "classmap": ["libs/"] } } } ], "require": { "smarty/smarty": "3.1.*" }}通常你不需要去定义 source,因为你并不是真的需要它。注意: 该资源库类型存在以下限制,因此应尽可能避免使用:Composer 将不会更新资源包,除非你修改了 version 字段。Composer 将不会更新 commit references,因此如果你使用 master reference,将不得不删除该程序包以强制更新,并且将不得不面对一个不稳定的 lock 文件。Hosting your own尽管大部分的时间,你大概都会把资源包放在 packagist.org 上,但这里还将告诉你一些用例,以便你可以自行托管资源库。Private company packages: 如果你是一个公司的职员,对公司内部的资源包使用 composer,你可能会想让这些包保持私有的状态。Separate ecosystem: 如果你的项目有自己的生态系统,并且自己的资源包不需要被其它项目所复用,你可能会想将它们从 packagist.org 上分离出来。其中一个例子就是 wordpress 的插件。对于自行托管的软件包,建议使用 composer 类型资源库设置,它将提供最佳的性能。这里有一些工具,可以帮助你创建 composer 类型的资源库。Packagistpackagist 的底层是开源的。这意味着你可以只安装你自己拷贝的 packagist,改造并使用它。这真的是很直接简单的事情。然而,由于其规模和复杂性,对于大多数中小型企业还是建议使用 Satis。Packagist 是一个 Symfony2 应用程序,并且托管在 GitHub 上 github.com/composer/packagist。它内部使用了 composer 并作为 VCS 资源库与 composer 用户之间的代理。它拥有所有 VCS 资源包的列表,定期重新抓取它们,并将其作为一个 composer 资源库。要设置你的副本,只需要按照 github.com/composer/packagist 的说明进行操作。SatisSatis 是一个静态的 composer 资源库生成器。它像是一个超轻量级的、基于静态文件的 packagist 版本。你给它一个包含 composer.json 的存储库,定义好 VCS 和 资源库。它会获取所有你列出的包,并打印 packages.json 文件,作为 composer 类型的资源库。更多详细信息请查看 github.com/composer/satis 和 Satis article。Artifact在某些情况下,或许没有能力拥有之前提到的任何一种线上资源库。Typical example could be cross-organisation library exchange through built artifacts。当然大部分的时间他们都是私有的。为了简化维护,可以简单的使用 artifact 资源库类型,来引用一个包含那些私有包的 ZIP 存档的文件夹:{ "repositories": [ { "type": "artifact", "url": "path/to/directory/with/zips/" } ], "require": { "private-vendor-one/core": "15.6.2", "private-vendor-two/connectivity": "*", "acme-corp/parser": "10.3.5" }}每个 zip artifact 都只是一个 ZIP 存档,放置在 composer.json 所在的根目录:unzip -l acme-corp-parser-10.3.5.zipcomposer.json...如果有两个不同版本的资源包,它们都会被导入。当有一个新版本的存档被添加到 artifact 文件夹,并且你运行了 update 命令,该版本就会被导入,并且 Composer 将更新到最新版本。禁用 Packagist你可以在 composer.json 中禁用默认的 Packagist 资源库。{ "repositories": [ { "packagist": false } ]}

上一页  [1] [2] [3] 


Composer 资源库