Sobes.tech
Junior

Como costuma usar a ferramenta Composer?

sobes.tech IA

Resposta da IA

O Composer é um gestor de dependências para PHP. Normalmente, uso-o para:

  1. Instalação e gestão de bibliotecas e frameworks de terceiros. O Composer permite adicionar, atualizar e remover dependências do projeto facilmente.

    // composer.json
    {
        "require": {
            "monolog/monolog": "2.0.*"
        }
    }
    
    composer install
    composer update
    composer remove monolog/monolog
    
  2. Carregamento automático de classes. O Composer gera um autoloader com base no arquivo composer.json, eliminando a necessidade de incluir manualmente os ficheiros.

    // composer.json
    {
        "autoload": {
            "psr-4": {
                "App\\": "src/"
            }
        }
    }
    
    // index.php
    require __DIR__ . '/vendor/autoload.php';
    
    use App\MyClass;
    
    $obj = new MyClass();
    
  3. Definição de scripts. O Composer permite definir comandos personalizados para realizar várias tarefas, como testes, deploy ou análise estática.

    // composer.json
    {
        "scripts": {
            "test": "phpunit",
            "deploy": [
                "git push",
                "ssh user@host 'cd /var/www/html && composer install --no-dev'"
            ]
        }
    }
    
    composer test
    composer deploy
    
  4. Criação e publicação das suas próprias bibliotecas. O Composer ajuda a estruturar corretamente um projeto de biblioteca e a publicá-la facilmente no Packagist.

  5. Gestão de versões do pacote PHP. O Composer suporta diferentes restrições de versões (por exemplo, ~2.0, ^3.0, >=7.4) para garantir compatibilidade.

  6. Utilização de dependências globais (embora com menos frequência). Às vezes, uso composer global require para ferramentas como PHPUnit ou PHP_CodeSniffer, mas prefiro instalá-las localmente em cada projeto para melhor isolamento.

No geral, o Composer é uma ferramenta indispensável no meu trabalho diário com PHP, facilitando bastante a gestão de projetos e dependências.