Zend Framework の一部を使おうとしてハマった
症状は、composer.phar で zendframework/zend-validator を入れようとすると zendframework全体がインストールされる。
原因は、zendframeworkのcomposer.jsonが良くないっぽい。
依存関係を追っていくと、どうもzendframework/zend-i18nを入れようとするとzendframeworkが入るようだった。
i18nのcomposer.jsonを見てみると、requireにintlが書いてある。試しにローカルプロジェクトのrequireにext-intlを書くと composer.phar install がエラーになる。
https://github.com/composer/composer/issues/1158
https://github.com/composer/composer/issues/1063
どうも、zend-i18nを入れようとしたらエラーになるが、zendframeworkのrequireには何もない、かつ、zendframeworkにzend-i18nが含まれているので、zendframeworkが入ってしまうみたい。
aptitude install php5-intl
intl拡張をインストールしたら無事にzendframework/zend-validatorだけインストールされた。
キャッシュを削除してチェックするコマンド下記。
# キャッシュ削除 rm composer.lock rm -rf vendor/* rm -rf ~/.composer/ # dry run composer.phar install --verbose --dry-run