求解,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]);
这种实现方法的目前和作用,为什么这样使用?

PHPer技术栈
讨论数量: 1
PHPer技术栈

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

1周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

PHP 扩展依赖工具 Composer 的官方文档翻译,每年校对
全文搜索分析引擎 Elasticsearch PHP 端文档中文翻译
PSR 是由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。
设计模式是 PHP 架构师必备知识,本文档完整收录了 PHP 相关的设计模式。