2012-12-15 17 views
9

私は歴史的にすべての依存関係がバージョン管理下にあるプロジェクトでComposerを使い始めました。Composer対Symfony 2オートローダー

このプロジェクトでは現在、Symfony 2 autoloaderが使用されています。 Composerには独自のオートロード機構(vendor/autoload.php)が付属しているので、Symfony ClassLoaderを使用する必要があるかどうかは疑問です。

私はちょうど同様のautoloadに私のプロジェクトのクラスを作曲オートローダを使用することができることを前提としています

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

は、プロジェクト全体のために作曲オートローダを使用してのいずれかの欠点はありますか?

私はComposerオートローダーで見つけられないSymfonyオートローダーの機能はありますか?

答えて

13

コンポーザーオートローダが必要です。それが欠けている唯一の機能は、APCを使って処理を高速化するApcClassLoaderですが、いくつかの複雑さがあります(デプロイ時にキャッシュをクリアする必要があります)。コンポーザの-oフラグ(dump-autoloadをインストールまたは実行しているとき)を使用すると、速度に関して複雑ですが、APCとほぼ同等のクラスマップが得られます。

+0

-o(--optimize)オプションを使用するには、キャッシュをクリアするのではなく、各デプロイメントで 'composer dump-autoload --optimize'を使用してクラスマップを生成する必要がありますが、はるかに簡単です。ステージやリリース間でキャッシュキーの競合を非常に簡単に取得することができます。ここで説明するようにキャッシュを正しい方法でクリアしたとしても、http://stackoverflow.com/a/12859565/160565 –

関連する問題