안녕하세요 제가 현재 Interface 'ItemService' not found 문제를 겪고 있습니다.
Controller
cotroller에서 itemServiceImpl을 load 했습니다.
models/item/service/ItemService.php
models/item/service/ItemServiceimpl.php
models의 구조는 위와 같습니다.
ItemService.php
ItemServiceimpl.php
ItemServiceimpl 에서 ItemService를 implements 했습니다.
하지만 현재 오류 부분은 ItemServiceimpl에서 ItemService interface를 찾을수 없다고 Fatal errorr 가 나오고 있습니다.
위 문제를 어떻게 해결해야 될까요?? 답변 부탁드립니다!
컨트롤러, 모델은 디렉토리 1단계만 가능한걸로 아는데 소스 다시 봐야겠네요.
추가 : 컨트롤러, 모델 디렉토리 1단계만 인식하는거 맞습니다.
@kaido
답변 감사합니다.
require_once 를 통해 controller에서 service를 load를 했지만
ItemServiceimpl 에서 ItemService 인터페이스가 없다고 계속 나타납니다..
다른 방안이 있을까요?
@변종원
디렉토리 1단계만 인식 한다는건 무슨 말씀이신가요??
답변대로 auto load 를 구성 하셔서 사용 하시는게 더 편하실 것 입니다.
auto load 는 php 고유의 class load 방법 입니다.
http://php.net/manual/kr/language.oop5.autoload.php
auto load를 걸어두고 interface 구성해 놓으신 다음에 객체를 불러오고 싶은곳에서 namespace 를 호출하면 해당 class를 자동으로 require 되는 방식입니다.
아니면 load 가 아니면 model에서 전부 상속 받아가야 할 것입니다.
혹은 각각 require 해야 하는 것으로 기억 합니다.
사실상 따로 require 하면 DAO 형식으로 만드는게 의미가 없어지니, auto load 를 권하는 것입니다.
@한대승,kaido
좋은답변 감사합니다 해결했습니다!
모델을 로드한 다음에 implements 하는건 안되는걸로 알고있습니다.
이유는 load 부분과 model이 어떻게 불러오는지 코어 부분 확인해 보시면 아실거라 사료됩니다.
[사실 본지가 오래되서 약간 긴가민가한데 기본적으로 로드는 NEW 에 좀 가깝습니다. 100%는 아니구요.]
인터페이스 구성하고 서비스 만들어서 사용하실 생각이시면
auto load 와 namespace 를 사용해서 구성 하시길 권장해 드립니다.
PSR4 부분을 찾아서 보시면 이해가 가실것입니다.