内容简介:下面我们演示下如何创建服务器提供者,它是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');
}
其结果也是一样的。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)
刘长龙 / 电子工业出版社 / 2019-1 / 99
也许你听说过全栈工程师,他们善于设计系统架构,精通数据库建模、通用网络协议、后端并发处理、前端界面设计,在学术研究或工程项目上能独当一面。通过对Python 3及相关Web框架的学习和实践,你就可以成为这样的全能型人才。 《Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)》分为3篇:上篇是Python基础,带领初学者实践Python开发环境,掌握......一起来看看 《Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)》 这本书的介绍吧!