O Composer é uma ferramenta essencial para gerenciar as dependências de projetos PHP. Com ele, você declara quais bibliotecas externas seu projeto necessita e a ferramenta cuida da instalação e atualização desses pacotes.
Instalação no macOS e Linux
Execute os comandos abaixo no terminal:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Instalação no Windows
Baixe e execute o instalador oficial:
https://getcomposer.org/Composer-Setup.exe
Configuração de Mirror Nacional (China)
Para acelerar downloads, configure um espelho:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
Criando um Projeto Composer Vazio
Crie uma pasta, por exemplo meu-projeto, e dentro dela um arquivo composer.json com o conteúdo mínimo:
{
"require": {}
}
No terminal, dentro da pasta, execute:
composer update
Isso gerará a pasta vendor e o arquivo composer.lock. Todos os pacotes futuros serão instalados em vendor.
Instalando Pacotes (Exemplo com Monolog)
Declarando Dependência
Edite o composer.json para incluir o pacote desejado. Exemplo com Monolog:
{
"require": {
"monolog/monolog": "1.2.*"
}
}
Se precisar evitar HTTPS (ex.: problemas de rede), adicione a configuração:
{
"require": {
"monolog/monolog": "1.2.*"
},
"config": {
"secure-http": false
}
}
Instalando as Dependências
No diretório do projeto, execute:
composer install
Se o Composer não estiver instalado globalmente, use:
php composer.phar install
Atualizando Todos os Pacotes (Use com Cuidado)
composer update
Instalando um Pacote Específico via Linha de Comando
composer require monolog/monolog
Para especificar uma versão:
composer require "monolog/monolog:1.2.*"
Atualizando um Pacote Específico
composer update monolog/monolog
Removendo um Pacote
composer remove monolog/monolog
Recarregando o Autoload
Após alterações manuais no composer.json, execute:
composer dump-autoload
Autoload
O Composer oferece um arquivo de autoloda. Inclua-o no início do seu projeto:
require 'vendor/autoload.php';
Isso carregará automaticamente todas as classes dos pacotes instalados.