Home  >  Article  >  Backend Development  >  yii2 的模块后台如何设计比较优雅

yii2 的模块后台如何设计比较优雅

WBOY
WBOYOriginal
2016-06-06 20:08:251005browse

yii2进行前后台分离,backend和frontend已经配置好正常用了,但是第三方模块或者自己弄得模块,都是基于frontend来做的,而且他的模块里没有响应的设置来区分前台和后台,这时候如果把模块注册到frontend中,内部相应的管理相关的控制器实际上在frontend也能访问到。如何进行优雅的分离,我的意思是不是用RBAC来控制,是前台压根就访问不到。

回复内容:

yii2进行前后台分离,backend和frontend已经配置好正常用了,但是第三方模块或者自己弄得模块,都是基于frontend来做的,而且他的模块里没有响应的设置来区分前台和后台,这时候如果把模块注册到frontend中,内部相应的管理相关的控制器实际上在frontend也能访问到。如何进行优雅的分离,我的意思是不是用RBAC来控制,是前台压根就访问不到。

可以在frontend和backend的同级目录下,新建一个module目录,存放公共模块,然后在需要的地方引导启动模块。例如要在frontend中使用myModule模块,在config中添加如下:

<code>[
    'bootstrap' => [
        'myModule',
    ],

    'modules' => [
        'myModule' => 'app\module\myModule',
    ],
]</code>

然后在frontend项目中,就可以用$module = myModule::getInstance();访问了。

参考http://www.yiichina.com/doc/guide/2.0/st...

yii2默认的高级模板中就已经区分了前台、后台、公用目录了
frontend
backend
common

frontend,backend同时可以依赖common
但frontend、backend之间不做依赖,有依赖的项都放common

你新建的module也要按职能区分开的
前台的module放frontend
后台用的module放backend
公用的再抽出来放common

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn