1

我正在使用CodeIgniterIon auth开发一个小型 Web 应用程序。该应用程序有 3 种不同类型的用户:

  • admin:添加、列出所有、查阅项目、删除项目;
  • 作者:添加、列出、咨询;
  • 普通用户:全部列出,咨询;

(想象它们是新闻条目)

我有一个新闻控制器,可以添加、列出所有、咨询、删除和相应的视图。

到目前为止,我的控制器是这样组织的:

控制器:

  • 行政
    • 新闻.php
  • 作者
    • 新闻.php
  • 普通用户
    • 新闻.php
  • 上市

所以登录后用户被重定向到各自的新闻控制器。例如,作者新闻控制器有AddViewConsult功能,而普通用户新闻控制器只有ViewConsult功能。

困扰我的是,这必须是一种简单的组织方式,根据用户的类型给予不同的权限。它应该重复某些代码吗?

和意见?标题将因用户而异。我应该使用相同的标题模板和一些 if 语句来显示不同的数据,具体取决于用户,还是应该重复包中的视图,更改标题?

意见:

  • 行政
    • 头文件.php
    • 添加.php
    • 视图.php
    • 列表.php
    • 删除.php
    • 页脚.php
  • 作者
    • 头文件.php
    • 添加.php
    • 视图.php
    • 列表.php
    • 页脚.php
  • 普通用户
    • 头文件.php
    • 视图.php
    • 列表.php
    • 页脚.php

在这一刻,我有一个带有and的template文件夹,但是我遇到了不同标题的问题。header.phpfooter.php

4

1 回答 1

2

不,不,不,不,不,你第二次(几乎)做同样的事情时应该会响起警钟,更不用说第三次或第四次了。

1 个带有一些 if 语句的页眉/页脚视图。可能与 list 和其他任何重复一半代码的内容相同。

除非它们完全不同,否则也不要使用三个不同的新闻控制器。同样,使用控制语句来指导程序流,无论如何,您都应该检查各个控制器中的适当访问级别。不要只在主控制器中执行一次并重定向,这些控制器可以通过 URL 直接访问。

我真的不能在这里放任何代码来提供帮助,但是如果您有任何问题,请开始并回来。此外,可能值得在代码审查https://codereview.stackexchange.com/上发布一些代码,以获取有关如何采用 DRY 软件开发的一些提示

http://en.wikipedia.org/wiki/Don%27t_repeat_yourself

于 2013-01-07T14:23:30.690 回答