간단한 MVC 스켈레톤을 만들려고하고 있는데 종속성이 있습니다.MVC 종속성 삽입
이 내가 지금 무엇을 가지고 :
$config = new Config();
$database = new Database($config);
$uri = new Uri('article/5');
$request = new Request($uri);
$response = new Response;
$router = new Router;
$dispatcher = new Dispatcher($request, $response, $router);
$dispatcher->dispatch(); // Routing, instantiate controller, execute action, send response
질문은 : 어떻게 모든 개체는 종속성에 대한 액세스 권한을 얻을 수 있나요?
몇 가지 예 :
- 컨트롤러는 출력 서식 옵션을 얻을 구성이 필요할 수 있습니다.
- Mapper는 쿼리를 수행하기 위해 데이터베이스가 필요할 수 있습니다.
- 모든 컨트롤러/도우미는 로그에 액세스해야합니다.
- 도우미는 몇 가지 종속성이 필요할 수 있습니다 (예 : 라우터가 필요합니다 .Uri_Helper).
내가 생각할 수있는 유일한 가능성은 레지스트리를 사용하는 것일뿐입니다.하지만 이것은 법의 법칙을 위반합니다 (실제로 필요한 것을 물어보십시오).