【问题标题】:kohana project structurekohana项目结构
【发布时间】:2010-05-14 21:00:38
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

    标签: layout kohana structure kohana-3


    【解决方案1】:

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

    • 申请
        • 控制器
        • 型号
      • 观看次数
    • admin_application
        • 控制器
        • 型号
      • 观看次数

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

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

    • 申请
        • 控制器
          • 管理员
        • 型号
          • 管理员
      • 查看次数
        • 管理员

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

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

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

    【讨论】:

    • 感谢您的明确回答 MatW。我将检查第二种方法。方法 1 看起来不错,但目前我不太确定模块是如何工作的。非常感谢!
    • 嗨,MatW,我决定不再做懦夫,尝试第一个文件夹结构。我已经设置好了一切。但是现在,我是否要在 'admin_application' 中创建一个单独的 bootstrap.php 文件?当它转到mydomain.com/adminadmin.mydomain.com 时,我如何告诉我的应用程序使用这个引导程序?非常感谢
    • 好的,我想我会制作两个'index.php'文件。 1.site.php 和 2.admin.php ...将它们都放在文档根目录中。还创建另一个 bootstrap.php 文件并放置在“admin_application”中。然后使用 .htaccess 路由到正确的应用程序(admin_application 或应用程序).​​..不确定,但我会尝试。感谢您的帮助。
    • 从新的 KO3 安装 - 复制您的应用程序文件夹,将其命名为“admin”或其他名称,将引导程序 base_url 更改为“/admin”。在“/public_html/admin”中创建一个新文件夹,复制 index.php 和 .htaccess。在 index.php 中,编辑应用程序、模块和系统变量以指向新的管理应用程序。在 .htaccess 中,将 RewriteBase 变量编辑为“/admin”。以上都是凭记忆,所以我可能忘记了一些陷阱,但如果您遇到麻烦,请查看 Kohana 的论坛。我不记得线程的名称(否则我会发布它),但他们之前已经讨论过这个主题,并且是一群友好的人。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2013-06-30
      • 2019-02-08
      • 2018-12-19
      相关资源
      最近更新 更多