Sobes.tech
Junior

Genellikle Composer aracını nasıl kullanıyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Composer, PHP için bir bağımlılık yöneticisidir. Genellikle şu amaçlar için kullanıyorum:

  1. Üçüncü taraf kütüphaneleri ve framework'leri kurma ve yönetme. Composer, projenin bağımlılıklarını kolayca eklemeye, güncellemeye ve kaldırmaya olanak tanır.

    // composer.json
    {
        "require": {
            "monolog/monolog": "2.0.*"
        }
    }
    
    composer install
    composer update
    composer remove monolog/monolog
    
  2. Sınıfların otomatik yüklenmesi. Composer, composer.json dosyasına dayanarak bir otomatik yükleyici oluşturur, böylece dosyaları manuel olarak dahil etmeye gerek kalmaz.

    // composer.json
    {
        "autoload": {
            "psr-4": {
                "App\\": "src/"
            }
        }
    }
    
    // index.php
    require __DIR__ . '/vendor/autoload.php';
    
    use App\MyClass;
    
    $obj = new MyClass();
    
  3. Betiklerin tanımlanması. Composer, test etme, dağıtım veya statik analiz gibi çeşitli görevleri yerine getirmek için özel komutlar tanımlamaya olanak tanır.

    // composer.json
    {
        "scripts": {
            "test": "phpunit",
            "deploy": [
                "git push",
                "ssh user@host 'cd /var/www/html && composer install --no-dev'"
            ]
        }
    }
    
    composer test
    composer deploy
    
  4. Kendi kütüphanelerinizin oluşturulması ve yayınlanması. Composer, kütüphane projesini doğru şekilde yapılandırmaya ve Packagist'te kolayca yayınlamaya yardımcı olur.

  5. PHP paketi sürümlerinin yönetimi. Composer, uyumluluğu sağlamak için çeşitli sürüm kısıtlamalarını (örneğin, ~2.0, ^3.0, >=7.4) destekler.

  6. Küresel bağımlılıkların kullanımı (daha nadiren). Bazen PHPUnit veya PHP_CodeSniffer gibi araçlar için composer global require kullanıyorum, ancak bunları her projeye yerel olarak kurmayı tercih ederim, böylece izolasyonu artırırım.

Genel olarak, Composer PHP ile günlük çalışmalarımda vazgeçilmez bir araçtır ve proje ve bağımlılık yönetimini büyük ölçüde kolaylaştırır.