求解,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]);
这种实现方法的目前和作用,为什么这样使用?
类实例化成对象,按需加载,望大佬详细讲解
建议阅读
如何实现Ioc容器和服务提供者是什么概念