在Laravel中,模型使用静态函数,文档使用静态函数来显示模型是如何工作的。如果我为我的应用程序创建一个新的Model,它扩展了基本的Model类,但是为什么Laravel使用静态函数呢?我认为这个想法是静态的,有什么不好的吗?例如,它使测试变得更加困难?
我只是感到困惑,因为大多数东西都可以从DI容器中检索到?例如,一个名为Flight的模型,为什么不在控制器中这样使用它:
namespace App\Http\Controllers;
use App\Flight;
class FlightController
{
public __construct(Flight $flight)
{
$this->flight = $flight; // etc.
}
}而且模型甚至也不使用外观?当我创建自己的模型时,我是否应该总是使用静态函数?
发布于 2020-05-04 23:44:01
我不确定我是否正确理解了您的问题,但我认为您将Facade误认为是静态方法。阅读此https://laravel.com/docs/7.x/facades#how-facades-work,Laravel使用神奇的方法_callStatic()来解析到实际的实例。所以它看起来是静态的,但事实并非如此。
https://stackoverflow.com/questions/61594299
复制相似问题