【问题标题】:How to conditionally load the models in controller method in codeigniter如何在codeigniter的控制器方法中有条件地加载模型
【发布时间】:2013-10-04 11:16:20
【问题描述】:

我在我的项目中使用 CodeIgniterdoctrine。当我启用 CodeIgniter 分析时,我知道我的一个请求占用了 18MB 的内存。我用简单的 CI 和 Doctrine 库创建了测试项目。在测试项目中,CRUD 操作每个请求需要 6 到 7 MB 内存。在深入研究应用程序后,我知道包含的模型占用了太多内存。

之前我将模型加载到构造函数中。但是它消耗了太多的内存。 我决定将模型加载到特定方法所需的每个方法中。

这是好方法吗?

请给我建议。

【问题讨论】:

    标签: php codeigniter doctrine-orm


    【解决方案1】:

    不,您不应该在每种方法中都加载模型。而是尝试在每个控制器文件的构造函数中加载模型。希望你能理解我的回答。

    【讨论】:

    • 我已经在我的项目中做,但模型为每个请求占用 3MB 内存。如果从构造函数中删除模型,那么它会减少内存。
    • 我在单个控制器中使用的四个模型文件。
    • 通用模型文件应该在 CI_controller 库中,控制器应该只有各自的模型文件
    【解决方案2】:

    当然,我们应该有条件地加载模型。

    1) 你应该在构造函数中写一些加载模型的条件。

    2) 此外,任何控制器都应仅包含必需/依赖模型。

    3) 在每个方法中包含模型,加载页面更快。但是,这不是最佳做法。

    4) 相反,您应该深入研究您的模型代码并找出为什么要花费这么多时间来加载。

    你的方法是对的。

    【讨论】:

      【解决方案3】:

      使用 autoload.php 加载模型以充分利用框架的好处

      【讨论】:

      • 我对内存的担忧...因为我不想通过自动加载加载模型或库...我想在需要时加载模型。
      • 这取决于您需要多少特定型号......我认为我不会有任何内存问题,兄弟
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      相关资源
      最近更新 更多