Зависимость - это сторонний код, используемый вашим приложением. Например, Zend Framework 3 является зависимостью для вашего сайта.
В Composer'е любая библиотека называется пакетом. Все пакеты, устанавливаемые Composer'ом регистрируются на сайте Packagist.org. Через Composer вы можете идентифицировать пакеты, необходимые вашему приложению и скачать и установить их автоматически.
Зависимости скелетного приложения объявлены в файле APP_DIR/composer.json
(см. ниже):
{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for Zend Framework zend-mvc applications",
"type": "project",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"mvc",
"zf2"
],
"homepage": "http://framework.zend.com/",
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": "^5.6 || ^7.0",
"zendframework/zend-component-installer": "^1.0 || ^0.3 || ^1.0.0-dev@dev",
"zendframework/zend-mvc": "^3.0.1",
"zfcampus/zf-development-mode": "^3.0",
"zendframework/zend-mvc-form": "^1.0",
"zendframework/zend-mvc-plugins": "^1.0.1",
"zendframework/zend-session": "^2.7.1"
},
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/"
}
},
"autoload-dev": {
"psr-4": {
"ApplicationTest\\": "module/Application/test/"
}
},
"extra": [],
"scripts": {
"development-disable": "zf-development-mode disable",
"development-enable": "zf-development-mode enable",
"development-status": "zf-development-mode status",
"serve": "php -S 0.0.0.0:8080 -t public/ public/index.php"
}
}
Что такое JSON?
JSON (JavaScript Object Notation), - формат файлов, основанный на тексте, используемый для читаемого представления простых структур и многомерных ассоциативных массивов. Хотя JSON произошел от JavaScript, он используется в PHP и других языках из-за его удобного хранения данных конфигурации.
В этом файле мы видим базовую информацию о скелетном приложении (его имя,
описание, лицензию, ключевые слова и ссылку на главную страницу). В будущем, при разработке сайтов,
как правило, вы будете изменять эту информацию. Эта информация необязательна, так что
вы можете вовсе удалить ее, если вы не планируете развертывать ваше веб-приложение в каталоге Packagist
.
Сейчас нас интересует ключ require
. Он содержит определения зависимостей
для нашего приложения. Как видим, нам нужен PHP-движок версии 5.6 или новее и
несколько компонентов Zend Framework, такие как zend-mvc
, zend-mvc-form
и др.
Информации, содержащейся в файле composer.json
, достаточно, чтобы обнаружить зависимости,
загрузить и установить их в подкаталог vendor
. Если вы когда-либо решите, что вам нужно
установить другую зависимость, вы можете сделать это изменив composer.json
и добавив в него
свою зависимость, а затем написав следующие команды из вашей командной строки:
php composer.phar self-update
php composer.phar install
Эти команды обновят Composer до последней доступной версии, а затем установят ваши зависимости. Кстати, Composer не устанавливает для вас PHP, он лишь убеждается в том, что PHP имеет подходящую версию - если это не так, вы увидите предупреждение.
Если вы посмотрите в подкаталог vendor
вы увидите, что он содержит множество файлов.
Файлы Zend Framework 3 могут быть найдены в каталоге APP_DIR/vendor/zendframework/
(рисунок 2.2).
В некоторых других фреймворках используется другой (также удобный) способ установки зависимостей. Вы просто скачиваете библиотеку зависимостей архивом, распаковываете архив и помещаете куда-нибудь в структуру каталогов (обычно в каталог
vendor
). Такой подход использовался Zend Framework 1. Но в Zend Framework 3 рекомендуется устанавливать зависимости через Composer.