我已经创建了我的yii2扩展程序。我把它保存在我的私人git服务器上。我使用以下代码管理了通过composer下载的扩展程序:
"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"
}
}
}
],
{p}和"author/yii2-user": "*",
部分中的require
。
一切正常,但有一个问题。下载扩展程序后,作曲家应将其添加到yiisoft\extension.php
文件中,但不会添加。
在我的扩展程序中,我有这样的composer.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\\": ""
}
}
}
我正在努力寻找解决方案,但这很难。
答案 0 :(得分:9)
如果您拥有自己控制的源代码,请不要使用"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注册永远不会发生替换缺乏信息。永远不要将它用于自己的软件。