Composer é uma ferramenta de gerenciamento de dependências em PHP. Veja aqui como ele funciona e método de instalação.
O Composer é uma ferramenta de gerenciamento de dependências em PHP. Ele permite que você declare as bibliotecas das quais seu projeto depende e as gerenciará para você (instalação/atualização).
Neste artigo, veremos primeiro o que é um gerenciador de dependências, depois como instalar o Composer e, de maneira geral, como essa fermenta funciona.
O que é Composer?
Com a chegada do PHP5, as noções de bibliotecas, componentes e pacotes nunca estiveram tão presentes no desenvolvimento web. De fato, graças à adição de objetos e namespaces, a linguagem PHP se tornou, como todas as outras linguagens de programação, uma linguagem flexível, modular e reutilizável.
A comunidade, então, criou milhares de componentes e bibliotecas, mas muito rapidamente o excedente se tornou uma confusão e foi necessário colocar alguma ordem em tudo isso.
Foi assim que surgiu o Composer, uma ferramenta configurada para a comunidade de desenvolvedores PHP. Como “npm” para nodejs ou “bundler” para ruby, ele serve como um gerenciador de dependências entre aplicativos e bibliotecas.
Mais precisamente, o Composer permite gerenciar, para cada projeto, a lista de módulos e bibliotecas necessários para seu funcionamento, bem como suas versões.
Ele pode ser usado através do console de linha de comando e permite configurar um sistema de carregamento automático para bibliotecas compatíveis.
Para que serve o Composer?
Imagine que você está trabalhando em um projeto que depende de outras bibliotecas, e que seu site usa uma ferramenta que permitirá enviar e-mails em PHP.
Agora, e se uma nova versão for lançada? Então, você fará a mesma coisa: substituir a versão antiga, certo? Mas suponhamos que essa ferramenta depende de outra biblioteca para validar um e-mail, que, por sua vez, pode depender de outra biblioteca.
Nesse caso, você também deve baixar esta biblioteca e atualizá-la, sobrescrevendo a versão antiga, e terá que fazer isso para todas as bibliotecas que deseja usar futuramente. Complicado, né?
Esta é apenas uma visão geral do gerenciamento de dependências sem usar uma ferramenta adequada. E aqui falamos apenas de duas dependências, e esse não é o caso de um projeto grande, onde você encontrará dezenas de dependências que por sua vez dependem de outras bibliotecas.
Um gerenciador de dependências como o Composer resolve esses problemas automatizando esse processo, recuperando dependências e atualizando-as. Você também pode definir versões de preferência para seu projeto para evitar conflitos.
Um gerenciador de dependências também padroniza como os pacotes são armazenados e de onde são usados. Na prática, isso significa que qualquer projeto usando o mesmo gerenciador de dependências seguirá a mesma estrutura — pelo menos para dependências. Em suma, os gerentes de dependência são um alívio para o programador.
Por que usar um gerenciador de dependências?
O desenvolvimento de qualquer aplicação, independentemente de sua finalidade, geralmente requer a implementação de recursos ou serviços padrão, como logs de aplicativos, acesso a bancos de dados, mecanismos de criptografia, configuração, gerenciamento de gravação de arquivos, dependências, etc.
Assim, para nos ajudar no trabalho relacionado ao desenvolvimento e entrega de aplicação, ferramentas e mecanismos específicos são implementados. É nesse sentido que o gerenciamento de dependências se tornou uma tarefa inescapável, ainda mais em aplicações complexas. Confira algumas vantagens:
- Fácil integração da biblioteca;
- Gerenciando dependências transitivas;
- Isolamento do aplicativo.
Como instalar o Composer?
Instalar o Composer é muito simples (em ambos os casos você deve ter o comando PHP disponível no terminal):
- Se você estiver no Windows, só precisa baixar o arquivo composer-setup.exe que adicionará automaticamente o comando Composer ao PATH do seu sistema.
- No UNIX você deve baixar composer.phar digitando a linha curl -sS https://getcomposer.org/installer | php no seu terminal. Você pode então executar o compositor utilizando php composer.phar
Configurações iniciais
Não há necessidade de instalar uma versão do Composer por projeto, movendo-o para /usr/bin, ou adicionando seu caminho em seu PATH. Você pode usar composer.phar de qualquer pasta em sua máquina.
O Composer usa um arquivo de configuração “composer.json” para determinar quais pacotes instalar e seus números de versão.
Por exemplo, para instalar um programa, basta criar um arquivo composer.json, e indicar na tecla “require” o nome do pacote (package-name) e a versão desejada:
{
“minimum-stability”: “dev”,
“require”: {
“silex/silex”: “1.0.*”
}
}
Em seguida, iniciamos a instalação:
$ php composer.phar install
Quando o comando estiver concluído, podemos ver uma nova pasta e um novo arquivo. A pasta cujo nome é configurável contém o código do micro-framework assim como suas dependências.
O arquivo composer.lock indica os pacotes instalados, especificando o hash preciso da versão (Git commit hash).
Ao colocar esses dois arquivos em sua ferramenta de versionamento favorita, você tem certeza de que todos os outros desenvolvedores terão as bibliotecas certas e nas mesmas versões que você.
O Composer não para por aí: ele também gera um arquivo autoload.php, permitindo o carregamento automático dos pacotes instalados desta forma. Em outras palavras, não há necessidade de arquivos require() cada vez que as bibliotecas são adicionadas.
Graças à inclusão do arquivo autoload.php, o PHP carregará dinamicamente os arquivos corretos para poder usar as classes fornecidas em uma biblioteca.
O Composer tem muitos outros recursos, por exemplo, a capacidade de executar scripts pós-instalação ou pós-atualização. Nesse caso, cada vez que uma nova dependência é instalada em nosso aplicativo, o comando de instalação de ativos é iniciado.
Conclusão
Essa é uma rápida primeira olhada no Composer, um dos melhores gerenciadores de dependências do PHP. Para lembrar fácil e rapidamente os comandos do Composer e as várias propriedades do arquivo composer.json, você pode consultar pelo Composer-Cheatsheet a documentação essencial em uma página.
Esperamos que este conteúdo tenha ajudado com as noções iniciais sobre o tema. Não deixe de conferir outros artigos sobre tecnologia e programação no Blog da HostGator. Até a próxima!