Composer: Agilidade no Gerenciamento de Dependências com PHP

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.

composer-post-img

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.

Roberto Beraldo

Mais artigos deste autor »

Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR). Trabalha com Desenvolvimento WEB, principalmente com PHP.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!