Lumen开发:如何向 IoC 容器中添加自己定义的类

版权声明:本文为博主原创文章,未经博主允许不得转载。

先在起始文件bootstrap/app.php加上$app->register(AppProvidersUserUserServiceProvider::class);

/*
| --------------------------------------------------------------------------
|登记服务提供商
| --------------------------------------------------------------------------
|
|这里我们将登记所有的应用服务提供商
|用于绑定到容器服务。服务提供商
|完全可选的,所以你不需要注释掉这行。
|
*/

// $app->register(AppProvidersAuthServiceProvider::class);
// $app->register(AppProvidersEventServiceProvider::class);
$app->register(DingoApiProviderLumenServiceProvider::class);
$app->register(BarryvdhLaravelIdeHelperIdeHelperServiceProvider::class);

$app->register(AppProvidersUserUserServiceProvider::class);

app/Providers/User/UserServiceProvider.php

<?php

namespace AppProvidersUser;

use IlluminateSupportServiceProvider;

class UserServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.(引导应用程序服务。)
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register the application services.(注册应用程序服务。)
     *
     * @return void
     */
    public function register()
    {
        //
        $this->app->bind('user',function(){
            return new UserFactory();
        });
    }
}

app/Providers/User/UserFactory.php

<?php
namespace AppProvidersUser;

class UserFactory
{
    public function Test(){
        return 'test';
    }
    
}

然后用下面的方法调用

app('user')->test();

输出test,则表示成功了!

Lumen技术交流群:310493206

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/cxscode/p/7569856.html