PHP에서 프론트 컨트롤러 구현에 대한 "개념적"질문이 있습니다.싱글 톤없는 PHP 프론트 컨트롤러 구현 : 개념적 질문
내가 본 Front Control 컨트롤러의 대부분은 Singleton으로 구현되었으며, Singleton 패턴의 큰 팬이 아니며 Front Controller의 유니크 인스턴스를 저장할 정적 속성이있는 컨테이너를 만들었습니다. 그건 내 목표와 내가했다,
$fc = FrontController::getInstance();
용기와 내가을 FrontController 외부 구성을 넣을 수 :
싱글로, 내가 생성자 (또는 생성자에 의해 호출하는 방법) 내부의 초기화 코드를 삽입했다 여전히 FrontController를 검색하는 간단한 방법이 있습니다.
$fc = Container->getFrontController();
이 코드는 나에게 훨씬 깨끗해 보이며 상위 생성자에 대한 걱정없이 깨끗한 서브 클래 싱을 얻을 수 있습니다.
'bootstrap'시간에는 꽤 똑같지 만, 실제로 이전 구현과의 차이점은 생성자가 아니기 때문에 (DAO 또는 액션 내부에서) 응용 프로그램의 어느 곳에서나 FrontController를 만들 수 있다는 것입니다. 더 이상 개인/보호.
내 질문은 : 는 내 클래스의 사용자 앱의 어디서든을 FrontController 인스턴스를 만들 수있는 가능성을 제공하는 '나쁜 관행'인가? 나는 문서를 작성하고 다른 클래스와 함께 컨테이너를 제공하지만 이상한 사용을 방지해야하는지 궁금합니다.
이제는 frontcontroller가 고유해야하는 몇 가지 항목 중 하나라는 사실을 깨닫고 생각해 주셔서 감사합니다. 그리고 비록 내가 싱글 톤으로 프론트 컨트롤러를 구현하더라도 여전히 getFrontController() 메소드를 작성할 수 있습니다 :) 테스트 중에는 문제가 발생하지 않기를 바랍니다. – fatmatto