从私有git服务器安装Yii2扩展 - 框架看不到它

时间:2014-07-01 11:54:16

标签: git composer-php yii-extensions yii2

我已经创建了我的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\\": ""
    }
}

}

我正在努力寻找解决方案,但这很难。

1 个答案:

答案 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注册永远不会发生替换缺乏信息。永远不要将它用于自己的软件。