ZF2는 패키지 관리 및 배포를 위해 Composer를 사용하고 있습니다. 제 질문은 Zend Loader보다 성능이 향상 되었습니까?Composer는 ZF2의 Zend Loader보다 성능을 제공합니다.
답변
첫째, Zend\Loader
그냥 네임 스페이스와 공장 같은 후드 아래에 여러 클래스를 제공하고, 자동 로더, PluginLoaders, ModuleLoaders 등 ... 그래서, Zend Loader
! == Composer
와 다른 개념을 비교하는 것은 일반적으로 잘못된 것입니다.
두 번째로 작곡가는 "패키지 관리자"가 아니며 작곡가없이 ZF2를 사용할 수 있습니다. documentation :
작곡가는 패키지 관리자가 아닙니다. 예, '패키지'또는 라이브러리를 처리하지만 프로젝트 단위로 을 프로젝트 내부의 디렉토리 (예 : 공급 업체)에 설치합니다. 기본적으로 은 절대 전역으로 설치하지 않습니다. 따라서 종속성 관리자입니다. 작곡가의
주요 관심사는 등 성능이 아닌 자동 로딩 프로세스를 표준화, 도서관 사이에 쉽게 의존성 관리를 제공하고 있습니다. 또한 작곡가가 설치 한 타사 라이브러리의 모든 클래스에 대해 프로젝트의 자동로드 파일을 준비합니다. 이것은 우리의 삶을 더 좋게 만듭니다.
한편 Zend Loader 네임 스페이스 및 관련 클래스. 공식 문서에서이 짧은 요약은 정말 간단하다 :
ZF2 여러 자동 로딩 전략을 사용한다; 예를 들어 에 가장 많이 사용되는 클래스에 대한 클래스 맵이 있지만 타사 라이브러리에는 PSR-0 스타일 자동 로더를 사용하려고 할 수 있습니다.
젠드 로더 네임 스페이스에서 클래스에 대한 짧은-요약 :
- ClassMapAutoloader은 : 그것은 성능을 염두에 설계되었습니다. 자동 로딩 할 때 불필요한 파일 시스템 작업을 방지합니다.
- StandardAutoloader : PSR-0 호환 오토로더입니다. 네임 스페이스 + 클래스 이름을 파일 시스템에 1 : 1로 매핑한다고 가정합니다.
- ModuleAutolader : 다른 소스의 모듈 클래스를 자동로드하기 위해 Zend \ ModuleManager에서 사용하는 Zend \ Loader \ SplAutoloader 인터페이스의 특수한 구현입니다.
- PluginClassLoader : 플러그인 이름을 나중에 검색 할 수 있도록 클래스 이름에 별명을 지정하는 간단한 메커니즘을 제공하여 플러그인 이름 -> 클래스 이름을 해석합니다.
따라서 파일 시스템 수준의 성능이 중요한 경우 클래스 맵 자동로드 및 opcode 캐싱에 중점을 두어야합니다. 전체 응용 프로그램 성능에 영향을주는 많은 메트릭이 있고과 성능을 향상시키는 은색 글 머리 기호가 없습니다.
설명해 주셔서 감사합니다. 필자는 주로 작곡가의 자동 로딩 기능이 zend loader보다 더 나은지 알고 싶었습니다. ClassMapAutoloader를 사용하여 모듈의 파일을로드하고 있습니다. 젠드 프레임 워크의 파일 로딩은 어떨까요? StandardAutoloader가 더 좋거나 작곡가의 로딩 기능입니까? –