Laravel 5:app()辅助函数

爱情和幸福

为什么有人要使用这个:

function flash($title)
{
    $flash = app('App\Http\Flash');

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

在此:

use App\Http\Flash;

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

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

在第一种情况下,我们获得了可用的容器实例。

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

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

西尔韦克劳

如果您按照示例使用它-您将不会获得任何利润。但是Laravel容器在此解析中提供了更多功能,而简单的实例化对象则无法实现。

  1. 绑定接口-您可以将特定的接口及其实现绑定到容器中,并将其解析为接口。这对于易于测试的代码和灵活性很有用-因为您可以在一个地方轻松更改实现而无需更改界面。(例如,Countable在各处使用某个接口作为从容器解析的目标,但改为接收其实现。)
  2. 依赖注入-如果您将绑定类/接口并以某种方法/构造函数的形式依赖它,Laravel会自动从您的容器中插入它。
  3. 条件绑定-您可以绑定接口,但可以根据情况解决不同的实现。
  4. 单例-您可以绑定对象的某些共享实例。
  5. 解决事件-每次容器解析污点-都会引发一个事件,您可以在项目的其他位置进行订阅。

以及其他许多实践...您可以在此处阅读更多详细信息http://laravel.com/docs/5.1/container

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel 5 ovewrite辅助函数__(),因为在wordpress中使用

laravel 5.4 辅助函数资产

在php Laravel 5中创建自定义辅助函数的最佳实践是什么?

Laravel dd 辅助函数返回错误 500

在 Laravel 中使用 pluck() 辅助函数

如何从Laravel 5.3的辅助函数中调用模型方法?

Laravel :: 使用构造函数调用辅助类中的方法

laravel 6.* 中的错误空参数 route() 辅助函数

Laravel 5与Blade ...使用jQuery我无法在使用辅助函数route()时设置数据属性,但可以使用相对路径

Laravel策略(函数App \ Policy的参数太少)

使用Laravel 5执行SQL函数

构造函数依赖注入laravel 5

特定领域的findOrFail Laravel 5函数

在PHP函数内部使用变量(Laravel 5)

辅助函数确定Nat`mod` 5 == 0

Laravel 5 js被app.js阻止

$ app ['files']在Laravel 5中做什么

route()辅助函数不适用于laravel中的资源控制器,但url()可以工作。正常吗

Laravel-Facades与辅助方法的性能

带有 JavaScript 的 laravel 路由辅助参数

在App.js中找不到Laravel 5.8 require函数

Laravel 5.4调用未定义函数App \ iconv()

如何在Laravel流明中调用app_path()函数?

函数 App\Http\Middleware\Locale::handle() 的参数太少 | Laravel 8

调用未定义函数App \ belongsToMany [Laravel]

Laravel 5:如何通过构造函数添加Auth :: user()-> id?

调用非对象上的成员函数count()(Laravel 5)

Laravel 5:在Controller的构造函数中获取route参数

Laravel 5:[在非对象上调用成员函数getAction()