Вот, например, список пакетов, доступных для скачивания композером http://packagist.org/packages/. И это только репозиторий композера по умолчанию! Кстати, то что джависты называют репозиторием мавена, в композере называется Packagist.
Composer также позволяет скачивать зависимости из VCS (естественно, что git/github чаще всех встречается в качестве репозиториев PHPшных модулей).
Короче, просмотрев "по диагонали" доку (http://getcomposer.org/doc/) у меня начало развиваться чувство неполноценности мавена, как основного средства менеджмента зависимостей на моих Java проектах :). Вариантов хранения зависимостей - тьма! Можно хранить в VCS, можно в зип архиве на http server'e, также поддерживаются репозитории глобального менеджера зависимостей (PEAR). А хочешь - ставь свой репозиторий и работай с ним. Код packagist'a доступен для всеобщего доступа https://github.com/composer/packagist .
"Хочу купить!" - так сказала бы моя жена, увидев красивую вещь, которая ей очень нужна. И я повторю ее фразу в отношении composer'a.
Итак, приступил к покупке Composer'a :)
Доку как обычно читать буду потом, сразу ставлю:
1. В гитовом баш окне перехожу в Z:\usr\local\php5 (эта папка должна быть доступна по путям)
2. Запускаю такую следующую команду. Как поставить curl можно нагуглить если что.
curl -s http://getcomposer.org/installer | php
php z:\usr\local\php5\composer.phar %*
4. composer.phar уже есть исполняемый файл для баша. Если в баш окне попробовать выполнить composer.phar help, то должно выдаться окно с хелпом
5. Такое же самое окошко с хелпом должно вывестись, если запускать из командной строки windows команду composer help
Ну поставил, и че теперь?
Теперь я хочу добавить фреймворк Symfony2 в свой проект. Сам этот фреймворк лежит на http://packagist.org/. Его зависимости разбросаны по всей сети.
1. Создаю новый проект в папке w:\home. Использую свою любимую ИДЕ для этого.
2. В корне проекта создаю файлик composer.json с вот таким содержимым:
То есть я указал, что хочу версию php не ниже 5.3.0 и версию symfony 2.0.16.
3. Инсталлирую зависимости в свой проект. В гитовом окне запускаю
composer.phar install
В моем проекте появилась папка vendor. В нее композер аккуратненько сложил все необходимые зависимости и что самое интересное - сгенерировал скрипт autoload.php.
4. Как использовать зависимости?
В папочке с пхп скриптами (у меня это w:\home\calculator\www) создаю файлик index.php с таким содержимым:
Request - это абстракция реквеста в Symfony. Что-то подобное классу HttpServletReqest из мира джавы.
5. Открываю браузер на страничке http://www.calculator/index.php
Работает. Могу дальше колбасить код :)
Composer позволяет не только устанавливать зависимые модули, но и создавать свои проекты и выкладывать их куда душа захочет (об этом подробнее позже). С помощью него можно так же добавить зависимость на любой проект, который изначально не использовал Composer.
Вот еще классная статья на хабре http://habrahabr.ru/post/145946/
Серега, да ты просто фанат винды ;-)
ReplyDeleteДа, винда привычней. Да и мак дорого стоит :)
Delete