PHP_laravel_ServiceProvider测试实例

原创
2017/06/28 13:21
阅读数 104

服务提供者 类似HTTP控制器,HTTP控制器用于为相关路由注册提供统一管理,而服务提供者为相关服务容器提供统一绑定场所。此外服务提供者还可以做一些初始化启动操作。Laravel的每个核心组件都对应一个服务提供者。核心组件类在这里完成注册、初始化以供后续调用。

1. 定义服务类

先定义一个绑定到容器的测试类TestService,为了对类的定义加以约束,我们同时还定义一个契约接口TestContract.

TestContract :

<?php

namespace App\Contracts;

interface TestContract
{
    public function callMe($controller);
}

TestService :

<?php

namespace App\Services;

use App\Contracts\TestContract;

class TestService implements TestContract
{
    public function callMe($controller)
    {
        dd('Call me From TestServiceProvider In'.$controller);
    }
}

2. 创建服务提供者

加下来定义一个服务提供者TestServiceProvider用于注册该类到容器。创建服务提供者可以使用如下Artisan命令:

php artisan make:provider TestServiceProvider

该命令会在app/Providers目录下生成一个TestServiceProvider.php文件:

<?php

namespace App\ServiceProvider;
use App\Services\TestService;

class TestServiceProvider extends ServiceProvider
{
    public function boot()
    {
        
    }
    
    public funxtion register()
    {
        //使用singleton绑定单例
        $this->app->singleton('test',function(){
            return new TestService();
        });
        
        //使用bind绑定实例到接口以便依赖注入
        $this->app->bind('App\Contracts\TestContract',function(){
            return new TestService();
        });
    }
}

基于Laravel

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部