您的位置:首页 > 编程语言 > PHP开发

Laravel如何创建服务器提供者实例代码

2019-04-15 18:02 786 查看

前言

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');
}

其结果也是一样的。

参考文章:

  • https://laravelacademy.org/post/796.html
  • https://laravelacademy.org/post/93.html

总结

以上就是关于mongo模糊查询的简单使用,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: