【问题标题】:MVC - Yii2 reorganize my code structure from backend to frontendMVC - Yii2 将我的代码结构从后端重新组织到前端
【发布时间】:2019-07-10 20:32:01
【问题描述】:

在我的公司,我有一个带有 Yii2 框架 (MVC) 的应用程序,分为前端和后端,有些人使用前端,有些人使用后端。现在我需要(由于用户的完整性和易于访问的原因)将所有内容集成到前端(仅将后端留给管理员)。

例如,我有一个像“呼叫中心”这样的模块,其中只有 电话接线员将电话保存在后端。 因此,在前端(具有不同的布局、权限、字段、过滤器等),其他用户可以查看、编辑和处理您的调用。 现在我需要将模块“呼叫中心”从后端(只有电话接线员可以访问)传递到前端。

组织我的代码的最佳方式是什么? 我想为来自后端的解码代码分配一个“后缀”,并像这样组织我的代码:

控制器

 CallCenterController.php
 CallCenterAdmin.php

观看次数

call-center
   index.php
   view.php

call-center-admin
   index.php
   view.php
   form.php

这是正确的吗? 或者最好的解决方案是一个控制器和一个带有“呼叫中心”模块视图的文件夹? 我的目标是轻松更改权限、布局、可见字段、过滤器等。

【问题讨论】:

  • 你用什么来获取权限? AccessControl 还是 RBAC?如果您希望将控制器和视图移动到前端,您需要做的就是将控制器的命名空间从 backend\controllers 更改为 frontend\controllers 并且如果您在后端有 models 文件夹,您需要要移至 frontend\modelscommon\models,您也需要对模型执行相同操作,并更改在任何地方使用的模型的 use 语句
  • @MuhammadOmerAslam 我同时使用 AccessControl 和 RBAC。我看到了一些问题,1º 已经在前端和后端都有名为“call-center”的视图文件夹(为此我建议添加后缀),2º 我需要在后端维护模块 call-center(供管理员访问) ,不仅移动到前端。顺便说一句,我尝试将命名空间从 backend\controllers 更改为 frontend\controllers 并收到错误消息“未找到 (#404)”
  • 只需使用建议的名称创建一个新模块并完成它。还要花时间更正所有命名空间和使用语句。
  • @Serghei Leonenco 在您的建议中,我的应用程序将是:frontend\controllers 和视图(以及我在前端已经拥有的所有代码)和 frontend\modules\management(所有代码都来自后端、控制器和意见)对吧?
  • 是的,没错

标签: model-view-controller yii2 reorganize


【解决方案1】:

你的问题就是你的答案。您可以使用拆分授权、配置和 web/index.php 在应用程序级别而不是模块级别创建项目结构,例如:

site:
--common
--console
--call-center:
---web:
----index.php
---views
---etc
--call-center-admin:
---web:
----index.php
---views:
---etc

【讨论】:

  • 感谢您的回复,但@Serghei Leonenco 建议在前端创建一个模块不会使代码更有条理?
  • 在这种情况下他会有很大的问题。这是一种解决方法,而不是“推荐的重构”。顺便说一句,他必须使用类似的东西编写特殊的 RBAC 规则: Yii::$app->id == 'frontend'; //这不是个好主意
  • 是的,你是对的。我试图避免这样的代码:CallCenterController.php; CallCenterAdminController.php; OtherController.php; OtherControllerAdmin.php。你清楚了吗?
  • @Moutinho 我猜最好的方法是为 RBAC 制作具有组合(混合)规则的 common->modules->controllers。在这种情况下,您将在每个应用程序(前端、后端、管理员、呼叫中心含义)中重用“操作”的必要逻辑,并添加\删除一些 RBAC 规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多