Cyn*_*ial 3 php dependency-injection controller laravel laravel-4
我想在Laravel 4控制器中制作可测试的代码.我知道DI(依赖注入),我知道可测试代码可能如下所示:
class UsersController extends BaseController
{
public function __construct(User $user, Notice $notice)
{
$this->user = $user;
$this->notice = $notice;
}
public function getIndex()
{
...
$this->user
...
$this->notice
...
}
public function getPage()
{
...
$this->user
...
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我将两个对象注入控制器.
对于getIndex功能,它是完美的,我在其中使用两个对象.
但请注意,对于getPage功能,我只是使用$this->user,我不需要$this->notice.
但是,$this->notice对象已经实例化了,这真的不太好.
有没有更好的方法来不实例化所有对象?
在大多数情况下,我认为这是过早的优化,因为严重的开销可能是微不足道的,你只是在浪费你的时间.
如果这是您的应用程序中的性能问题,那么您有以下解决方案:
但你应该不关心创建一个你不使用的对象注入,因为你只能节省0.00001秒,没有人会看到差异.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |