2012-12-15 3 views
9

역사적으로 버전 관리하에 모든 의존성이있는 프로젝트에서 Composer을 사용하기 시작했습니다.작곡가 대 Symfony 2 오토로더

이 프로젝트는 현재 Symfony 2 autoloader을 사용합니다. Composer에는 자체로드 메커니즘 (vendor/autoload.php)이 있기 때문에 Symfony ClassLoader를 사용해야하는지 궁금합니다.

는 난 그냥뿐만 아니라 자동로드에 내 프로젝트 클래스를 합성기 자동 로더를 사용할 수 있다고 가정 : 전체 프로젝트의 작곡자 자동 로더를 사용하여 어떤 단점은

$loader = require 'vendor/autoload.php'; 
$loader->add('MyProject', 'src'); 

있습니까?

작곡가 오토로더에서 찾을 수없는 Symfony 자동 공급기 기능이 있습니까?

답변

13

그냥 작곡가 오토로더가 필요할 수 있습니다. 그것이 부족한 유일한 기능은 APC를 사용하여 작업 속도를 향상 시키지만 구현할 때 캐시를 지워야하는 복잡성이있는 ApcClassLoader입니다. 작곡가의 -o 플래그를 사용하면 (dump-autoload를 설치하거나 실행할 때) 속도면에서 APC와 다소 비슷하지만 복잡하지 않은 클래스 맵을 제공합니다.

+0

-o (--optimize) 옵션을 사용하려면 캐시를 지우지 않고 각 배포에서 'composer dump-autoload --optimize'를 사용하여 클래스 맵을 생성해야하지만 훨씬 더 합리적이라고 동의합니다. 여기에 설명 된대로 올바른 방법으로 캐시를 지우더라도 스테이지 또는 릴리스간에 캐시 키 충돌을 매우 쉽게 얻을 수 있습니다. http://stackoverflow.com/a/12859565/160565 –