A free and open-source book on ZF3 for beginners


2.3. Зависимости приложения

Зависимость - это сторонний код, используемый вашим приложением. Например, 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).

Рисунок 2.2. Каталог Vendor Рисунок 2.2. Каталог Vendor

В некоторых других фреймворках используется другой (также удобный) способ установки зависимостей. Вы просто скачиваете библиотеку зависимостей архивом, распаковываете архив и помещаете куда-нибудь в структуру каталогов (обычно в каталог vendor). Такой подход использовался Zend Framework 1. Но в Zend Framework 3 рекомендуется устанавливать зависимости через Composer.


Top