Yii2下composer 安装本地开发Extensions(扩展包)

composer yii2 Yii2 · systemofdown · 于 4年前 发布 · 2638 次阅读

在开发当中,我们总是想复用代码,降低重复开发的工作。 在yii2开发的过程中,用composer管理依赖,在开发的时候,官方给出的办法是用aliases定义命名空间的。

假设在 vendor/mycompany/myext 目录中安装了一个扩展,并且扩展类的命名空间为 myext , 那么你可以在应用配置文件中包含如下代码:

[
    'aliases' => [
        '@myext' => '@vendor/mycompany/myext',
    ],
]

这种办法很有局限性,如果我们扩展本身也想引用依赖,就很麻烦,需要在项目中单独安装,并不是和这个扩展进行关联。

使用Gii创建扩展的时候,默认生成了composer.json,那我们可以把需要的依赖定义到这个配置文件里。

问题来了,这么定义如何载入并使这个配置生效。 其实很简单,我们在定义repositories(仓库)的时候会有多种模式(如:composer,git,artifact,path等)。

我们只需要在项目的composer.json配置文件中增加对应本地扩展路径的定义即可

{
...
 "repositories": {
        "0": {
            "type": "composer",
            "url": "https://asset-packagist.org"
        },
        "local": {
            "type": "path",
            "url": "./app/extensions/*/*",
            "options": {
                "symlink": true
            }
        },
        "packagist": {
            "type": "composer",
            "url": "https://repo.huaweicloud.com/repository/php/"
        }
    }
}

为了开发方便,我们安装的时候采用软连接的形式。避免开发的目录与实际运行的目录文件不能同步。

安装需要的扩展 这里需要注意的是,安装的时候版本参数使用dev-master

composer require  grazio/yii2-adminui:dev-master -vvv

本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册