(1)接口类:
- <?PHP
- namespace App\Services;
- use App\models\Users;
- 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 App\Services;
- // use App\Services\IUserService;
- use App\models\Users;
- 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(App\Services\IUserService::class,App\Services\IUserServiceImpl::class);
- //单例模式创建对象
- $this->app->singleton('\App\Services\IUserService',function()
- {
- return new \App\Services\IUserServiceImpl();
- });
- }
(4)控制器层使用
- <?PHP
- namespace App\Http\Controllers;
- use App\Http\Controllers\Controller;
- use App\Repositories\UserRepository;
- use App\models\Users;
- use Cache;
- use Log;
- use Event;
- use App\Services\IUserService;
- use App\Events\PupUserchange;
- /**
- * 控制器
- */
- class UserController extends Controller{
- private $UserService;
- //注入接口的实例对象IUserServiceImpl,其实laravel框架帮助我们实现了 IUserService $service = new IUserServiceImpl();这一步。
- public function __construct(IUserService $service){
- $this->UserService = $service;
- }