Tableless

Busca Menu

Composer para iniciantes

Seja o primeiro a comentar por

Composer é uma ferramenta para gerenciamento de dependências para o PHP que vem ganhando espaço e se tornando cada vez mais indispensável. Com algumas poucas linhas de configurações você define todas as bibliotecas de terceiros ou mesmo suas que deseja/precisa utilizar em seu projeto, o composer encarrega-se de baixá-las e criar um autoloader deixando-as prontas para uso.

Para muitos o composer ainda é um mistério então o intuito deste post é mostrar ao usuário que ainda não conhece como baixar, configurar e utilizar o composer de forma básica.

 

Do que preciso?

Basicamente precisará do PHP em sua versão a partir da 5.3.2.

Os exemplos criados neste post serão baseados em ambiente Linux, em sua maioria funcionará da mesma forma no Mac OS X mas para o Windows recomendo que leia a documentação oficial. O conceito é o mesmo nos três Sistemas Operacionais no entanto no Windows há algumas mínimas diferenças.

 

Como começo?

Primeiramente você precisa realizar o download do phar do composer. O phar é um empacotamento de uma aplicação e é utilizado para fornecer bibliotecas e ferramentas nas quais o desenvolvedor não tem de se preocupar com sua estrutura. Em outras palavras, é pegar e usar.

Para que você obtenha o composer há duas maneiras distintas. Através da biblioteca cURL e através do próprio PHP. Basta selecionar uma das opções abaixo e executar em seu terminal.

Instalando via cURL:
curl -sS https://getcomposer.org/installer | php

Instalando via PHP:
php -r “readfile(‘https://getcomposer.org/installer’);” | php

Existem outras maneiras de instalar, na verdade são configurações mais avançadas de instalação que não serão abordadas aqui por se tratar de ser um conteudo voltado à iniciantes.

 

Qual o próximo passo?

Antes de você sair querendo fazer as coisas acontecerem precisamos passar alguns conceitos básicos.

O composer facilita o gerenciamento de dependências em seus projetos, com isso houve a necessidade de uma padronização para a interoperabilidade entre os mais diversos frameworks PHP do mercado. Mas detalhe que o composer não limita-se à uso somente em frameworks, você pode tranquilamente utilizá-lo em seus projetos com PHP puro desde que siga as recomendações da FIG (Framework Interoperability Group).

 

O arquivo de configurações

Agora que você já tem uma noção do que é o composer está na hora de botar a mão na massa.

Primeiramente crie um arquivo chamado composer.json. Este arquivo possuirá as configurações de dependências de sua aplicação em formato Json.

Abaixo segue um esqueleto básico do composer.json – o arquivo em que as dependências serão descritas, em seguida o mesmo será esclarescido.

{
    "name": "Nome do projeto",
    "description": "Breve descrição do que a aplicação se propoe a fazer",
    "authors": [
        {
            "name": "Seu nome",
            "email": "seu-email@seu-dominio.com"
        }
    ],
    "require": {
        "php": ">=5.2.8"
    }
}

O “name” é o nome de sua aplicação. Esta marcação é opcional mas recomendada.

O “description” é uma breve descrição do que sua aplicação se propõe a fazer. Também opcional.

Em “authors” aparecem os créditos de desenvolvedores que contribuiram com o projeto.

O “require” basicamente deixa claro quais são as dependências de sua aplicação. Neste caso se a versão do PHP for abaixo da 5.2.8 simplesmente uma mensagem de erro será lançada ao instalar as dependências lhe informando que não é possível prosseguir por nem todos os requisitos estarem satisfeitos.

Como você pode ver acima este é o esqueleto de uma aplicação muito básica, sem configurações avançadas e sem indicação de nenhuma biblioteca de terceiro.

 

Ok, mas e agora?

Agora que você já tem o esqueleto de seu composer configurado em sua aplicação falta incluir alguns pacotes. O composer utiliza como seu repositório o Packagist onde qualquer desenvolvedor pode criar seus próprios pacotes e disponibilizá-los para a comunidade semelhante o github. 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 pacote.

 

Um pequeno exemplo.

Para fins didáticos mostrarei aqui a utilização de uma biblioteca para slug criada por Kevin Le Brun, o slug.php. Na seção em que são definidos os requerimentos (require) no arquivo composer.json basta adicionar logo abaixo da linha que define que o necessita do PHP o nome do pacote desejado e a sua versão. Neste caso o pacote é “kevinlebrun/slug.php” e a versão é “1.*”. Com isso a nova estrutura do composer.json é:

...
"require": {
        "php": ">=5.2.8",
        "kevinlebrun/slug.php": "1.*"
}
...

 

Muito bem, agora está tudo pronto para que você veja o composer em ação. Na pasta raíz de sua aplicação (que é a mesma que o composer.json e o composer.phar se encontram) rode o comando php composer.phar install. Este comando fará o composer ler as configurações setadas no arquivo json e instalar todas as bibliotecas/pacotes necessários para a sua aplicação e também estas mesmas bibliotecas que possuírem dependências terão as mesmas resolvidas. Pense no composer mais ou menos como o apt-get do Linux debian-like. Nele, ao instalar um pacote qualquer todas suas dependências são resolvidas automaticamente.

Estruturdo composer e instalação

Perceba que na pasta em que encontra-se sua aplicação agora existem a pasta vendor, um arquivo composer.phar (que já encontrava-se ali), um arquivo composer.json (que já encontrava-se ali) e um arquivo composer.lock – que é o arquivo gerado automaticamente após a instalação com sucesso.

Estrutura de arquivos após a instalação via composer

O próximo passo (mais um)

Agora já temos tudo. O composer gerenciando as dependências, as dependências definidas em nosso arquivo composer.json, e uma pasta contendo todas as dependências necessárias juntamente com o autoloader do composer que encarrega-se de registar todos os namespaces dos arquivos baixados na pasta vendor. Com isso basta utilizarmos.

Crie um arquivo chamado index.php e inclua o autoloader do composer conforme o exemplo abaixo.

 

<?php
header('Content-Type: text/html; charset=utf-8');

require 'vendor/autoload.php';

Importante que esteja definido que o conteúdo será exibido utilizando a codificação UTF-8 pois problemas podem ocorrer no tratamento de caracteres especiais como acentuações.

Com isso em mãos, basta apenas utlizarmos nosso slug.php.

$slugifier = new \Slug\Slugifier();

// Definindo tratamento de caracteres com acentuação
$slugifier->setTransliterate(true); 

$frase = 'Frase com acentuação para teste de criação de slug';

$slug = $slugifier->slugify($frase);

echo '<b>Frase natural: </b>' . $frase . "<br /><br />";
echo '<b>Frase com aplicação de slug: </b>' . $slug . "<br /><br />";

 

Perfeito, agora basta exibir no seu browser ou mesmo via terminal.

Slug rodando no terminal

 

Acessando nosso localhost através de um browser o resultado será este

Slug rodando no navegador

Complementando

O comando php composer.phar install é utilizado somente uma vez em seu repositório. Para qualquer alteração do composer.json que caracteriza-se como uma nova dependência ou remoção de uma existente deve ser utilizado o comando php composer.phar update.

O composer ainda possui um self-update em que baixa a sua última versão. Normalmente ao rodar qualquer comando você verá uma mensagem dizendo que a sua versão do composer precisa ser atualizada. Para isto basta o comando php composer.phar self-update.

 

Finalizando

O composer está se tornando a cada dia mais utilizado entre desenvolvedores e vale muito a pena se aprofundar no assunto.

O código-fonte deste exemplo está no github para eventuais consultas neste link.

Publicado no dia