我需要知道使用服务容器标记的目的是什么以及如何通过示例使用它,这是我到目前为止所尝试的。
class MemoryReport
{
}
class SpeedReport
{
}
class ReportAggregator
{
public function __construct(MemoryReport $memory, SpeedReport $speed)
{
}
}
App::bind('MemoryReport', function () {
return new MemoryReport;
});
App::bind('SpeedReport', function () {
return new SpeedReport;
});
App::tag(['MemoryReport', 'SpeedReport'], 'reports');
App::bind('ReportAggregator', function ($app) {
return new ReportAggregator($app->tagged('reports'));
});
$reportAggregator = resolve('ReportAggregator');
dd($reportAggregator);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误。
传递给 ReportAggregator::__construct() 的参数 1 必须是 MemoryReport 的实例,给出的 Illuminate\Container\RewindableGenerator 的实例,在 /media/mazzam/9068A9DC68A9C0F81/M.azzam/Learning/laravel/00 Tutorial/tut/routes/ 中调用web.php 第 80 行