求解,Laravel 框架中 App 的用法详解

<?php
use App\Repositories\Manage\Redis\RedisRepository;
use App\Services\Manage\Bill\CreateBill;
use App\Http\Controllers\Controller;

class AddController extends Controller{
   public function add() {
        $redisRepository = new RedisRepository();
        app(CreateBill::class,['repository' => $redisRepository]);
    }
}

if (! function_exists('app')) {
    /**
     * Get the available container instance.
     * @param  string  $abstract
     * @param  array   $parameters
     * @return mixed|\Illuminate\Foundation\Application\ 
     */
     function app($abstract = null, array $parameters = [])
     {
        if (is_null($abstract)) {
            return Container::getInstance();
        }

        return empty($parameters)
            ? Container::getInstance()->make($abstract)
            : Container::getInstance()->makeWith($abstract, $parameters);
    }
}

app(CreateBill::class,['repository' => $redisRepository]);
这种实现方法的目前和作用,为什么这样使用?

讨论数量: 2

类实例化成对象,按需加载,望大佬详细讲解

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!