Laravel 4 Facades Performance

时间:2014-03-06 02:55:30

标签: php laravel laravel-4

使用Laravel 4 static中的non-staticmodels方法,性能是否有任何差异?自定义类的相同问题。我应该使用FacadesServiceProviders来访问自定义类,还是只使用经典的OOP方式?例如,哪一个执行100万次插入操作会更快:

UserModel::insert($user); 

vs

$UserModel = new UserModel();
$UserModel->insert($user);

2 个答案:

答案 0 :(得分:2)

  1. UserModel::insert($user)不是外观(Laravel Facades通过IoC容器解决,这会产生一些次要性能成本)。 It just calls __callStatic,让Eloquent为您创建新的模型实例。

  2. 从技术上讲,创建自己的实例会更快,因为你正在完成Laravel在__callStatic中的工作,所以你要保存一个函数调用。但差别是微不足道的,根本不重要。


  3. 当我跳跃时,我是否比你更接近太阳?

答案 1 :(得分:0)

两种方法的效果差异不大,当您使用Static调用模型时,它只调用__callstatic魔法,然后Laravel制作一个原始类的实例并调用该方法,如果手动创建原始类的实例并手动调用该方法,则Facade将不会被使用,而Facade用于解析原始课程将被保存,但这不是一个很大的区别。

所以,在我看来,你可以使用Laravel提供的常用方法并保持一致,但你是自由的。 static调用是调用方法的简单方法。遵循每个人使用的通用方法,最好不要在与他人合作的项目中与众不同。