在codeigniter中加载模型的最佳方式


Do the best way to load model in codeigniter?

我使用Codeigniter编写代码,我想在第一次打开页面时增加加载时间。事实上,当我写代码时,我会像这样加载我的结构中的所有模型:

public function __construct(){
    parent::__construct();
    $this->load->model('Fa_promo');
    $this->load->model('Fa_project');
    $this->load->model('Fa_inbox');
    $this->load->model('Fa_quotes');
    $this->data['keywords']=$this->Configuration->get_keyword();            
    $this->data['about'] = $this->Fa_menu->get__content_from__slug('about');
    $this->data['menu']=$this->Fa_menu->list_menu_level1(); 
    $this->Configuration->update_hits();            
    }

我的问题是,如何以最好的方式加载模型,以提高上述或类似的性能?

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

感谢您的帮助:)

在每个函数中单独加载它们会更快,因为您可以限制加载模型的调用次数,但差异可能是最小的

如果您将它们全部加载到构造函数中,那么您可以在控制器中的任何点从一个加载中使用它们,这可能会慢一点,但好处是它们已经加载并准备好了。不过,它可能会使用比单个给定函数所需的内存更多的内存。

如果你想保存加载模型的代码,你可以在构造函数中执行以下操作:

$this->load->model(['Fa_promo', 'Fa_project', 'Fa_inbox', 'Fa_quotes]);

这将一次性加载所有模型。这并没有实时的好处,因为传递一个数组会导致加载程序为每个项调用自己,所以它与您当前拥有的相同。

代码点火器文档说:您的模型通常会从控制器方法中加载和调用。

第一种方法有一个很大的优点:您可以在所有控制器方法中重用它,而不必一遍又一遍地键入每个方法。

关于性能:我认为这没有任何区别,模型中的函数可能会减慢

的速度