Composer - типичная система управления зависимости и их установки. Идея и реализация во многом копируют nmp
и bundler
а так же пакетные менеджеры развитых операционных
систем.
В условиях динамичного развития рынка ПО и Интернет, ПО обновляется часто - выходят те или иные багфиксы, минорные и мажорные релизы и т. д. Так же происходит с теми или иными библиотеками, которые используются в другом ПО. В свою очередь, библиотеки могут зависеть от других библиотек. ПО - штука хрупкая, и при любых несовместимостях в этих зависимостях всё может посыпаться.
В отличие от пакетных менеджеров, composer
ставит пакеты только в папку проекта, хотя есть возможность и для глобальной установки. Таким образом каждый проект может
иметь набор своих программ и их версий.
composer.json
Файл в формате JSON
, сделанный по аналогии с package.json
node.js-менеджера npm
. В нём указываются зависимости для вашего проекта.
{
"require": {
"monolog/monolog": "1.0.*"
}
}
php composer.phar install
При выполнении этой команды composer
смотрит в файл и устанавливает все зависимости в папку vendor
composer
так же генерирует файлы для автоподключения библиотек:
require __DIR__ . '/vendor/autoload.php';
после этого библиотеки доступны для использования в проекте.
Начнем с установки:
composer global require "fxp/composer-asset-plugin:^1.2.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Для проверки используем встроенный веб-сервер PHP:
cd basic/web
php yii serve
Или, для Apache используем конфигурацию:
# Set document root to be "basic/web"
DocumentRoot "path/to/basic/web"
<Directory "path/to/basic/web">
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# ...other settings...
</Directory>