最近看一些laravel资料,有一些关于laravel的理解,下面分享一下。首先先介绍一下laravel服务和服务提供者的作用。
服务提供者
首先服务提供者,是构建在服务容器的基础上的。是先存在服务容器后,然后把服务容器注册到应用中。包括注册服务容器绑定、事件侦听器、中间件,甚至路由。服务提供者是设置应用程序的中心所在。若你打开 Laravel 的<code>config/app.php</code>
文件,你将会看到 providers 数组。这些都是你的应用程序会加载到的所有服务提供者类。
服务容器
所有的服务容器绑定都会注册至服务容器提供者中,服务容器能够将指定的实现绑定至接口。
具体步骤
(1)定义服务容器接口
(2)定义服务提供者
(3)注册服务
示例代码
<?php
use Illuminate\Support\ServicePorovider;
class BackendServiceProvider extends ServiceProvider{\
public function index{
$this->app->bind(
'Acame\Repositories\OrderRepositoryInterface',
'Acame\Repositories\DbOrderRepository'
);
}
}
上面的代码是服务器提供者,用来将指定的实现绑定至接口。
namespace Acme\Repositories;
interface OrderResponsitoryInterface{
public function getAll();
public function find($id)
}
上面的代码是定义服务容器接口。
namespace Aceme\Reponsitories;
use Order;
class DbOrderRepository implements OrderRepositoryInterface{
public funtion getAll(){
return Order::all();
};
public function find(){
return findorfail($id);
};
}
类继承接口
'providers' => [
//其他服务提供者
Acme\Responsitories\BackendServiceProvider::class
],