O que é composer? Uma breve introdução ao gerenciamento de dependências

Afinal de contas, o que é Gestão de Dependências?

Com a evolução dos Frameworks utilizados atualmente e suas respetivas bibliotecas (lib’s), surgiu-se a necessidades de organizar e gerenciar as bibliotecas e suas versões. Para solucionar este problema foram criadas novas ferramentas, os Gerenciadores de Dependências, que aumentam a segurança, facilidade de manutenção, velocidade de desenvolvimento e homogenização do seu aplicativo, e o composer é um deles.

E o Composer?

composer

O Composer é um gerenciador de dependências para PHP, inspirado no npm do Node e no bundler do Ruby, que vem ganhando muito espaço. Através de um arquivo json você poderá declarar as bibliotecas utilizadas no projeto e através de comandos simples ele se encarregará baixá-las automaticamente, gerando um autoload que para utilização das funções no projeto.
Em resumo, o Composer resolve os seguintes problemas:

a) Você tem um projeto que precisa de diversas bibliotecas.
b) Algumas dessas bibliotecas depende de outras.
c) Você declara o que você precisa.
d) O Composer localiza qual versão de qual pacote precisa ser instalado e faz o download para o seu projeto.

Depois de configurar corretamente o arquivo composer.json e via linha de comando instalar as dependências informadas – através do comando install, no Terminal – é feita uma verificação para ver se há algum erro de sintaxe, acontece a busca no repositório pelo pacote informado, o download é realizado e a “instalação” feita no diretório apropriado – por padrão, é o diretório vendor, na raiz do projeto, mas isso também é configurável.

Onde encontro?

O site do projeto é https://getcomposer.org e você pode fazer o download de diversas maneiras. Colocando o arquivo em seu projeto você poderá executar os comando de maneira bem simples, como:
php composer.phar install

Existe também a opção de fazer o download via linha de comando através do curl (ambiente *NIX) e um instalador (ambiente Windows).

Conclusão

Se você está iniciando o desenvolvimento em PHP, estude mais sobre o Composer, assim como Git. Atualmente com frameworks mais evoluídos e diversas bibliotecas, cada uma com sua versão específica e dependência de outra bibliotecas, torna-se impossível gerenciar tudo isto manualmente ainda mais com uma grande equipe. Um gerenciador de dependências é a maneira correta e inteligente de ser resolver esse problemas.