Uma dependência é um código de terceiros que seu aplicativo usa. Por exemplo, o Zend Framework 3 é a dependência do seu site.
No Composer, qualquer biblioteca é chamada de pacote. Todos os pacotes instaláveis pelo Composer estão registrados no site [Packagist.org] (https://packagist.org/). Com o Composer, você pode identificar os pacotes que o seu aplicativo requer e baixá-los e instalá-los automaticamente.
As dependências do skeleton application estão no arquivo APP_DIR/composer.json (veja abaixo):
{
    "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"
    }
}
O que é JSON?
JSON (JavaScript Object Notation), é um formato de arquivo baseado em texto usado para legível para humanos com uma estrutura de arrays aninhados. Embora JSON tenha originado do JavaScript, é usado em PHP e em outras linguagens, porque é conveniente para armazenar dados de configuração.
Nesse arquivo, vemos algumas informações básicas sobre o  skeleton application (seu nome,
descrição, licença, keywords e home page). Você normalmente irá alterar esta informação para o seu
websites. Esta informação é opcional, então você pode até removê-la ,
se você não desejar publicar sua aplicação no Packagist.
O que é interessante nesta imagem para nós agora é a palavra require. O require
contém as dependências para nosso aplicativo. Essa keyword só funciona a partir do
PHP versão 5.6 ou posterior e funciona com vários componentes do Zend Framework, como zend-mvc, zend-mvc-form, etc.
As informações contidas no arquivo composer.json são suficientes para localizar as
dependências, baixar e instalar nos subdiretório vendor. A qualquer momento que você precisa
você pode instalar outra dependência, você pode fazer isso editando o composer.json e adicionando sua dependência nele,
e, em seguida, digitando os seguintes comandos no seu terminal de comando:
php composer.phar self-update
php composer.phar install
Os comandos acima atualizarão o Composer para a última versão disponível e, em seguida, vai instalar suas dependências. A propósito, o Composer não instala o PHP para você, ele apenas garente que PHP tenha uma versão apropriada, e se não, ele irá avisá-lo dizendo que a versão não é compatível.
Se você olhar dentro da sub-pastas do vendor, você verá que ele contém muitos arquivos dos pacotes instalados.
Os arquivos do Zend Framework 3 podem ser encontrados dentro do APP_DIR/vendor/zendframework/
(Imagem 2.2).
Em outros frameworks, outra forma (convencional) de instalação de instalação de dependências é usada. Onde você baixa o arquivo da blibioteca que você vai utilizar descompacta e coloca em algum lugar da sua pastas (geralmente, vai para a pasta
vendor). Essa abordagem foi usada no Zend Framework 1. Mas, no Zend Framework 3, é recomendável instalar dependências com o Composer.