PHP로 단순화 된 MVC 유형 구조의 응용 프로그램이 있습니다. 이 응용 프로그램은 회사 및 다른 사람들이 운영하는 12 개 이상의 사이트에서 사용됩니다. 구조는 컨트롤러 파일, app 클래스가 포함 된 application 폴더 및 template과 같은 사이트 특정 코드가 포함 된 site 폴더로 구성됩니다. 주기적으로 변경 사항을 배포 할 때 컨트롤러와 응용 프로그램 폴더를 업데이트하는 패치 프로그램을 배포합니다. 결과적으로 클라이언트는 코드가 업데이트 될 때 변경 사항을 손실하지 않고 응용 프로그램 폴더의 핵심 코드를 실제로 변경할 수 없습니다.클라이언트가 클래스를 재정의하도록 할 수 있습니까?
나는 고객이 원하는 것을 설명 할 수 있다고 말했고, 그들은 기존 클래스를 확장 할 수있는 능력을 원합니다. 이것을 허용 할 수있는 디자인 패턴이 있습니까? 지금, 나는 사용자에게 전체 클래스를 대체 할 수있는 능력을 준 :
spl_autoload_register('loadSiteClass');
spl_autoload_register('loadCoreClass');
이 클래스에 대한 응용 프로그램 폴더에보고하기 전에 클래스에 대한 사이트 폴더를 확인하는 자동 로더를 사용합니다. 클래스를 완전히 대체하지 않고 기존 클래스를 확장하는 클래스를 자동 검색,로드 및 사용하는 대안을 찾고 싶습니다. 어떤 제안이라도 크게 환영받을 것입니다. 미리 감사드립니다.
도움이된다면 site admin에 사이트 설정 파일을 추가 할 수 있습니다. 사이트 관리자는 클래스가 확장 중임을 알려주는 설정을 추가 할 수 있지만 그 정보를 사용하는 방법은 확실하지 않습니다. 제공된 경우.