Laravel 依赖注入,Facades 类最简单的使用

依赖注入

直接形式

public function index(Request $request){

}

public function index(Test $test)
    {
        echo $test->testSay();

    }

这里都是依赖注入的一种表现,它们的本质是 new 类 然后复制给一个变量代替 。

操作指南:

  • 可以定义一个类(非抽血,接口类),然后直接注入即可。

绑定形式

我们在 app/Providers/ 下任意一个注册提供者在register里面注册一下我们的要执行的类

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind('Test', function ($app) {
            return new \App\PayServices\Test();
        });

    }
}

test 类

<?php
namespace App\PayServices;

class Test
{
    public function testSay(){
        return 'This is testSay';
    }
}

那么我们现在要来输出怎么输出呢

 public function index(Test $test1)
    {
        echo $test1->testSay();
        echo '<br/>';

        $test2=app('Test');
        echo $test2->testSay();
        echo '<br/>';

        $test3=app()->make('Test');
        echo $test3->testSay();

        echo '<br/>';
        $test4 = resolve('Test');

        echo $test4->testSay();

    }

我们可以通过这4种形式进行调用输出

app()函数和resolve 等同于别名函数

 function resolve($name, array $parameters = [])
    {
        return app($name, $parameters);
    }

    function app($abstract = null, array $parameters = [])
    {
        if (is_null($abstract)) {
            return Container::getInstance();
        }

        return Container::getInstance()->make($abstract, $parameters);
    }
需要花费 10个元宝,后才能查看完整内容 立即购买

提示

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。
黑白课堂

黑白课堂

混元大罗金仙 站长创业者玉树凌风每天醒来0收入

查看更多

最新视频课程

Laravel 的 PhpSpreadsheet 包入门

wap2App 入门讲解,100%速成,全面为你讲解。

ace.js 打造一款属于你的 Web 编辑器,入门文档。

Laravel Permission 中文文档

解释 OAuth 2.0 认证 和使用场景说明

Laravel 之 horizon 队列管理界面系统

钻级赞助商