Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog Composer Bağımlılık Yönetimi Rehberi: 7 Adımda Projenizi Optimize Edin (2026)

Composer Bağımlılık Yönetimi Rehberi: 7 Adımda Projenizi Optimize Edin (2026)

Composer Bağımlılık Yönetimi Rehberi: 7 Adımda Projenizi Optimize Edin (2026)

Composer Nedir ve Neden Kullanmalısınız?

Composer Nedir ve Neden Kullanmalısınız? - Composer Bağımlılık Yönetimi Rehberi
Composer Nedir ve Neden Kullanmalısınız?

Composer, PHP ekosisteminde en yaygın kullanılan bağımlılık yönetim aracıdır. Projenizde ihtiyaç duyduğunuz kütüphaneleri composer.json dosyası üzerinden tanımlayarak tek bir komutla otomatik olarak indirip kurmanızı sağlar. Bu sayede manuel git clone ya da wget işlemlerine gerek kalmaz ve sürüm çakışmaları minimuma indirilir.

Özellikle büyük ölçekli uygulamalarda, bağımlılıkların doğru sürümde ve tutarlı bir şekilde yönetilmesi, geliştirme sürecinin hızlanması ve üretim ortamında hataların önlenmesi açısından kritik bir rol oynar. Composer, autoload özelliği sayesinde sınıfların otomatik yüklenmesini de sağlayarak kodunuzu daha temiz ve okunabilir hâle getirir.

Birçok web hosting paketleri ve AMD Ryzen VDS sunucular Composer’ın sorunsuz çalışması için gerekli PHP ve extention’ları önceden kurar. Bu altyapı sayesinde, Composer’ı kurmak ve kullanmak sadece birkaç dakikayı alır.

Composer Kurulumu ve İlk Ayarlar

Composer’ı kurmak oldukça basittir. Öncelikle sunucunuzda PHP’nin 7.4 veya daha üst bir sürümünün yüklü olduğundan emin olun. Ardından aşağıdaki komutları izleyin:

  1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" komutuyla kurulum scriptini indirin.
  2. İndirdiğiniz scripti doğrulamak için HASH değerini resmi sayfadan alın ve php -r "if (hash_file('sha384', 'composer-setup.php') === 'HASH') { echo 'OK'; } else { echo 'ERROR'; }" ile kontrol edin.
  3. Doğrulama başarılıysa php composer-setup.php --install-dir=/usr/local/bin --filename=composer komutuyla global olarak kurun.

Kurulum tamamlandıktan sonra composer --version komutuyla sürüm bilgisini kontrol edin. Artık Composer hazır! İlk proje klasörünüzde composer init komutunu çalıştırarak composer.json dosyasını oluşturabilir, bağımlılıkları ekleyebilirsiniz.

Bağımlılık Tanımlama: composer.json Dosyasının Yapısı

composer.json dosyası, projenizin ihtiyaç duyduğu paketleri ve sürüm kısıtlamalarını belirten bir manifest dosyasıdır. En yaygın kullanılan anahtarlar şunlardır:

  • require: Projenin çalışması için zorunlu paketler.
  • require-dev: Geliştirme ve test aşamasında kullanılan paketler (ör. PHPUnit).
  • autoload: PSR-4 ya da classmap ile sınıfların otomatik yüklenmesi.
  • scripts: Composer çalıştırıldığında tetiklenecek özel komutlar.

Örnek bir composer.json içeriği aşağıdaki gibidir:

{
    "name": "ornek/proje",
    "description": "Composer ile yönetilen örnek PHP projesi",
    "require": {
        "php": "^8.0",
        "monolog/monolog": "^2.8",
        "guzzlehttp/guzzle": "^7.5"
    },
    "require-dev": {
        "phpunit/phpunit": "^10.0"
    },
    "autoload": {
        "psr-4": {
            "Ornek\\": "src/"
        }
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan migrate"
        ]
    }
}

Bu yapı sayesinde, composer install komutu çalıştırıldığında belirtilen paketler otomatik olarak indirilir ve vendor klasörüne yerleştirilir. WordPress hosting hizmetlerimizde de Composer destekli projeleriniz sorunsuz bir şekilde çalıştırılabilir.

Bağımlılık Çözümleme ve Sürüm Çakışmalarını Önleme

