mouf / archive-installer
这是一个简单的安装程序,允许您创建简单的Composer包,实际上是从网络上下载和提取存档。
Requires
- php: >=5.3.0
README
这是一个简单的安装程序,允许您创建简单的Composer包,实际上是从网络上下载和提取存档。
实际上,在Composer中使用“package”仓库已经可以实现从网络上下载存档。但是,这种方法有一些缺点。例如,您不能在根目录中解压缩包,或者无法轻松在该包上构建依赖项。
使用存档安装程序,您可以允许Composer安装没有Composer包的大包。例如,您只需编写一个composer.json文件就可以构建一个Drupal安装程序。
实现存档安装程序的包应至少在composer.json中包含以下声明
{
...
"type": "archive-package",
...
"extra": {
"url": "http://exemple.com/myarchive.zip"
"target-dir": "destination/directory",
"omit-first-directory": "true|false"
}
}
请注意,target-dir是相对于您的项目根目录(包含composer.json文件的目录)的。如果省略target-dir,我们默认为包的目录。
omit-first-directory在您下载的存档中所有文件都包含在一个大目录中时很有用。如果您想要不带容器目录的文件,只需将true传递给omit-first-directory参数(默认为false)。
详细行为
存档安装程序并不是一个完美的实现。实际上,它有点愚蠢。以下是一些您可能想知道的事情
它假定您传递的URL上下载的文件永远不会更改。一旦完成下载和安装,它将不会再次下载文件,除非URL更改。如果URL更改,它将下载新的存档并覆盖任何以前的文件。
如果您卸载包,下载的文件将不会被删除(清理工作由您自己负责)。
团队协作
您可能想知道是否应该将下载的文件提交到您的代码仓库中。
实际上,这取决于您。您可能希望让其他用户运行composer install来下载包,或者您也可以提交文件。如果您提交文件,我们强烈建议您也提交download-status.txt文件,该文件位于包的根目录中。这样,当您的团队成员运行composer install时,包将不会再次下载。当然,相反的情况同样适用:如果您没有提交下载的包,那么您也不应该提交download-status.txt。