Laravel创建服务器提供者实例

栏目: 编程语言 · PHP · 发布时间: 5年前

内容简介:下面我们演示下如何创建服务器提供者,它是Laravel的核心。在在

下面我们演示下如何创建服务器提供者,它是 Laravel 的核心。

app/Contracts 目录下创建 TestContract.php 文件,其内容为:

<?php  
namespace App\Contracts;  

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

app/Services 目录下创建 TestService.php 文件,其内容为:

<?php  
namespace App\Services;  
use App\Contracts\TestContract;  

class TestService implements TestContract {  
    public function callMe($controller){  
        dd("Call me from TestServiceProvider in ".$controller);  
    }  
}

config/app.php 文件中providers中添加内容,以便进行注册:

...  
App\Providers\RiakServiceProvider::class,

创建1个服务提供类:

php artisan make:provider RiakServiceProvider

其内容为:

<?php  

namespace App\Providers;  

use App\Services\TestService;  
use Illuminate\Support\ServiceProvider;  

class RiakServiceProvider extends ServiceProvider  
{  
    /**  
     * Bootstrap the application services.  
     *  
     * @return void  
     */  
    public function boot()  
    {  
        //  
    }  

    /**  
     * Register the application services.  
     *  
     * @return void  
     */  
    public function register()  
    {  
        $this->app->bind("App\Contracts\TestContract",function(){  
            return new TestService();  
        });  
    }  
}

在ServiceProvider中提供了2个方法,其中register方法用于注册服务,而boot用于引导服务。

在控制器IndxController中添加如下内容:

<?php  

namespace App\Http\Controllers;  

use App;  
use Illuminate\Http\Request;  
use App\Contracts\TestContract;  

class IndexController extends Controller  
{  
    public function __construct(TestContract $test){  
        $this->test = $test;  
    }  
    public function index(){  
        $this->test->callMe("IndexController");  
    }  
}

访问浏览器可以得到如下的结果:

"Call me from TestServiceProvider in IndexController"

另外,还可以使用App的make方法进行调用。

public function index(){  
        $test = App::make('test');  
        $test->callMe('IndexController');  
    }

其结果也是一样的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

白话机器学习算法

白话机器学习算法

[新加坡] 黄莉婷、[新加坡] 苏川集 / 武传海 / 人民邮电出版社 / 2019-2 / 49.00元

与使用数学语言或计算机编程语言讲解算法的书不同,本书另辟蹊径,用通俗易懂的人类语言以及大量有趣的示例和插图讲解10多种前沿的机器学习算法。内容涵盖k均值聚类、主成分分析、关联规则、社会网络分析等无监督学习算法,以及回归分析、k最近邻、支持向量机、决策树、随机森林、神经网络等监督学习算法,并概述强化学习算法的思想。任何对机器学习和数据科学怀有好奇心的人都可以通过本书构建知识体系。一起来看看 《白话机器学习算法》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具