laravel의 Repository 사용

5633 단어
리포지토리는 최초 제시자의 소개에 따르면 리포지토리는 데이터 매핑층과 영역층 사이를 연결하는 유대로서 메모리에 있는 영역 대상의 집합에 해당한다.클라이언트 대상은 조회의 일부 실체를 조합하여 Repository에 제출합니다.객체는 Collection 객체에서 데이터 작업을 수행하는 것과 같이 Repository에서 제거하거나 추가할 수 있으며 매핑된 레이어의 코드는 해당 데이터베이스에서 해당 데이터를 추출합니다.
개념적으로 Repository는 하나의 데이터 저장소의 데이터를 대상으로 봉인된 집합에 제공하여 이러한 집합에 대한 조작을 제공한다. - 학원군
Repository를 창고 모드로 사용할 수 있는 방법: 1 파일 구축: APP/Repository/Test/Contracts APP/Repository/Test/Eloquent는Contracts에 인터페이스 파일을 저장하고, Eloquent에는 구체적인 실현 방법을Contracts에 저장하여TestRepositoryInterface를 구축한다.php:
 
namespace App\Repository\Test\Contracts;

use App\House;

interface TestRepositoryInterface {
    public function test();


}

Eloquent에서 TestRepository를 설정합니다.


namespace App\Repository\Test\Eloquent;

use App\House;
use App\Repository\Test\Contracts\TestRepositoryInterface;
class TestRepository implements TestRepositoryInterface
{
    public function test()
    {
        $name = House::find(1)->name;
        return $name;
    }
}

컨트롤러 및 라우팅 만들기: 컨트롤러 TestController.php
 

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;

class TestController extends Controller
{
    public function test()
    {
        $test = app('Test');
        $testInfo = $test->test();
        echo $testInfo;
    }
}

서비스 공급자 작성 php artisan make:provider Repository Service Provider 서비스 공급자 app\Providers\Repository Service Provider.php 등록 Test 창고 Repository ServiceProvider.php:
 public function register()
    {
        $this->registerTestRepository();
    }

    public function provides()
    {
        $test = ['Test'];
        return array_merge($test);
    }

    private function registerTestRepository()
    {
        $this->app->singleton('Test', 'App\Repository\Test\Eloquent\TestRepository');
    }

앱에서.php의providers 그룹에 저희 서비스 공급자 추가
'providers' => [
    App\Providers\RepositoryServiceProvider::class,
]

좋은 웹페이지 즐겨찾기