【问题标题】:Why are Laravel Models static and should I use static functions in my own Models?为什么 Laravel 模型是静态的,我应该在自己的模型中使用静态函数?
【发布时间】:2020-05-04 23:44:01
【问题描述】:

在 Laravel 模型中使用静态函数,文档使用静态函数来展示模型的工作方式。如果我为我的应用程序创建一个新模型,它会扩展基本模型类,但为什么 Laravel 使用静态函数?我认为这个想法是静态的,有什么不好的吗?例如,它使测试变得更加困难?

我很困惑,因为大多数东西都可以从 DI 容器中检索?比如一个叫Flight的Model,为什么不在controller里面这样使用:

namespace App\Http\Controllers;

use App\Flight;

class FlightController
{
    public __construct(Flight $flight)
    {
        $this->flight = $flight; // etc.
    }
}

而且模型甚至不使用外观?当我创建自己的模型时,我是否也总是使用静态函数?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我不确定我是否正确理解了您的问题,但我认为您将 Facades 误认为是静态方法。阅读此https://laravel.com/docs/7.x/facades#how-facades-work,Laravel 使用魔术方法_callStatic() 来解析实际实例。所以它看起来是静态的,但事实并非如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2017-03-19
      • 2012-11-11
      • 2011-06-23
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多