验证CodeIgniter中的代码结构


Auth code structure in CodeIgniter

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

  • admin:添加、列出全部、查询项、删除项;
  • 作者:add, list all, consult;
  • 普通用户:列出全部,查阅;

(假设它们是新闻条目)

我有一个新闻控制器,添加,列出所有,咨询,删除和各自的视图。

现在,我已经把我的控制器组织成这样了:

控制器:

  • 管理
    • news.php
  • 的作者
    • news.php
  • NormalUser
    • news.php
  • 公共

因此在登录后,用户被重定向到相应的News控制器。例如,Author News Controller有AddViewConsult函数,NormalUser News Controller只有ViewConsult函数。

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

Views呢?头将根据用户的不同而不同。我应该使用相同的头模板和一些if语句来显示不同的数据(取决于用户),还是应该在包中重复视图,更改头?

视图:

  • 管理
    • header。php
    • . php
    • view.php
    • list .
    • delete.php
    • footer。php
  • 的作者
    • header。php
    • . php
    • view.php
    • list .
    • footer。php
  • NormalUser
    • header。php
    • view.php
    • list .
    • footer。php

在这一刻,我有一个template文件夹与header.phpfooter.php,但我有不同的标题的问题。

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

1页眉/页脚视图与几个if语句绝对。可能与list和其他任何重复一半代码的代码相同。

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

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

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