【问题标题】:which approach is best to get instance of a Table in cakephp 3.0哪种方法最适合在 cakephp 3.0 中获取表的实例
【发布时间】:2015-04-11 14:08:57
【问题描述】:

我是 Cakephp 新手,从 cake3 开始。

我遇到的一个问题是,从性能角度来看,哪种方法最适合在 CakePHP-3.0 中获取一个表实例,该实例不是控制器的默认值,介于 loadModel 或 TableRegistry 之间。

如:

1. $this->loadModel('Articles');
OR
2. TableRegistry::get('Articles');

我阅读了 loadModelTableRegistry 的 Cake-Doc。混乱来自这里

提前致谢

【问题讨论】:

    标签: cakephp-3.0


    【解决方案1】:

    在控制器中,最好使用loadModel()。原因是在做单元测试的时候更容易mock。

    它还根据已加载的表设置$this->[MyTable]变量。

    【讨论】:

    • 非常感谢@José Lorenzo 的精彩解释
    • 在链接 $this->MyTable1->MyTable2->find() 之类的模型和通过 loadModel(); 加载模型之间是否有首选方式?
    • @JoséLorenzo,确实 loadModel 比 TableRegistry::get() 慢,因为 ndm 在here 中声称
    • 不,这不是真的(实际上)。它会产生一个额外的函数调用,但这只能以纳秒为单位进行测量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2011-05-07
    相关资源
    最近更新 更多