Разные пакеты composer'a одного vendor'а стекаются в папке этого vendor'a. Не спроста они имеют формат:
vendorName/packageName
Вот мой composer.json моего проекта на Silex:
{
"require": {
"silex/silex": "~1.2",
"smarty/smarty": "dev-trunk",
"cboden/Ratchet": "0.3.*",
"react/zmq": "0.2.*",
"doctrine/mongodb-odm": "1.0.0-BETA10",
"neutron/mongo-odm-silex-provider": "*",
"symfony/console": "2.6.*@dev"
},
"autoload": {
"psr-0": {
"Acme": "src/"
}
}
}
Вот контент папки
vendor после выполнения комманды
php composer.phar update:
svscorp@ubu14:/var/www/silex$ ls vendor/
autoload.php cboden composer doctrine evenement guzzle neutron pimple psr react silex smarty symfony
Вот содержание папки
symfony:
console debug event-dispatcher http-foundation http-kernel routing
Как видно отсюда, пакет
console попал в папку вендора
symfony. И он не попал в
Component, т.к. не является компонентом пакета
symfony =)
Т.е.:
* HTTPFoundation - это компонент пакета symfony vendor'a symfony (symfony/symfony)
* config или console - это пакет vendor'a symfony
Т.е. config мог бы быть в vendor/symfony/symfony/src/Symfony/Component/, если бы являлся компонентом пакета symfony/symfony. Но он является отдельным пакетом symfony.