加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel 5:app()辅助函数

发布时间:2020-12-14 19:44:24 所属栏目:大数据 来源:网络整理
导读:为什么有人会用这个: function flash($title){ $flash = app('AppHttpFlash'); return $flash-message('This is a flash message');} 对此: use AppHttpFlash;function flash($title){ $flash = new Flash; return $flash-message('This is a flash me
为什么有人会用这个:

function flash($title)
{
    $flash = app('AppHttpFlash');

    return $flash->message('This is a flash message');
}

对此:

use AppHttpFlash;

function flash($title)
{
    $flash = new Flash;

    return $flash->message('This is a flash message');
}

在第一种情况下,我们获取可用的容器实例.

在第二种情况下,我们加载Flash类并在我们的flash方法中实例化它.

我见过有人使用第一种方法,我想知道使用第二种方法是否有任何区别.

解决方法

如果你在你的例子中使用它 – 你将没有利润.但是Laravel容器在这种解析中提供了更多的功能,而使用简单的实例化对象无法实现.

>绑定接口 – 您可以将特定接口及其实现绑定到容器中并将其解析为接口.这对于测试友好的代码和灵活性非常有用 – 因为您可以在不改变界面的情况下轻松地在一个地方更改实现. (例如,在任何地方使用一些Countable接口作为目标来从容器中解析但是接收它的实现.)
>依赖注入 – 如果您将绑定类/接口并在某些方法/构造函数中将其作为依赖项 – Laravel将自动从容器中插入它.
>条件绑定 – 您可以绑定接口但根据情况解决不同的实现.
> Singleton – 您可以绑定对象的某个共享实例.
>解决事件 – 每次容器解析smth时 – 它会引发一个事件,您可以在项目的其他位置订阅.

还有很多其他做法……
你可以在这里阅读更详细的http://laravel.com/docs/5.1/container

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读