Gerenciando bibliotecas no PHP com composer
O composer é um gerenciador de dependências para o PHP. Podemos utiliza-lo também para gerenciamento de autoloading e outras coisas legais que podemos abordar em outros artigos. Por enquanto vamos instalar e utilizar bibliotecas no nosso projeto teste
Instalação composer
Linux
Windows
Se tudo deu certo, você pode executar o comando:
1 | $ composer |
E várias opções serão exibidas
Onde estão as bibliotecas do composer?
Da forma mais simples, quando gerenciamos bibilotecas pelo composer, estamos buscando essas bibliotecas no Packagist.
Criando nosso hello-world com composer
Criação da pasta
1 | $ mkdir hello-world-composer |
Agora iremos inicializar o composer dentro da nossa pasta
1 | $ composer init |
Ao executar o comando acima seremos questionados sobre, nome do autor, tipo do projeto, licença, etc.
Preencha todas as informações conforme orientado e quando chegar no momento onde o composer pergunta se quer definir as bibliotecas do projeto, digite N para podermos fazer isso manualmente. Também será perguntado se queremos fazer o require-dev que são as depêndencias utilizadas para desenvolvimento local/testes, etc. Iremos entender em breve :)
Ao final do processo de gerar o arquivo composer.json
ele estará parecido com o abaixo:
1 | { |
A partir desse momento já podemos fazer uma baguncinha com o composer.
Instalando bibliotecas
Agora podemos instalar bibliotecas, frameworks, inicializar projetos baseados em templates, etc.
Por enquanto iremos utilizar um pacote para testar nosso projeto. Escolhi a bibiloteca Climate que é muito legal e nos da opções muito legais para cores, formatação e outras coisas no terminal.
Para usar a biblioteca podemos dar o require de dentro da nossa pasta do projeto conforme a documentação nos orienta:
1 | $ composer require league/climate |
Ao executar o comando acima teremos algo parecido com:
1 | rodrigo@localhost[~/repositorios/php/hello-world-composer] $ composer require league/climate |
O composer instala todas as bibliotecas e dependências na pasta vendor/, se entrar nela verá os inúmeros arquivos lá existentes
Agora podemos utilizar a biblioteca. Irei criar um arquivo chamado main.php
e inserir o código a seguir:
1 |
|
Executando normalmente: $ php main.php, teremos a saída abaixo:
Explicação do código
O código que escrevemos foi bem simples e o que faz a mágica acontecer é o nosso require inicial:
1 | require_once __DIR__ . '/vendor/autoload.php'; |
Quando incluimos o arquivo autoload.php
estamos prontos para utilizar as bibliotecas instaladas. Repare que não precisamos incluir todas as dependências que a biblioteca precisa porque o composer se encarrega disso com um autoload otimizado fazendo toda a mágica por trás. No próximo artigo iremos utilizar o composer para auto carregar classes que estão fora do contexto do composer ou seja, criaremos várias classes que utilizarão as bibliotecas em outros diretórios, estruturando a aplicação.
Conclusão
Esse artigo foi uma introdução simples e rápida sobre composer. Se você nunca utilizou o mesmo esse guia é o suficiente para começar a utilizar.
Obregado e forte abraço!