美文网首页
laravel自定义服务和服务提供者

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

作者: MakingChoice | 来源:发表于2016-07-25 16:41 被阅读957次

    最近看一些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
    ],
    

    相关文章

      网友评论

          本文标题:laravel自定义服务和服务提供者

          本文链接:https://www.haomeiwen.com/subject/uungjttx.html