我已经创建了我的yii2扩展。我把它保存在我的私人git服务器上。我管理的扩展通过作曲家使用以下代码下载:
"repositories": [
{
"type": "package",
"package": {
"name": "author/yii2-user",
"version": "dev-master",
"source": {
"url": "ssh://git@my.server.pl/srv/git/user.git",
"type": "git",
"reference": "origin/master"
}
}
}
],
和"author/yii2-user": "*",
在require
段。这一切都很好,但有一个问题。下载扩展后,作曲家应该将其添加到yiisoftextension.php
文件,但它没有被添加。
在我的扩展我有作曲家。Json文件如下:
{
"name": "author/yii2-user",
"description": "Auth and user manager for our apps",
"keywords": ["yii", "admin", "auth"],
"type": "yii2-extension",
"support": {
"issues": "",
"source": ""
},
"authors": [
{
"name": "j2",
"email": "j2@j2.j2"
}
],
"require": {
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*"
},
"autoload": {
"psr-4": {
"author\user\": ""
}
}
}
我想找到一个解决办法,但是很难。
如果源代码在您自己的控制之下,则不要使用"type": "package"
存储库。如果您使用"type": "vcs"
存储库并提供源代码服务器的URL,那么您必须添加的每个信息都可以由Composer自己计算出来。
正确的方法是:
"repositories": [
{
"type": "vcs",
"url": "ssh://git@my.server.pl/srv/git/user.git"
}
],
Composer扫描这个存储库的composer.json
,解析它,然后知道所有的元数据,如名称,类型(可能很重要,如果你想安装它作为一个yii扩展),版本或分支等。
包类型的存在只是为了允许任何人需要一个不再维护的特定软件,因此丢失的composer.json
将永远不会被添加,并且/或在packagist.org上注册将永远不会发生以替代这种信息的缺乏。千万不要在你自己的软件上使用它。