컨트롤러에서 리포지토리/인터페이스를 사용하는 데 문제가 있습니다. 내 응용 프로그램은 Laravel 4Laravel 4에서 컨트롤러 상속이있는 리포지토리/인터페이스를 처리하는 방법은 무엇입니까?
나의 현재 컨트롤러 상속 트리를 사용하는 것은 다음 FrontendController
에서
+- BaseController
+- FrontendController
+- ProductController
나는 나의 컨트롤러에서 전반적으로 사용하는 몇 가지 설정/얻고, 그래서 인터페이스 설정 그래서 같은 생성자에서 :
그러나class FrontendController extends BaseController
{
/**
* Constructor
*/
public function __construct(SystemRepositoryInterface $system,
BrandRepositoryInterface $brands,
CategoryRepositoryInterface $categories)
이 지금은 그렇게처럼 내 아이의 모든 컨트롤러에 (다시) 인터페이스를 통해 전송하는 데 의미3210
class ProductController extends FrontendController
{
/**
* Constructor
*/
public function __construct(SystemRepositoryInterface $system,
BrandRepositoryInterface $brands,
CategoryRepositoryInterface $categories,
ProductRepositoryInterface $products)
{
parent::__construct($system, $brands, $categories);
필자는이 수준/PHP 영역을 처음 사용했지만 잘못된 느낌이 들었습니다. 분명히 분명한 사실이 있습니까?
IoC 컨테이너를 [자동 해결] (http://laravel.com/docs/ioc#automatic-resolution) –
과 함께 사용하는 것이 좋습니다. 'ProductRepositoryInterface '를 FrontendController 생성자로 보내고 ProductController에서 생성자를 건너 뛰겠습니까? –
@RobGordijn 기술적으로 당신이'FrontendController'를 통해 모든 저장소를 '미리로드'할 수 있기 때문에 궁금합니다. –