laravel的依赖注入

前端之家收集整理的这篇文章主要介绍了laravel的依赖注入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先创建service层的接口类,和实现类。在app文件夹下面创建services文件夹。
(1)接口类:
  1. <?PHP
  2.  
  3. namespace App\Services;
  4. use App\models\Users;
  5.  
  6. interface IUserService{
  7.  
  8. /**
  9. * 获取用户数据
  10. * [getUserLists description]
  11. * @return [type] [description]
  12. */
  13. public function getUserLists();
  14. /**
  15. * 添加用户
  16. */
  17. public function addUser(Users $user);
  18. /**
  19. * 删除用户
  20. */
  21. public function deleteUser(Users $user);
  22. /**
  23. * 查找用户
  24. */
  25. public function findUser(int $id);
  26.  
  27. }
  28. ?>


(2)实现类:
  1. <?PHP
  2. namespace App\Services;
  3. // use App\Services\IUserService;
  4. use App\models\Users;
  5. class IUserServiceImpl implements IUserService{
  6.  
  7. /**
  8. * 获取用户列表
  9. * [getUserLists description]
  10. * @return [type] [description]
  11. */
  12. public function getUserLists(){
  13.  
  14.  
  15. return Users::all()->toArray();
  16. }
  17. /**
  18. * 添加用户
  19. * [addUser description]
  20. * @param Users $user [description]
  21. */
  22. public function addUser(Users $user){
  23.  
  24. }
  25. /**
  26. * [deleteUser description]
  27. * @param Users $user [description]
  28. * @return [type] [description]
  29. */
  30. public function deleteUser(Users $user){
  31.  
  32. }
  33. /**
  34. * 根据用户id查询用户
  35. * [findUser description]
  36. * @param int $id [description]
  37. * @return [type] [description]
  38. */
  39. public function findUser(int $id){
  40.  
  41. }
  42. }
  43. ?>


(3)配置依赖注入
在Providers文件夹下面的AppServiceProvider中配置一下IOC
  1. public function register()
  2. {
  3. //$this->app->bind(App\Services\IUserService::class,App\Services\IUserServiceImpl::class);
  4. //单例模式创建对象
  5. $this->app->singleton('\App\Services\IUserService',function()
  6. {
  7. return new \App\Services\IUserServiceImpl();
  8. });
  9. }


(4)控制器层使用
  1. <?PHP
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\UserRepository;
  5. use App\models\Users;
  6. use Cache;
  7. use Log;
  8. use Event;
  9. use App\Services\IUserService;
  10. use App\Events\PupUserchange;
  11. /**
  12. * 控制器
  13. */
  14. class UserController extends Controller{
  15. private $UserService;
  16. //注入接口的实例对象IUserServiceImpl,其实laravel框架帮助我们实现了 IUserService $service = new IUserServiceImpl();这一步。
  17. public function __construct(IUserService $service){
  18. $this->UserService = $service;
  19.  
  20. }

猜你在找的设计模式相关文章