2010-02-26 3 views

답변

0

자동 공급기는 요청 된 클래스를 인스턴스화하는 데 필요한 파일 만로드합니다.

+0

증명해 주시겠습니까? – user198729

+0

코드를 살펴본 결과 그런 논리를 찾지 못했습니다. – user198729

+0

Symfony의 자동 로더는 클래스 이름을 실제 파일에 매핑하여 작동합니다. 거기에 필요한 논리가별로 없습니다. – blockhead

3

오토로더는 1.3/1.4 개의 캐쉬 파일이 생성 얻을 심포니에서

classname => /full/path/to/class 

해당 키 값 쌍의 어레이를 저장함으로써 작동한다. 하나는 sfCoreAutoload에 의해 생성되고 /cache/project.autoload에 저장된 핵심 클래스 용입니다. 프로젝트 디렉토리에서 자동로드 된 클래스의 경우, 키 값 쌍의 배열은 /cache/_app_/_env_/config/config_autoload.yml.php에 저장됩니다. 이 파일은 config 핸들러 sfAutoloadConfigHandler에 의해 생성됩니다.

몇 가지 유용한 점을 기억해야 할 :

  • 프로젝트 내의 모든 클래스 (sf_lib_dir/설정/설정에서)을 자동으로 적재 파일이 autoload.yml로 지정, 자동으로 적재되는 것은 아닙니다. 당신은 당신 자신의 autoload.yml 파일을 만들어서 프로젝트 설정 디렉토리 (또는 내가 생각하는 응용 프로그램 설정 디렉토리)에 놓을 수 있습니다.
  • dev 환경에서 실행될 때 클래스를 자동로드 할 수없는 경우 symfony는 자동로드 캐시를 다시 작성하여 해당 파일이 새로운 것으로 가정합니다. 이로 인해 특정 유스 케이스에서 앱이 느려질 수 있으므로 sfAutoloadAgain :: unregister()를 사용하십시오.
관련 문제