Com a grande diversidade dos frameworks PHP uma peça fundamental passa despercebida pelos desenvolvedores, mesmo utilizando diariamente. Sim, vamos falar sobre o composer.

O que seria o composer?

O composer é uma ferramenta de gerenciamento de dependências para sua aplicação, sendo assim ela permite que você declare as bibliotecas que seu projeto vai utilizar e faz o instalação, atualização e gerenciamento delas.

Por que usar o composer?

Quem tem mais tempo desenvolvendo ou pegou um projeto legado já se deparou com o seguinte problema: preciso criar uma tarefa que ao final gere um PDF e quando vai verificar se existe a biblioteca de PDF se depara com a mesma em várias versões. Complicado não é? Mas o composer ele ajuda a você não passar mais por isso, pois ele vai gerenciar essas dependências e as suas versões do mesmo.

Instalando no macOS, Linux e Windows

Há instalação para o macOs e linux seguem o mesmo processo, porém é sempre bom ressaltar que você deve ter o PHP na versão 5.3.2 ou maior já instalado . Basta ir no site oficial do composer e rodar esse código abaixo:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Mas o que esses comandos querem dizer?

  • Baixa para o diretório atual o instalador
  • Verifica se o instalador não está corrompido
  • Roda a instalação do composer
  • Apaga o instalador

Simples não é? Nesse momento você só vai poder usar o composer no diretório atual de onde foi instalado, para usar em qualquer diretório do sistema basta usar o comando mv composer.phar /usr/local/bin/composer e depois usar o comando composer — version. Gostaria de ressaltar que em algumas versões do macOS não existe o diretório /usr por padrão. Caso receba algum erro sobre a falta desse diretório basta rodar o comando mkdir -p /usr/local/bin antes do comando mv comentado acima.

Já a instalação no windows é bem mais simples, basta ir novamente no site oficial do composer e baixar/rodar o arquivo Composer-Setup.exe.

O arquivo de configurações

Depois de baixado e instalado vamos falar sobre o arquivo de configuração composer.json.

Para criar esse arquivo, temos 2 maneiras:

  • Criar o arquivo na mão;
  • Criar o arquivo via o comando do composer;

Vou explicar a segunda opção pois é que mais uso e que facilita a minha vida. Para criar o arquivo composer.json eu uso o comando composer init, pois antes de criar o arquivo o composer vai fazer uma série de perguntas para somente depois criar o arquivo. Há primeira pergunta é o “name” do projeto, depois vem a “description” que é uma descrição do projeto, “author” nome/email do autor do projeto, “type” tipo do projeto, “homepage” site onde pode ser encontrado a documentação do projeto, “require” pacotes obrigatórios para o projeto, “require-dev” pacotes obrigatórios para o projeto em ambiente de desenvolvimento e “license” que é a licensa do projeto. Isso tudo é gerado no seu arquivo composer.json porém os itens dos campos require e require-dev você deve colocar depois que o comando rodar.

Packagist

Agora que você tem o esqueleto do seu arquivo composer.json agora é hora de escolher os pacotes que vão ser utilizados no projeto. Para isso o composer usa como seu repositório o Packagist onde os desenvolvedores podem disponibilizar os pacotes. Outra informação é que o packagist lhe fornece o total de instalações dos pacotes por dia, mês e o total. O mais legal é que estas estatísticas são fiéis, ou seja, se alguém remover um pacote do seu composer.json o total de instalações é reduzido. Com esta informação restam contagens apenas aplicações que realmente estão utilizando determinado projeto.

#Conclusão Depois de escolher os pacotes para o projeto e colocarem no seu arquivo composer.json, basta usar o comando composer install para instalar todos os pacotes, bacana não é? Espero que tenham gostado do composer e comecem a utilizar e todos os projetos. Qualquer dúvida, crítica ou sugestão basta colocar nos comentário.