使用Laravel 4 static
中的non-static
或models
方法,性能是否有任何差异?自定义类的相同问题。我应该使用Facades
和ServiceProviders
来访问自定义类,还是只使用经典的OOP方式?例如,哪一个执行100万次插入操作会更快:
UserModel::insert($user);
vs
$UserModel = new UserModel();
$UserModel->insert($user);
答案 0 :(得分:2)
UserModel::insert($user)
不是外观(Laravel Facades通过IoC容器解决,这会产生一些次要性能成本)。 It just calls __callStatic
,让Eloquent为您创建新的模型实例。
从技术上讲,创建自己的实例会更快,因为你正在完成Laravel在__callStatic
中的工作,所以你要保存一个函数调用。但差别是微不足道的,根本不重要。
当我跳跃时,我是否比你更接近太阳?
答案 1 :(得分:0)
两种方法的效果差异不大,当您使用Static
调用模型时,它只调用__callstatic
魔法,然后Laravel
制作一个原始类的实例并调用该方法,如果手动创建原始类的实例并手动调用该方法,则Facade
将不会被使用,而Facade
用于解析原始课程将被保存,但这不是一个很大的区别。
所以,在我看来,你可以使用Laravel
提供的常用方法并保持一致,但你是自由的。 static
调用是调用方法的简单方法。遵循每个人使用的通用方法,最好不要在与他人合作的项目中与众不同。