O Composer é o principal gerenciador de dependências para PHP. É a ferramenta mais utilizado hoje em dia em todo o mundo para essa finalidade. Ele permite definir bibliotecas externas utilizadas em seu projeto de forma simples e direta. O próprio Composer baixa, atualiza e carrega automaticamente todas as bibliotecas utilizadas pela sua aplicação.
É extremamente simples utilizar o Composer e ele faz todo o trabalho pesado de gerenciar as bibliotecas, baixar as versões corretas e carregá-las em seu projeto. Tudo com um simples comando no terminal.
Ou seja, se você ainda não o usa, com certeza está perdendo MUITO tempo e produtividade!
Continue lendo este artigo, que vou explicar como instalar e utilizar essa incrível ferramenta.
Instalando o Composer
Há algumas diferenças na forma de instalação em sistemas Windows e em Linux/Mac OS X. Vou abordá-las separadamente.
Instalando em Linux e Mac OS X
Em Linux e Mac, podemos usar as maravilhosas ferramentas de linha de comando, que facilitam muito o nosso dia-a-dia de programação.
Abra o terminal e execute este comando:
curl -sS https://getcomposer.org/installer | php
O que o comando acima faz é baixar o instalador do Composer, usando curl, e executá-lo com o interpretador do PHP.
Caso você não tenha o curl instalado, o comando vai falhar. Você pode instalar o curl ou usar o comando abaixo, que também terá o mesmo resultado:
php -r "readfile('https://getcomposer.org/installer');" | php
Se você rodar o comando ls
, verá que o arquivo composer.phar
agora está no diretório.
Você poderá executar o comando abaixo para testar a instalação:
php composer.phar
Eu sei que você vai usar muito o Composer, em vários projetos. Por isso recomendo que, em vez de baixá-lo em todas aplicações, instale-o globalmente. Assim poderá executá-lo a partir de qualquer diretório, sem precisar baixá-lo de novo.
Para isso, vamos copiar o arquivo composer.phar
para um diretório que esteja no PATH
do nosso sistema. Pra facilitar, vamos renomeá-lo para composer
apenas, sem extensão.
Vamos copiar o arquivo para o diretório /usr/local/bin/
, com o comando mv
:
sudo mv composer.phar /usr/local/bin/composer
Note que /usr/local/bin/
é um diretório protegido e você precisará de permissão de root para escrever nele. Por isso, executamos o comando usando sudo
.
Agora o Composer está instalado globalmente. Basta digitar composer
no terminal, em qualquer diretório e pode usá-lo onde quiser.
Instalando em Windows
A maneira mais simples de instalar no Windows é usando o instalador. Também há a opção manual, se preferir.
Baixe o instalador clicando aqui. Depois execute-o e siga os passos. O instalador vai colocar o Composer no PATH
do seu Windows, assim você poderá executar o comando de qualquer diretório.
Note que, se você estiver com uma janela do terminal (prompt de comando) aberta, deverá fechá-la e abri-la novamente. Isso é necessário para que a alteração no PATH
seja carregada.
Se preferir seguir a instalação manual, clique aqui e execute os comandos descritos na documentação oficial.
Instalação de Dependências
Para instalar uma dependência, usaremos o comando composer require
. Um pacote é identificado por duas partes: vendor_name é o nome do responsável por ele e project_name é o nome do projeto propriamente dito.
Por exemplo, se quisermos instalar o Slim, vamos requerer o pacote slim/slim, desta forma:
composer require slim/slim
Após alguns segundos, o Slim terá sido baixado automaticamente.
Os arquivos composer.json
e composer.lock
são criados automaticamente. A biblioteca Slim (e todas as demais dependências) serão armazenadas no diretório vendor
.
O arquivo composer.json
é o arquivo de configuração principal. É nele que são armazenadas as dependências, nome do projeto etc.
O composer.lock
é um arquivo manipulado pelo próprio Composer, para gerenciar as versões, saber de onde baixar as bibliotecas etc. Você não precisa (e nem deve) mexer nele.
O diretório vendor
é onde fica o auto loader e todas as dependências de seu projeto.
Você pode alterar o arquivo composer.json
manualmente, se preferir. Mas é bem mais rápido e prático usar o comando composer require
para isso. Ele altera o arquivo e já baixa a biblioteca automaticamente.
Como Usar Dependências
Uma vez que você tenha declarado e baixado uma dependência, você poderá usá-la em todo o seu projeto. Basta que o autoloader do Composer tenha sido carregado.
Se você possui um arquivo de Bootstrapping, esse é o local perfeito para incluir o autoloader do Composer. Você pode ler mais sobre Arquivos de Inicialização e Bootstrapping neste meu artigo.
Vamos fazer um rápido teste usando o Slim, que já baixamos anteriormente.
No diretório atual (onde está o composer.json) crie um arquivo index.php
. Nele, você precisa apenas incluir o arquivo vendor/autoload.php
e você terá acesso a todas as dependências gerenciadas pelo Composer.
Vamos criar o index.php
com este conteúdo:
get('/', function() { echo "Funcionou!"; }); $app->run();
Você pode iniciar o servidor nativo do PHP e testar no navegador. Inicie o servidor na porta 8000:
php -S localhost:8000
Depois basta acessar a URL http://localhost:8000 em seu navegador e você verá a mensagem Funcionou!.
Pronto, viu como é simples? 🙂
Como Atualizar Dependências
Por ser um gerenciador, o Composer deve atualizar os pacotes baixados. Para isso, devemos usar o comando composer update
. Esse comando verifica todas as dependências configuradas no arquivo composer.json
e busca por atualizações. Dessa forma, elas estarão sempre atualizadas.
Obtendo Ajuda
Ao digitar apenas composer
, sem parâmetros, será exibida a lista de comandos disponíveis. É possível atualizar a lista de repositórios (com selfupdate
). Também é possível obter ajuda sobre um comando específico, usando a palavra help antes do comando, por exemplo composer help require
.
Aprenda Tudo Sobre o Composer
Neste post mostrei apenas alguns recursos do Composer. Se você quiser aprender todo o poder dessa ferramenta, conheça o meu curso Ultimate Composer.
No curso eu mostro outras configurações do Composer, a estrutura do arquivo de configuração composer.json
e outros comandos disponíveis. Também demonstro como usar o poderoso autoloader que ele fornece.
Para fixar o conteúdo, vamos montar uma aplicação prática, usando o que aprendemos.