2

我正在研究将 Kohana 用于我的下一个项目。该站点将包含用户注册(以及因此的用户配置文件),用户将在其中拥有某些特权。该网站还将有一个管理部分,管理员可以在其中说阻止用户或删除帖子或查看使用统计信息。一个好的比较网站应该是一个多用户博客,其中每个博客作者都可以根据她/他的权限发布/编辑/删除博客……仅作为示例。

首先,我不确定如何设置控制器/视图结构以将管理部分与前端站点分开。我正在使用 Kohana 3,所以我在考虑这样的控制器结构:application/classes/controller/front(正面)...和 ​​application/classes/controller/admin(用于管理部分)。

或者我注意到你可以使用 Route 类来设置路由,所以我可以设置一个“管理员”路由。例如:www.example.com/admin 将导致管理员登录屏幕。www.example.com ---> 前端控制器。

同样,我能否以某种方式将“管理”视图和控制器与“正面”视图和控制器分开,例如根据文件夹结构将它们分开?很感谢任何形式的帮助。

谢谢你。

4

2 回答 2

4

您可以为管理员和前端设置一个单独的应用程序文件夹:

  • 应用
    • 班级
      • 控制器
      • 模型
    • 意见
  • admin_application
    • 班级
      • 控制器
      • 模型
    • 意见

这种方法将允许您单独自定义每个引导环境,并很好地分离各种文件。但是,由于这种分离,您需要将共享代码构建为模块,以允许在两个应用程序之间共享功能。当然,您可以只复制代码,但现在这样就错了,不是吗!;)

另一种方法是在单个应用程序的每个文件夹中都有管理子文件夹:

  • 应用
    • 班级
      • 控制器
        • 行政
      • 模型
        • 行政
    • 意见
      • 行政

这种方法使文件更加混合,并且可能使事情更难维护(取决于您的观点),但它肯定更容易实现。这种方法的一个优点是您可以创建一个 /public_html/admin 文件夹并使用 .htaccess 保护它(您还需要添加普通 index.php 文件的副本)。然后,无论何时发出任何http://yourdomain.com/admin请求,.htaccess 文件都会启动并在网络服务器级别保护您的管理应用程序。此外,请求将自动路由到各个文件夹中的 /admin 子文件夹,因此您在路由方面也有更少的工作要做。

这两种情况都将使用 Kohana 的(很棒的)路由机制来处理哪些请求去了哪里,并且从应用程序访问的角度来看,每个请求都与另一个一样安全。顺便说一句,我假设您正在使用 KO3...

编辑
实际上,如果您也使用第一种方法,您可以 .htaccess 保护管理应用程序。您只需要调整 /admin/index.php 文件以指向管理应用程序。

于 2010-05-14T21:37:02.367 回答
1

我的方法与第一种方法类似,但是对于每个模块,我将创建一个管理控制器和一个前端控制器——我的所有管理控制器都将继承自一个抽象管理控制器,该控制器将在之前的方法中进行身份验证——或者类似这样.

于 2010-05-17T08:52:19.603 回答