Programando.website - programando.website
PHP
Segunda - 25 de Maio de 2015 às 14:18
Por: Andre Cardoso

    Imprimir


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 conteúdo voltado para 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á esclarecido.


{
    "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 contribuíram 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.

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.


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';

$slugifier = new SlugSlugifier();
 
// 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 />";

?>

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.

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

Frase natural: Frase com acentuação para teste de criação de slug

Frase com aplicação de slug: frase-com-acentuacao-para-teste-de-criacao-de-slug


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.






Autor

Andre Cardoso
contato@andrebian.com www.andrebian.com

Desenvolvedor PHP apaixonado por boas práticas. Membro da organização da comunidade PHP PR que evangeliza o PHP por onde passa. Bacharelando em Sistemas de Informação, Técnico em Informática e louco por Linux.

"Gosto muito do mundo Open Source e busco sempre contribuir de alguma forma."

Vídeos Relacionados


Comentários

Deixe seu Comentário

URL Fonte: http://programando.website/noticia/3151/visualizar/