【问题标题】:Codeigniter seperate front-end and back-endCodeigniter 前后端分离
【发布时间】:2019-08-22 16:33:51
【问题描述】:

我目前正在学习 Codeigniter 框架。我想创建一个项目,它有一个前端(将由用户使用)和一个后端(将由管理员使用)。

我浏览了不同的文章,所有文章都建议使用 HMVC 来分隔公共和管理控制器/视图。我还考虑过创建两个单独的项目,一个用于公共项目,一个用于管理员,两者都使用相同的数据库。

我曾尝试研究上述哪种方法对于潜在的大型项目来说是最佳解决方案,但无法找到任何可持续的答案。

两个独立的 CodeIgniter 项目是否可以同时访问和使用同一个数据库?

编辑: 客户端项目大多只是查询数据库的结果,而管理项目将是完整的 CRUD。

如果确实建议创建多个项目,则管理项目将在子域上运行,即 admin.example.com,而客户端项目将在 example.com 上运行

【问题讨论】:

    标签: codeigniter codeigniter-3


    【解决方案1】:

    使用您提到的任何方法都是有效的。这是个人喜好的问题(阅读:意见)。我单独使用了每一个,并结合了或多或少相同的结果。我已经决定不使用上述任何一种。相反,我使用单个项目,没有 HMVC,没有子域,标准 CI 文件结构。我觉得保持简单最终会更容易构建和维护。 YMMV。

    公共用户与管理员用户的区别在于身份验证授权 (A&A)。没有正确的登录凭据和权限,没有人可以进入管理控制器。无论如何,您将需要 A&A 以防止公众意外发现管理区域。 IMO,“特殊”文件结构和子域实际上使实施 A&A 变得更加困难。

    根据您对该项目的截止日期,您可能希望使用CodeIgniter Version 4 查看。这是对框架的彻底现代改造。它仍处于 beta 测试模式,但我发现它相当稳定。他们正在努力获得发布版本。目前还没有公布的发布日期,但所有迹象都表明它会更早而不是更晚。

    【讨论】:

      【解决方案2】:

      关于如何配置 CI 的答案实际上取决于您的需求以及您认为最好的方式。在这方面没有正确答案或“可接受”的做事方式。

      当我第一次开始使用 Codeigniter 时,我只有一个名为 admin 的后端控制器子文件夹以及一个所有管理类扩展的 Admin 基本/核心控制器,而不是 CI_Controller。模型/视图可以类似地组织到子文件夹中。在我看来,对于小规模应用来说,这是一个完全可以接受的解决方案。

      我搬到了 HMVC,发现在将它们分开方面并没有太大的不同。尽管您可以轻松地从不同项目中拖放模块,只要它们是解耦的,您仍然必须跳过箍来将前端/后端分开。我相信我用这个是一个起点:https://github.com/jmtolibas/HMVC-CI3-with-Separate-Backend-and-Frontend

      就您提到的而言,拥有 2 个独立的项目不一定是一个坏主意。您甚至可以通过在index.php 中对系统路径进行修改来共享相同的系统文件夹。多个数据库连接应该不是问题。

      所以基本上,所有 3 种方法都可以,由您决定您最喜欢使用哪种方法。

      如果你想听听我的意见,我会在任何新项目中使用 Laravel 或 Lumen,而且通过包、命名空间等来分离前端/后端相当容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 2016-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多