Iniciando com Composer

Olá, tudo bem?

Em diversos posts aqui no blog faço uso do Composer, e menciono sua importância no ecossistema PHP, porém neste post vamos entrar em mais detalhes sobre essa maravilhosa ferramenta.

O que é o composer?

Uma ferramenta para gerenciamento de pacotes PHP. Caso você seja usuário Linux, podemos comparar (com as devidas resalvas) o composer com o apt-get.

Citando o amigo Elton Minetto:

“O composer é a melhor invensão depois do pão de forma”

          Minetto, Elton.

O que ele faz?

Gerencia todos os pacotes que sua aplicação tem como dependente, podendo instalar, atualizar ou remover facilmente qualquer pacote.

Como ele funciona?

Todo projeto PHP deve conter um arquivo chamado composer.json, onde nele será definido todas as dependências e informações do seu projeto.

Podemos visualizar abaixo um exemplo do arquivo composer.json do projeto image-gravatar-php.

Instalando o Composer

Existem duas maneiras para instalá-lo utilizando o composer.phar, sendo um único arquivo que contém o Composer e pode ser utilizado de forma isolada dos demais projetos ou de forma global na sua maquina, eu faço uso da segunda opção pois como uso com certa frequência fica mais fácil.

Instalar no Windows

Acesse a URL https://getcomposer.org/download/ e realize o download do arquivo composer-Setup.exe, onde basta seguir o modelo next, next finish.

Instalar no Linux

Basta executar os comandos abaixo:

Após o processo de instalação finalizar abra o terminal e digite:

E pronto será exibido a versão instalada.

Nota: Obrigado ao colega Andre Cardoso por prestigiar o conteúdo e contribuir com uma dica para melhoria do post.

O arquivo composer.json

Como mencionado acima, todas as configurações que o Composer necessita deve estar descrito em seu arquivo composer.json, sendo assim cada projeto deve ter o seu arquivo exclusivo.

A maneira mais simples de se obter o nosso arquivo é acessando o terminal (deu para notar que o terminal é uma ferramenta indispensável para nós 🙂 ) acesse o diretório onde deseja criar o arquivo e execute o seguinte comando:

Ele automaticamente iniciará o processo de criação fazendo as seguintes perguntas:

O nome do pacote, o composer utiliza o Packagist como repositório defautl de projetos e também utiliza/respeita as PSR-0 e PSR-4. Então devemos também seguir as recomendações para a criação do vendor do nosso pacote.

Após a definição do nome, será requisitado a descrição do pacote, recomendado evitar caracteres especiais ou acentuação para evitar quebra de string.

Autor do arquivo/pacote:

A instabilidade do pacote, devendo ser ‘stable, rc, beta, alpha ou dev’:

O tipo do projeto (library, project, metapackage ou composer-plugin):

O tipo de licença (muito importante! Caso tenha alguma dúvida, tenho um post sobre o assunto “Software livre de código aberto e software gratuito, quais são suas diferenças?“)

E caso você deseje, poderá definir os pacotes que você deseja instalar no projeto:

Por ultimo, irá imprimir no terminal o arquivo demonstrativo e lhe questionar se as informações inseridas estão corretas, no final basta digitar yes e pressionar enter, caso não aceite o processo é interrompido.

Pode parecer longo, porem esse processo não leva mais do que alguns segundos, como o composer realiza o download dos componente que você irá utilizar em seu sistema a agilidade no processo de instalação fica atrelada a velocidade e qualidade da internet.

O arquivo composer.lock

Após a execução do comando ‘composer install’ será gerado nosso arquivo composer.lock, onde será armazenado as versões exatas de todos os pacotes que foi instalado em seu projeto. Isso é excelente pois com isso todos os integrantes do time terá a garantia de obtenção dos mesmos pacotes.

É recomendado que este arquivo entre em seu controle de versão justamente pelo motivo citado acima, garantindo a integridade do seu projeto para qualquer membro do time.

Se o seu projeto já venha com o arquivo de lock, basta executar o comando abaixo para atualizar/instalar as decências em seu projeto.

Automaticamente o composer irá analisar os arquivos ‘composer.json’ e ‘composer.lock’ para gerenciar as dependências em seu projeto, muito simples.

Autoloading

Não somente gerenciar pacotes, podemos também configurar e gera o ‘autoloader’ do nosso projeto, lembrando sempre que o composer segue as PSR-0 e PSR-4.

Podemos utilizar como exemplo o composer.json gerado anteriormente:

Como podemos visualizar, é declarado a key “autoload” em seguida definimos o padrão que desejamos utilizar, que neste caso será “psr-4” e por último foi definido o nome do vendor seguido pelo caminho do diretório.

