O que é o Composer?
O Composer é uma ferramenta para o gerenciamento de dependências em PHP. Ele permite que você declare as bibliotecas que seu projeto necessita e ele gerencia (instala / atualiza) elas para você¹.
Para quem já está familiarizado com outras linguagens como o Node, por exemplo, temos o npm que faz isso no Java, o Maven e ainda o Bundler, no Ruby. No caso do Composer do PHP, este foi fortemente inspirado pelos npm (Node) e o bundler (Ruby).
Tá com pouco tempo? Clica no play e ouça toda o conteúdo. 😉
Para quem adotou o PHP como linguagem de aprendizado deve estar se perguntando o que é um gerenciador de dependências. Para explicar melhor, vou iniciar explicando o que são dependências de projeto.
O que são dependências?
São todos os artefatos (bibliotecas/ pacotes) de software ou de sistemas de terceiros que seu projeto utiliza para funcionar.
Para que serve o Composer?
Imagine que você tem o seu projeto e escolheu um framework, que é a abstração (captura) de funcionalidades comuns a várias aplicações. Para construção deste projeto, o framework passa a ser uma biblioteca do seu sistema e, provavelmente, dependa de outras bibliotecas para funcionar. É aí que entra o Composer fazendo sua “mágica”, já que é ele quem irá gerenciar essas bibliotecas que o seu projeto necessita. Ou seja, com ele você irá declarar essas bibliotecas e ele, por sua vez, irá achar quais as versões delas que seu projeto necessita e irá instalar elas em uma pasta chamada vendor.
A imagem² abaixo faz uma analogia melhor de como a ferramenta funciona.
Analisando a imagem temos o Fornecedor da Biblioteca (Library Publisher); a Biblioteca em si (Library), no caso as frutas e verduras na imagem; o Cliente (Library Consumer), Consumidor dessa biblioteca; seu projeto e o Packagist – que seria a feira com o anúncio dos fornecedores, a qual entraremos com mais detalhes em outro post sobre o assunto.
Até aqui vimos o que é o Composer e para que serve, agora vamos ver como instalá-lo e um exemplo simples.
Instalando o Composer
Requer o PHP na versão 5.3.2 ou superior para funcionar. Os passos de instalação da ferramenta a seguir são no sistema operacional Linux, caso o seu seja windows, recomendo a leitura da documentação.
Há duas formas de instalar, vamos a elas:
Localmente
Instalar localmente é apenas uma questão de executar o instalador “composer.phar” no diretório do seu projeto. Você pode ver as instruções de download através desse link³
O composer.phar é um binário de arquivo PHP que pode ser rodado em linha de comando arquivos.phar do PHP. Eles se assemelham com arquivos .jar do Java, ou seja, uma biblioteca na qual a aplicação é compilada.
Com o composer.phar no diretório do seu projeto, basta rodar o comando
$ php composer.phar
Globalmente
A diferença nessa instalação é que você pode rodar o composer.phar de qualquer lugar que desejar. Você instala em um diretório no qual você possa acessar globalmente. Com isso é possível executá-lo sem precisar invocar o php
Usando o Composer
Para dar um exemplo simples, iremos fazer a instalação do Slim Framework. Vamos começar criando de diretório chamado teste-composer e depois acessar ele. Você pode criar da forma que achar melhor, abaixo listo os comandos criando a estrutura de teste em um terminal Linux.
$ mkdir teste-composer
$ cd teste-composer
Dentro deste diretório, vamos criar um arquivo chamado composer.json e abrir ele com o Sublime. Para quem não conhece, o Sublime é um editor de textos, um dos mais usados atualmente.
$ touch composer.json
$ subl composer.json
Já para quem está acostumado com Linux, pode abrir no editor Vim
$ vim composer.json
Vamos escrever o seguinte e salvar:
{ "require": { "slim/slim": "^3.0" } }
Agora vamos dentro da pasta rodar o seguinte comando
$ php composer.phar install
Essa será a saída
E a estrutura de diretórios ficará assim:
Algumas informações que valem ressaltar é que, no caso do Linux, temos que cuidar as permissões na hora de executar alguns comandos, no meu caso eu usei o comando sudo (permite a usuários comuns obter privilégios de super usuário e executar tarefas administrativas permitidas apenas para o mesmo) apenas para executar o php composer-setup.php.
Desde quando foi lançado, em Março de 2012, o Composer vem crescendo e sendo utilizado em grande escala, isso porque ele supriu algo que o PHP não tinha (ou até tinha no caso do pear mas era difícil de configurar), de gerenciador de dependências. Hoje é difícil imaginar construir um projeto sem ele é quase como pensar em uma tarefa suicida.
Esse post foi apenas uma introdução do que é o Composer, mas existem muitas coisas a serem vistas e veremos mais detalhadamente algumas em futuros posts sobre.
Rodapé / Referências
[1] Tradução da introdução na documentação do site oficial do Composer
[2] Imagem retirada da palestra do Rafael Dohms – Composer The Right Way
[3] As instruções são da própria documentação do Composer e encontram-se em inglês
—
Gostou do texto? Fique por dentro de outros materiais do universo PHP no Blog da KingHost.
O que você achou deste conteúdo?