加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

laravel的依赖注入

发布时间:2020-12-13 22:12:12 所属栏目:百科 来源:网络整理
导读:首先创建service层的接口类,和实现类。在app文件夹下面创建services文件夹。 (1)接口类: ?phpnamespace AppServices;use AppmodelsUsers; interface IUserService{ /** * 获取用户数据 * [getUserLists description] * @return [type] [description] */
首先创建service层的接口类,和实现类。在app文件夹下面创建services文件夹。
(1)接口类:
<?php

namespace AppServices;
use AppmodelsUsers;

  interface IUserService{

   /**
    * 获取用户数据
    * [getUserLists description]
    * @return [type] [description]
    */
   public function getUserLists();
   /**
    * 添加用户
    */
   public function addUser(Users $user);
   /**
    * 删除用户
    */
   public function deleteUser(Users $user);
   /**
    * 查找用户
    */
   public function findUser(int $id);

  }
?>


(2)实现类:
<?php
 namespace AppServices;
 // use AppServicesIUserService;
 use AppmodelsUsers;
   class IUserServiceImpl implements IUserService{

     /**
      * 获取用户列表
      * [getUserLists description]
      * @return [type] [description]
      */
     public function getUserLists(){


            return Users::all()->toArray();
     }
     /**
      * 添加用户
      * [addUser description]
      * @param Users $user [description]
      */
     public function addUser(Users $user){

     }
     /**
      * [deleteUser description]
      * @param  Users  $user [description]
      * @return [type]       [description]
      */
     public function deleteUser(Users $user){

     }
     /**
      * 根据用户id查询用户
      * [findUser description]
      * @param  int    $id [description]
      * @return [type]     [description]
      */
     public function findUser(int $id){

     }
   }
?>


(3)配置依赖注入
在Providers文件夹下面的AppServiceProvider中配置一下IOC
   public function register()
    {        
        //$this->app->bind(AppServicesIUserService::class,AppServicesIUserServiceImpl::class);
    //单例模式创建对象
        $this->app->singleton('AppServicesIUserService',function()
                {
                    return new AppServicesIUserServiceImpl();
                });
    }


(4)控制器层使用
<?php
namespace AppHttpControllers;    
use AppHttpControllersController;
use AppRepositoriesUserRepository;
use AppmodelsUsers;
use Cache;
use Log;
use Event;
use AppServicesIUserService;
use AppEventsPupUserchange;
/**
 * 控制器
 */
class UserController extends Controller{
 private  $UserService;
//注入接口的实例对象IUserServiceImpl,其实laravel框架帮助我们实现了 IUserService  $service = new IUserServiceImpl();这一步。
 public function __construct(IUserService $service){
 
  $this->UserService = $service;

 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读