PHP에서 부모 사이트 내에서 선택된 하위 사이트를 기반으로 자동 로더를 설정하는 기능이 있습니다.PHP - 자동로드 및 선언 된 클래스 재설정
spl_autoload_unregister
기능으로 자동 로더를 재설정하는 것이 좋습니다.
그러나 내가 알아 차린 것은 자식 사이트 이전에 이미 시작된 클래스 파일을로드 할 때 자동 로더를 재설정 한 후에도이 '이전'클래스 파일이 계속 사용된다는 것입니다.
예 :
부모 사이트로드
c:\parent\site\RouterClass
에서 example\namespace\RouterClass
그럼 난 모든 자동 로더를 재설정하고 아이 사이트를 시작하고 아이 사이트에 대한 올바른 자동 로더를 설정합니다.
하위 사이트는 example\namespace\RouterClass
을로드하지만이 파일을 새로운 자동로드 프로그램 인 c:\child\site\RouterClass
에서 가져 오는 대신 상위 사이트에서 정의한대로 이전 파일에서 클래스를 가져옵니다.
나는 기능을 통해 등록 된 클래스 참조 :
get_declared_classes()
을하지만이 변수 목록을 재설정 할 수 아니에요. 이 클래스 캐시를 재설정 할 수있는 경우 PHP는 RouterClass
에 대한 새 검색을 시작하고 하위 사이트 자동 로더를 확인하여이를 찾습니다.
내가 확인한 두 번째 옵션은 runkit_method_redefine
이었지만 runkit_class_redefine
과 같은 클래스에는 이와 유사한 기능이 없습니다.
누구나 선언 된 클래스 목록을 재설정하는 방법에 대한 아이디어가 있습니까? 또는 하위 사이트의 모든 네임 스페이스의 이름을 바꾸지 않고 위의 내용을 달성하는 방법
하나는 파일을 포함하고 있고 그 파일은 포함되어 있습니다 (duh). 당신이해야 할 일과 그 이유는 무엇입니까? – Federkun
그러면 코드 내의 컨텍스트에서 변경하고 프레임 워크 v1의 한 컨텍스트 및 프레임 워크 v2의 다른 컨텍스트에서 작업 할 수 있기 때문입니다. – PeterH