Composer, paketlerin bağımlılık ağaçlarını çözümleyerek en uygun sürüm kombinasyonunu bulur. Ancak büyük projelerde sürüm çakışmaları sık görülür. Bu çakışmaların önüne geçmek için aşağıdaki stratejileri uygulayın:

  • Sürüm Kısıtlamalarını Dikkatli Belirleyin: ^1.2 gibi caret işareti, 1.2.* gibi wildcard yerine, ~1.2.0 gibi daha kontrollü aralıklar kullanın.
  • Minimum Stabilite Ayarı: "minimum-stability": "dev" gibi düşük stabilite seviyeleri, kararsız paketlerin çekilmesini engeller.
  • Conflict Bölümü: Çakışan paketleri "conflict" anahtarında belirtmek, Composer’ın bu paketleri seçmemesini sağlar.

Bu yöntemlerle, örneğin guzzlehttp/guzzle ve symfony/http-client gibi birbirinin farklı sürümlerini gerektiren paketlerin aynı anda projeye eklenmesi durumunda oluşabilecek hataları %70’e kadar azaltabilirsiniz.

Composer Komutlarıyla Projeyi Yönetme

Composer Komutlarıyla Projeyi Yönetme - Composer Bağımlılık Yönetimi Rehberi
Composer Komutlarıyla Projeyi Yönetme

Composer’ın sunduğu komut seti, bağımlılık yönetimini sadece kurulumla sınırlı tutmaz; aynı zamanda güncelleme, temizleme ve optimizasyon gibi birçok işlemi kapsar. En sık kullanılan komutlar şunlardır:

  • composer install: composer.lock dosyasına göre paketleri kurar; üretim ortamları için idealdir.
  • composer update: composer.json dosyasındaki sürüm kısıtlamalarına göre en yeni paketleri çeker ve composer.lock dosyasını günceller.
  • composer dump-autoload -o: Autoload haritasını optimize eder, büyük projelerde sınıf yükleme süresini %30’a kadar kısaltır.
  • composer require vendor/package: Yeni bir paket ekler ve composer.json dosyasını otomatik günceller.
  • composer remove vendor/package: Paketi projeden siler ve bağımlılık ağacını yeniden oluşturur.

Bu komutları doğru senaryolarda kullanmak, fiziksel sunucu (dedicated server) üzerindeki kaynak kullanımını dengeleyerek performans kaybını önler.

Performans ve Güvenlik İçin En İyi Uygulamalar

Composer sadece paketleri indirmekle kalmaz, aynı zamanda güvenlik açısından da kritik bir rol oynar. Aşağıdaki önerilerle projenizin hem performansını hem de güvenliğini artırabilirsiniz:

  1. composer.lock Dosyasını Versiyon Kontrolüne Ekleyin: Bu dosya, aynı paket sürümlerinin tüm ortamlar arasında tutarlı olmasını sağlar.
  2. Güvenilir Kaynakları Kullanın: Packagist dışındaki depoları eklerken repositories bölümünde HTTPS ve imza doğrulaması yapın.
  3. Günlük Güncelleme: composer audit komutuyla güvenlik açıklarını tarayın ve composer update --with-all-dependencies ile yamalayın.
  4. Autoload Optimizasyonu: composer dump-autoload -o komutunu prod ortamında her dağıtım sonrası çalıştırın.
  5. Cache Kullanımı: Composer’ın --prefer-dist ve --no-dev seçenekleri, gereksiz dosya indirmelerini engelleyerek kurulum süresini %40 azaltır.

Bu adımları izleyerek, örneğin SEO hosting paketlerimizdeki yüksek trafikli sitelerinizde bile Composer’ın oluşturduğu autoload dosyaları sayesinde sayfa yanıt sürelerini %25 iyileştirebilirsiniz.

Composer ile Gerçek Dünya Senaryosu: E‑Ticaret Projesi

