lamdd/design-pattern-repository-service

简单仓库,服务模式为Laravel设计

dev-master 2023-11-22 08:59 UTC

This package is auto-updated.

Last update: 2024-09-12 05:24:34 UTC


README

一个用于添加php artisan make:repositoryphp artisan make:service命令到Laravel 6+的包

安装

使用以下命令使用composer安装此包

composer require lamdd/design-pattern-repository-service:"dev-master"

或将以下内容添加到您的composer.json文件中的require-dev部分,并执行composer update

"require-dev": {
          "lamdd/design-pattern-repository-service": "dev-master"
}

在config/app.php中,将DesignPattern\LaravelMakeRepositoryService\RepositoryServiceProvider::class添加到providers数组的末尾

'providers' => [
    ...
    DesignPattern\LaravelMakeRepositoryService\RepositoryServiceProvider::class,
],

发布配置

php artisan vendor:publish --provider "DesignPattern\LaravelMakeRepositoryService\RepositoryServiceProvider"

使用方法

php artisan make:repository your-repository-name

php artisan make:service your-service-name

示例

php artisan make:repository User

php artisan make:service User

php artisan make:repository Backend\User

php artisan make:service Backend\User
<?php

namespace App\Repositories;

use App\Models\User;
use DesignPattern\LaravelMakeRepositoryService\Repository\BaseRepository;
use App\Repositories\UserRepositoryInterface;

class UserRepository extends BaseRepository implements UserRepositoryInterface
{
    /**
     * Specify Model class name
     *
     * @return string
     */
    public function model()
    {
        return User::class;
    }
    public function getFindUserCompany($id) {
        return $this->model->join('companies as c', 'cp.id','=','users.company_id')->where('c.id',$id)->first()
    }
}
<?php

namespace App\Services;

use App\Repositories\UserRepository;
use App\Services\UserServiceInterface;

class UserService implements UserServiceInterface
{
    protected $userRepository;
    public function __construct(UserRepository $userRepository)
    {
        $this->userRepository = $userRepository;
    }
    public function getFindUser($id) {
        return $this->userRepository->where('id',$id)->first();
    }
}

<?php

namespace App\Http\Controllers;

use App\Services\UserService;
use Illuminate\Http\Request;

class UserController extends Controller
{
    protected $userService;

    public function __construct(UserService $userService)
    {
        $this->userService = $userService;
    }
    public function index (Request $request){
        $user = $this->userService->getFindUser($request->id);
        return $user;
    }
}