laravel自定义服务和服务提供者

最近看一些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
],
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,014评论 6 342
  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 12,724评论 0 121
  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 8,219评论 0 12
  • 给妹妹打电话时才知道,父母想自己去医院看病,妹妹要跟着去,父母不让,妹妹家开着两个店,离不开人,父母总是为了孩子想...
    李冰儿阅读 3,218评论 6 4