【问题标题】:Customize Yii2 plugin without touching core vendor folder自定义 Yii2 插件而不触及核心供应商文件夹
【发布时间】:2018-06-28 16:27:32
【问题描述】:

您好,我正在使用 Yii2 插件进行登录和用户管理:https://github.com/webvimark/user-management

我想自定义这个插件的视图文件。如何在不触及供应商文件夹中的核心文件的情况下做到这一点?

【问题讨论】:

标签: php yii yii2


【解决方案1】:

您可以使用theming 覆盖某些视图文件。在您的配置中:

'components' => [
    // ...
    'view' => [
        'theme' => [
            'pathMap' => [
                '@vendor/webvimark/module-user-management/views' => '@app/views/user-management',
            ],
        ],
    ],
],

然后把你的意见放到@app/views/user-management目录下。


但是如果不再维护扩展,您可以考虑分叉扩展,在 fork 中进行更改并将其用作依赖项。

【讨论】:

  • yii\base\InvalidArgumentException: 无效路径别名:@webvimark/modules/UserManagement/views in D:\xampp7\htdocs\phprobo_yii\vendor\yiisoft\yii2\BaseYii.php:154
  • 安装了这个扩展程序你很痛苦吗?
  • 是的。我在以下位置安装了该扩展:vendor\webvimark\module-user-management
  • 查看我的更新。看起来这个扩展没有有效的 composer 类型,所以 Yii 没有注册相关的别名。
  • 你知道 Yii2 的任何其他身份验证库吗?这是完全可定制的。
【解决方案2】:

扩展项目中的组件/模块和类

创建用户配置类从用户配置扩展。

class YourClass-UserConfig extends webvimark\modules\UserManagement\components\UserConfig
{
/* Custom As you want  */
}

和用户管理模块

class YourClass-UserManagementModule extends webvimark\modules\UserManagement\UserManagementModule
{ 
/* Custom As you want */
}

在配置中添加你的组件

components'=>[
    'user' => [
        'class' => 'YourPackage\YourClass-UserConfig',
    ],
],

'modules'=>[
    'user-management' => [
        'class' => 'YourPackage\YourClass-UserManagementModule',

在您的班级自定义中随心所欲。

【讨论】:

    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2020-05-04
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多