【问题标题】:Does loading unneed models in controller constructor affect performance in CodeIgniter 2?在控制器构造函数中加载不需要的模型会影响 CodeIgniter 2 中的性能吗?
【发布时间】:2015-01-27 07:29:13
【问题描述】:

哪一个在性能方面更好?在构造函数中加载控制器中使用的所有模型还是仅在需要的函数中加载模型?或者有什么不同吗?如果模型只在大控制器的其中一个功能中需要,在构造函数中加载会影响性能吗?

class myController extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('loginmodel');
    }

    public function useLoginModel(){
        $this->load->model('loginmodel');
        $this->loginmodel->login();
    }
}

【问题讨论】:

    标签: php codeigniter codeigniter-2


    【解决方案1】:

    如果你只在那个函数中使用它,那么只在那里加载它可能会更快。但这会降低可维护性。每次您想在某个地方使用它时,您总是必须重新检查模型是否已加载。所以我会坚持在构造函数中加载所有内容(显然取决于模型的数量)。

    有一个简单的优化规则:如果速度不慢,就不要优化它。您从上述更改中获得的很少,但在可维护性方面遇到了严重的打击(或者 symfony 称之为“开发人员体验”)

    【讨论】:

      【解决方案2】:

      您可以将其添加到配置文件夹内的 autoload.php 中。

      $autoload['model'] = array('loginmodel');
      

      希望对你有帮助。

      【讨论】:

      • 这与问题无关。
      • 如果您使用多个模型,那么最好在各自的函数中加载它,如果只有一个函数,则自动加载它。但无论如何差异会更小。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多