Composer init: Como começar a utilizar em seus projetos?
Composer é uma ferramenta para gerenciamento de dependências em PHP, com ele é possível instalar, atualizar e gerenciar bibliotecas em seus projetos de forma padronizada e simples.
Como para algumas pessoas o composer ainda é um mistério, o intuito deste post é mostrar como baixar, configurar e utilizar o composer de forma simples em um ambiente Linux
Nesse artigo vou abordar a utilização do composer em um projeto novo, porém, todos comandos utilizados devem funcionar em um projeto já iniciado que não possua um composer.json
Instalando o composer
Para utilizar o composer é necessário primeiramente possuir o PHP previamente instalado em sua maquina na versão 5.3.2 ou superior, como não é o foco desse artigo a instalação e configuração do PHP em si, recomendo que consulte a documentação oficial para obter o tutorial de como instala-lo em sua maquina.
Para iniciar vamos criar um diretório chamado teste-composer, e baixar composer via curl nesse diretório com o seguinte comando:
mkdir teste-compose
cd teste-compose
curl -sS https://getcomposer.org/installer | php
Usando o composer
Caso não tenha seguido os passos acima para baixar o composer em sua maquina, vamos criar um diretório chamado teste-composer, caso já tenha feito isso no passo anterior, basta entrar nesse diretório e criar um arquivo chamado composer.json com o seguinte conteúdo:
{
"name": "nunesjr1993/nome_do_projeto",
"description": "Breve descrição do projeto",
"authors": [
{
"name": "Antonio Nunes Moreira Junior",
"email": "nunesjr1993@gmail.com"
}
],
"require": {
"php": ">=5.6",
"monolog/monolog": "2.0.*"
}
}
Após isso vamos rodar o comando:
php composer.phar install
Rodando esse comando o composer irá ler o arquivo composer.json e criar o diretório /vendor onde será colocadas as dependências informadas no bloco de require do composer.json, também será criado um arquivo chamado composer.lock onde é especificado exatamente as versões dos pacotes instalados atualmente no projeto, por ultimo gerar o arquivo de autoload dentro da vendor, conforme pode ver no retorno do terminal abaixo:
Importante: São incluídas automaticamente as dependências de desenvolvimento (também pode ser incluído com parâmetro require-dev) quando o PHP da maquina a qual esta executando o install possuir o XDebug configurado.
Incluindo autoload e utilizando as bibliotecas
Para demonstrar na pratica o funcionamento de um biblioteca baixada e gerenciada pelo composer, utilizamos uma biblioteca chamada monolog, que trabalhar com logs em PHP de forma simples e padronizada, para utilizar a biblioteca em questão que instalamos em nosso projeto, precisamos importa-la, como o composer gera um arquivo de autoload que permite realizar a importação de todos os pacotes baixados e configurados em seu projeto com somente um require, vamos criar um arquivo chamado teste.php dentro do nosso diretório teste-composer com o seguinte conteúdo:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('composer');
$log->pushHandler(new StreamHandler('teste.log', Logger::WARNING));
// add records to the log
$log->warning('Isso é um log.');
Para executar esse teste basta rodar o comando abaixo dentro do diretório do projeto onde criou o teste.php:
php teste.php
Após executar esse comando não deve obter nenhum retorno no terminal, porém, se você listar os arquivos novamente vai visualizar o arquivo de log gerado, conforme pode ver na imagem abaixo:
Conclusão
Composer é uma ferramenta muito poderosa que facilita e padroniza a maneira de trabalhar com dependências e bibliotecas em PHP, então porque não começar a utilizar a seu favor?
Referencias
https://getcomposer.org
https://tableless.com.br/composer-para-iniciantes
https://www.alura.com.br/curso-online-php-composer