Laravel에서 사용자 지정 보관함 (계약서 및 Eloquent)을 추가하려고합니다.
서비스를 추가 할 위치와 서비스를 바인딩하는 방법을 이해할 수 없습니다. Laravel에서 자체 wn 저장소 클래스 및 인터페이스를 추가하는 가장 좋은 예를 보여줄 수 있습니까? 저장소 패턴의 메이크업 사용에 대한 사전Laravel에 자체 저장소 클래스 및 인터페이스를 추가 할 위치는 어디입니까?
답변
에서
감사합니다 (이 경우 당신이하고 싶은 말 있음), 당신이 중 하나가 자기 정의 된 네임 스페이스에서 구현하는 두 가지 옵션을 가지고 (의이 App\Repositories
을 가정 해 봅시다), 모든 저장소에서 사용하려는 메소드와의 인터페이스, 아마도 AbstractRepository
또는 그와 비슷한 것,이 하나의 선택은 작성해야하는 많은 코드, 다른 선택 (내가 사용하는 것) 때문에 고통 스럽습니다. 다음 패키지 https://github.com/andersao/l5-repository을 설치하려면 정말 유용하며 이미 많은 메소드가 있으며 readme 파일의 지침을 따르십시오.이 패턴을 구현하는 데 전혀 문제가 없으므로 도움이 되었으면합니다. ;)
작은 프로젝트가있어서 추가 패키지를 추가하고 싶지 않습니다. 나는 디렉토리 구조를 알고 싶다. –
글쎄,이 경우,이 자습서를 사용하여, 거기에 링크를 설명, 베스트! https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/ http://heera.it/laravel-repository-pattern – bretanac93
감사합니다. 이것이 내가 필요한 것입니다. –
- 앱 folder.Like에 디렉토리를 생성 - 앱/한국 전기
- 을 한국 전기 폴더에 저장소 파일을 만듭니다. App/Acme/CustomRepository.php 또한 해당 리포지토리 파일의 이름 공간을 가져옵니다. 예 : 이름 공간 Acme;
- 모델을 사용하십시오. Like- 은 App \ Models \ User를 사용합니다.
당신이
클래스 CustomController이 컨트롤러를 확장하는 CustomRepository Class.Like-를 주입 컨트롤러에서 {
개인 $ customRepo;
public function __construct(CustomRepository $customRepo) { $this->customRepo= $customRepo; }
}
내 Laravel 코드가 될 것이다 나는 구조 싶은 방법 :
모델 - App\Models\*
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model as BaseModel;
class Model extends BaseModel
{
//
}
계약 - App\Repositories\Contracts\*
<?php
namespace App\Repositories\Contracts;
interface Repository
{
// All the common methods for eloquent like - all, paginate, find, where, etc...
}
저장소 - App\Repositories\Db\*
<?php
namespace App\Repositories\Db;
class ExampleRepository
{
// All the CRUD related methods here...
}
서비스 - App\Services\*
<?php
namespace App\Services;
class ExampleService
{
// All the logic & business related methods here...
}
이 내가 laravel 방식으로 내 코드를 구성하고자하는 것이다.
희망이 도움이됩니다.
나는 잘 모릅니다. Laravel은 이미 Eloquent를 포함하고 있습니다. 너 정확히 뭘 하려구? – bcmcfc