Laravel容器返回多个Singleton实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel容器返回多个Singleton实例相关的知识,希望对你有一定的参考价值。
我创建了一个CustomProvider
,将它添加到app.php
提供程序数组中并将类注册为singleton:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\ReserveCart;
class CustomProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->singleton('App\ReserveCart', function($app){
return new ReserveCart;
});
}
}
但每当我用$rc = resolve('App\ReserveCart');
请求对象时,它会不断给我不同的对象实例而不是单个实例(我做了一些回声跟踪)。
还尝试将依赖关系传递给Laravel文档中的方法。例如
public function foo(App\ReserveCart $rc){
//
}
但问题仍然存在。
答案
输出是否低于相同?
$rc = resolve('App\ReserveCart');
$rc1 = resolve('App\ReserveCart');
dd(spl_object_hash($rc), spl_object_hash($rc1));
以上是关于Laravel容器返回多个Singleton实例的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:区别 App::bind 和 App::singleton
spring中bean的作用域属性singleton与prototype的区别