laravel - 为什么默认不共享 Laravel 实例?
问题描述
我惊讶地发现 Laravel 实例默认不共享。
我发现声明提供者的“最简单”方式如下:
<?php
namespace App\Providers;
use App\SomeService;
use Illuminate\Support\ServiceProvider;
class SomeServiceServiceProvider extends ServiceProvider {
protected $defer = true;
public function register() {
$this->app->singleton(SomeService::class);
}
public function provides() {
$provides = parent::provides();
$provides[] = SomeService::class;
return $provides;
}
}
TMHO 依赖注入容器中的“标准”服务是一个共享实例。我很好奇他们为什么选择这种方法?
作为奖励,如果您知道声明共享实例的更简单方法。
解决方案
推荐阅读
- linux - 我将如何编写一个“if”命令来检查是否有多个参数?
- android-studio - 在 Android 上颤振火焰精灵复制而不是在 iPhone 上?
- javascript - 如何在地图缩放上交换图层可见性?
- javascript - 如何以方形空间形式提醒上传文件的文件名?
- xcode - 打开新项目后 Xcode 立即崩溃
- javascript - 如何重构拖放文件 Chrome 扩展以解决 CORB 错误
- prolog - Prolog - 递归中的最大值
- linux - 在装配中打印新行
- python - 如何根据python中的索引将二维数组中的元素与另一个列表链接?
- php - Carbon 未找到 PHP 项目