Laravel容器返回多个Singleton实例

问题描述 投票:0回答:1

我创建了一个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){
    //
}

但问题仍然存在。

php singleton laravel-5.7
1个回答
1
投票

输出是否低于相同?

$rc = resolve('App\ReserveCart');
$rc1 = resolve('App\ReserveCart');
dd(spl_object_hash($rc), spl_object_hash($rc1));
© www.soinside.com 2019 - 2024. All rights reserved.