A utilização do autoload pelo composer é muito simples e poderosa, você pode construir um pacote

Comandos básicos

  • composer init
    • Basicamente cria seu arquivo composer.json para você de forma simples e rápida.
  • composer install
    • Para podermos instalar todas as dependências descritas no arquivo composer.json, devemos utilizar este comando para executar a tarefa de forma automática.
  • composer update
    • Caso deseje inserir ou remover pacotes ou alterar o autoload devemos sempre atualizar nosso projeto, e com esse comando tudo o que listei é feito de forma automática sem dores de cabeça :).
  • composer self-update
    • Como todo sistema o composer recebe constantemente atualizações, e  para atualiza-lo utilizamos o self-update.
  • composer  dump-autoload ou dumpautoload
    • Toda vez que houver necessidade de atualizar o autoloader do nosso sistema, podemos utilizar uma dessas duas versões do comando para tal atividade, ambas no final das contas obtém o mesmo resultado.
  • composer –helper ou –h
    • Ele também disponibiliza de um helper, listando os comandos disponíveis e sua forma de uso.

Hoje com os grandes avanços no ecossistema PHP (caso tenha interesse a galera do Hipsters.tech lanço um episódio fantástico “PHP não é coisa de sobrinho!” recomendo ouvir 🙂 ), todos os grandes frameworks tem seus componentes modularizados, podendo ser utilizado de forma isolada e o composer facilitará sua vida caso deseja utiliza-los em seus projetos.

Por exemplo, caso desejamos utilizar a engine de template Twig em nosso projeto basta acessarmos o diretório do nosso projeto e executar o seguinte comando;

Automaticamente será instalado no sistema todos os pacotes necessários para utilização do Twig.

Este post já ficou muito extenso e ainda nem arranhei a superfície das funcionalidades que o Composer dispõe então vou encerra-lo por aqui, porem caso deseje um post explorando mais recursos deixe nos comentários  🙂

Espero ter conseguido demonstrar como é vantajoso a utilização desta ferramenta, na minha opinião é impossível ser um programador PHP nos dias de hoje sem saber o básico dessa ferramenta.

Caso tenha alguma dúvida, sugestão ou elogio por favor deixe nos comentários pois podemos gerar um conteúdo muito bacana.

Até a próxima pessoal 🙂

16 comentários sobre “Iniciando com Composer”

    1. Olá Rafael Nascimento, fico feliz que tenha apreciado o post e de fato o Composer é uma ferramente maravilhosa que nos auxilia muito no dia a dia.

    1. Olá Diego,

      Acredito que houve um equivoco, o Rafael não escreveu o post 🙂

      Fico feliz que tenha apreciado o conteúdo produzido, estou muito feliz com o retorno que está tendo.

      Com certeza irei produzir mais material sobre o composer 🙂

    1. Olá Vítor,

      Fico feliz que tenha apreciado o post, irei elaborar um próximo abordando mais funcionalidades sobre bacanas 🙂

  1. Gostaria de sugerir uma correção com relação ao instalador do composer. Você copiou o código para a instalação em uma data, e na ocasião o hash era um, conforme as versões vão subindo, o hash vai alterando. Se pegar neste exato momento o código que colocou como exemplo a resposta é “Installer corrupt”.

    O ideal seria apenas disponibilizar o link https://getcomposer.org/download e explicar o que é feito, visto que o público alvo são devs iniciantes. Isso para evitar que um novato depare-se de imediato com um erro e pense que “isso” não é pra ele(a). 😉

    1. Olá, Andre Cardoso.
      Excelente apontamento, foi devidamente corrigido no post.
      Obrigado por prestigiar o conteúdo e contribuir para sua melhoria.
      Sucesso em seus projetos.

  2. “acesse o diretório onde deseja criar o arquivo e execute o seguinte comando”. Como se faz isso no windows? Executa-se o comando como e onde?

    1. Olá, Daniel.
      Obrigado por prestigiar o conteúdo, referente a sua pergunta:

      – “acesse o diretório onde deseja criar o arquivo e execute o seguinte comando”

      O arquivo composer.json ele pode ser criado onde você deseja criar o projeto, com isso, por meio do terminal você deve navegar até o diretório onde deseja criar o arquivo e executar o comando composer init. Como descrito no paragrafo ao qual destacou.

      Espero ter lhe auxiliado, sucesso em seus projetos.

    1. Olá, Abisai.
      Fico muito feliz que o conteúdo que produzi foi útil e lhe ajudou em seus estudos. Por favor compartilhe com seus amigos.
      Grande abraço e sucesso em seus projetos.

Deixe uma resposta

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