Bir e‑ticaret platformu geliştirirken, ödeme gateway’leri, ürün kataloğu ve stok yönetimi gibi farklı paketlere ihtiyaç duyarsınız. Örneğin, stripe/stripe-php, doctrine/orm ve symfony/console paketlerini aynı projeye entegre etmek için aşağıdaki adımları izleyin:

  1. Proje kök dizininde composer init ile temel composer.json dosyasını oluşturun.
  2. composer require stripe/stripe-php doctrine/orm symfony/console komutlarıyla paketleri ekleyin.
  3. Autoload ayarlarını PSR‑4 formatında "App\\": "src/" şeklinde tanımlayın.
  4. Geliştirme aşamasında composer require --dev phpunit/phpunit ile test kütüphanesini ekleyin.
  5. Üretim ortamına geçmeden composer install --no-dev -o komutunu çalıştırarak sadece gerekli paketleri ve optimizasyonu sağlayın.

Bu süreçte, e-ticaret hosting paketlerimizdeki SSD tabanlı depolama ve yüksek I/O performansı, Composer’ın paket indirme ve autoload oluşturma işlemlerini milisaniyeler içinde tamamlamasını sağlar.

Composer ve Diğer Paket Yöneticileri Karşılaştırması

ÖzellikComposernpmpip
Hedef DilPHPJavaScriptPython
Sürüm ÇözümlemeSemver + ConflictSemver + PeerDepsPEP 440
Autoload DesteğiPSR‑4/PSR‑0Node.js moduleimportlib
Güvenlik Taramacomposer auditnpm auditpip-audit
Cache MekanizmasıComposer Cache Dirnpm cachepip cache

Tablodan da görüleceği gibi, Composer PHP projeleri için özelleşmiş autoload ve güvenlik tarama özellikleri sunar. Bu avantajlar, Intel i9 VDS sunucular üzerindeki büyük ölçekli uygulamalarda performans ve güvenlik dengesini sağlamada kritik rol oynar.

Sıkça Sorulan Sorular

Composer kurulumunda “hash mismatch” hatası alıyorum, ne yapmalıyım?

Bu hata, indirdiğiniz installer dosyasının bütünlüğünün bozulduğunu gösterir. Öncelikle composer-setup.php dosyasını silip tekrar indirin ve resmi Composer download sayfasındaki SHA‑384 hash değerini kontrol edin. Hash eşleşmezse indirme sırasında ağ kesintisi olmuş demektir; yeniden indirmek sorunu çözer.

“composer install” komutu çok uzun sürüyor, nasıl hızlandırabilirim?

İlk kurulumda paketlerin indirilmesi zaman alabilir. composer install --prefer-dist --no-dev seçenekleri, sadece dağıtım paketlerini çeker ve geliştirme bağımlılıklarını atlayarak süreci %30‑40 kadar kısaltır. Ayrıca composer config -g cache-dir /path/to/cache ile cache klasörünü SSD’ye yönlendirmek de faydalıdır.

Production ortamında “composer update” çalıştırmalı mıyım?

Genellikle üretim ortamında composer update çalıştırmak önerilmez. Bunun yerine composer install komutunu composer.lock dosyasıyla birlikte kullanın. Böylece test ortamında onaylanmış paket sürümleri aynı şekilde dağıtılır ve sürüm uyumsuzluğu riski ortadan kalkar.

Composer ile özel bir paket deposu ekleyebilir miyim?

Evet, composer.json dosyasına "repositories" anahtarını ekleyerek özel bir Git, VCS ya da Satis deposu tanımlayabilirsiniz. Örnek:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/yourcompany/custom-package"
    }
]

Bu sayede özel paketleriniz de Composer üzerinden yönetilebilir, sürüm kontrolü sağlanır.

Sonuç ve Bir Sonraki Adımınız

Composer, PHP ekosisteminde bağımlılık yönetimini standartlaştırarak geliştirme sürecinizi %40’a kadar hızlandırır ve sürüm çakışmalarının maliyetini önemli ölçüde düşürür. Bu rehberde öğrendiğiniz kurulum, composer.json yapılandırması, sürüm kontrolü ve güvenlik pratiklerini uygulayarak projelerinizde sorunsuz bir deneyim elde edebilirsiniz.

Şimdi, alan adı (domain) kaydı ve kurumsal e-posta hizmetlerimizle entegre bir ortam oluşturarak, Composer destekli uygulamanızı üretim ortamına taşıyabilirsiniz. İlk adım olarak, composer install --no-dev -o komutunu çalıştırın ve ardından iletişim sayfamızdan teknik destek talep edin. Başarıya giden yolda Composer yanınızda!