mattketmo / stone
Requires
- php: >=5.3.2
- composer/composer: 1.0.*@alpha
This package is auto-updated.
Last update: 2024-09-05 19:47:34 UTC
README
此项目已不再维护。顺便说一句,你知道吗?Composer 的 dist 包会自动缓存?
Stone 是用于 Composer 的仓库代理。它会创建一个包含你想要镜像的所有包的本地仓库。然后你可以使用 Composer 的全局配置从该本地仓库获取包,而不是从 Packagist 获取。
安装
下载源码
git clone git://github.com/mattketmo/stone.git
确保您可以在 php.ini
中编译 PHAR 文件
[Phar] ; https://php.ac.cn/phar.readonly phar.readonly = Off
将其编译为 PHAR 文件
./bin/compile
现在建议您使用 chmod +x stone.phar
并将其添加到您的 $PATH
中,以便在需要的地方使用它。
您可以使用 自动 的 init
命令初始化本地仓库
stone.phar init
或者您可以通过编辑全局 Composer 配置(Unix 系统上的 ~/.composer/config.json
)手动 完成
{
"repositories": [
{
"type": "composer",
"url": "file:///<HOME>/.composer/stone"
}
]
}
并创建一个空的 ~/.composer/stone/packages.json
{
"packages": { }
}
使用方法
要镜像任何来自 composer.json
文件的包,只需运行
stone.phar mirror /path/to/composer.json
请确保定期更新您的本地包,通过运行
stone.phar update
这就完了!Composer 将现在使用您所有镜像的包,而不是从 Packagist 获取它们。
已知问题
-
Composer 不会识别分支别名(例如,"doctrine/common": "2.3.x-dev" 将从 GitHub 获取,而不是本地仓库)
-
包的替换行为奇怪。例如,如果您已镜像 "symfony/symfony",则要求 "symfony/console" 将会获取 "symfony/symfony"(及其所有依赖项),而不是仅仅的 "子树"
-
目前,它对包之间的依赖关系完全无动于衷,因此它将 仅 下载您的 Composer 所需的依赖项。您可以在
~/.composer
文件夹内创建一个dummy.json
文件,并放置您想要镜像的所有包