Composer Kurulumu ve PHP Ayarları
PHP'yi doğru eklentilerle kurmayı, Composer ile bağımlılık yönetmeyi ve PSR-4 otomatik yükleme ile düzenli bir proje yapısı kurmayı anlatıyoruz.

Composer kurulumu için önce PHP'nin kurulu ve terminalde çalışır olması gerekir. Windows'ta getcomposer.org'daki Composer-Setup.exe kurucusu PHP'yi bulup PATH'e ekler. macOS ve Linux'ta sitedeki kurulum komutlarıyla composer.phar indirilip /usr/local/bin/composer olarak taşınır. composer --version sürüm döndürüyorsa kurulum tamamdır; bağımlılıklar composer install ile kurulur.
Composer Nedir, Neden Gerekir?
Composer, PHP projelerinin bağımlılık yöneticisidir. Projenizin ihtiyaç duyduğu kütüphaneleri, uyumlu sürümleriyle birlikte indirir ve tek bir dosyadan yönetmenizi sağlar. JavaScript'teki npm, Python'daki pip ne ise PHP için Composer odur.
Composer'ın ikinci büyük katkısı otomatik yüklemedir (autoload). Onlarca require satırı yazmak yerine tek bir dosyayı dahil edersiniz; sınıflar ihtiyaç duyulduğu anda otomatik yüklenir. Laravel ve Symfony gibi modern PHP çatıları baştan sona Composer üzerine kuruludur.
Kütüphaneler Packagist adlı genel depoda yayınlanır. Composer, composer.json dosyanızdaki sürüm kurallarına göre bu depodan uygun paketleri seçer ve hepsini vendor klasörüne kurar.
| Dosya / klasör | Görevi | Git'e eklenir mi? |
|---|---|---|
| composer.json | Bağımlılıklar, sürüm kuralları, autoload ayarı | Evet |
| composer.lock | Kurulan her paketin tam sürümü | Evet (uygulamalarda) |
| vendor/ | İndirilen paketler ve autoload dosyaları | Hayır |
PHP Kurulumu: Windows, macOS, Linux
Composer bir PHP programıdır; bu yüzden önce PHP'nin komut satırında çalışması gerekir. Bilgisayarınızda XAMPP kuruluysa onun içindeki PHP'yi kullanabilirsiniz; ayrıntılar XAMPP kurulumu rehberimizde. Bağımsız bir PHP kurmak istiyorsanız işletim sisteminize göre ilerleyin.
php -v
# Yüklü eklentiler
php -m
# Kullanılan php.ini dosyası
php --iniWindows'ta PHP
windows.php.net adresinden güncel kararlı sürümün x64 Thread Safe zip dosyasını indirin ve C:\php gibi kısa bir klasöre çıkarın. Klasördeki php.ini-development dosyasının bir kopyasını php.ini adıyla oluşturun ve C:\php klasörünü sistem PATH'ine ekleyin.
php.ini dosyasında Composer'ın ve çoğu paketin ihtiyaç duyduğu eklentileri, satır başındaki noktalı virgülü silerek açın:
extension_dir = "ext"
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=zipmacOS ve Linux'ta PHP
macOS'ta Homebrew ile tek komut yeterlidir. Ubuntu ve Debian'da PHP komut satırı paketiyle birlikte sık kullanılan eklentileri ve unzip aracını kurun; Composer paketleri açarken unzip ya da zip eklentisine ihtiyaç duyar.
brew install phpsudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip unzipComposer Kurulumu Adım Adım
Windows'ta en kolay yol getcomposer.org üzerindeki Composer-Setup.exe kurucusudur. Kurucu bilgisayarınızdaki php.exe'yi bulur, eksik ayarları bildirir ve composer komutunu PATH'e ekler. Kurulumdan sonra açık terminalleri kapatıp yeniden açın.
macOS ve Linux'ta Composer, indirme sayfasındaki dört satırlık komutla kurulur. Bu komutların biri indirilen dosyanın güvenlik özetini (hash) doğrular ve her sürümde değişir; bu yüzden komutları her zaman resmî sayfadan güncel hâliyle kopyalayın. Kurulum, bulunduğunuz klasöre composer.phar dosyasını oluşturur; onu genel bir konuma taşıyarak her yerden composer yazarak çalıştırabilirsiniz.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# (resmî sayfadaki hash doğrulama satırı)
php composer-setup.php
php -r "unlink('composer-setup.php');"
# Genel kullanım için taşı
sudo mv composer.phar /usr/local/bin/composercomposer --version
composer diagnosecomposer install ve Temel Komutlar
Yeni bir projede composer init etkileşimli sorularla composer.json oluşturur. Var olan bir projeyi klonladıysanız tek yapmanız gereken composer install komutunu çalıştırmaktır: Composer, composer.lock dosyasındaki sürümleri birebir kurar.
composer require yeni paket ekler ve composer.json ile composer.lock'u günceller. composer update ise izin verilen sürüm aralığındaki en yeni sürümlere yükseltir; bu nedenle ekip içinde bilinçli kullanılmalıdır.
- ^2.0 sürüm kuralı 2.x içindeki tüm sürümlere izin verir, 3.0'a geçmez.
- composer.lock dosyasını paylaşın; ekipteki herkes ve sunucu aynı sürümleri kurar.
- vendor klasörünü Git'e eklemeyin; .gitignore'a yazın.
# Yeni proje dosyası oluştur
composer init
# Paket ekle
composer require guzzlehttp/guzzle
# Yalnızca geliştirmede gereken paket
composer require --dev phpunit/phpunit
# Kilit dosyasına göre kur
composer install
# Sürümleri güncelle
composer update
composer outdated
# Paket kaldır ve listele
composer remove guzzlehttp/guzzle
composer showGüvenlik denetimi
Kullandığınız paketlerde bilinen bir güvenlik açığı olup olmadığını composer audit komutuyla kontrol edin. Komut, kilit dosyasındaki sürümleri açık veritabanlarıyla karşılaştırır ve etkilenen paketleri listeler. Bu kontrolü her güncellemeden sonra ve düzenli aralıklarla çalıştırmak, eski kalmış bir kütüphanenin sitenizi riske atmasını önler.
composer auditComposer betikleri
composer.json içindeki scripts alanına sık kullandığınız komutları yazabilirsiniz; örneğin testleri çalıştıran bir test betiği. Bu betikler composer run-script test ya da kısaca composer test ile çalışır. Böylece ekipteki herkes aynı komutu, aynı parametrelerle kullanır ve yeni gelen bir geliştirici projenin nasıl test edildiğini tek bakışta görür.
PSR-4 Otomatik Yükleme
Composer'ı yalnızca dış paketler için değil, kendi kodunuzu düzenlemek için de kullanın. PSR-4 standardında her ad alanı (namespace) bir klasöre karşılık gelir; örneğin App\Servis\Fatura sınıfı src/Servis/Fatura.php dosyasında durur.
Ayarı composer.json'a ekledikten sonra composer dump-autoload komutunu çalıştırın. Artık projenin giriş dosyasında yalnızca vendor/autoload.php'yi dahil etmeniz yeterlidir.
{
"require": {
"php": ">=8.1"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}<?php
require __DIR__ . '/vendor/autoload.php';
use App\Servis\Fatura;
$fatura = new Fatura();composer dump-autoloadCanlı Sunucuya Kurulum
Canlı sunucuda geliştirme paketlerine ihtiyaç yoktur ve otomatik yükleyicinin optimize edilmesi her istekte zaman kazandırır. Dağıtım sırasında aşağıdaki komutu kullanın; --no-dev test araçlarını dışarıda bırakır, --optimize-autoloader sınıf haritasını önceden oluşturur.
Bu küçük ayar, özellikle çok sayıda sınıf içeren projelerde yanıt süresine olumlu yansır. Sunucu tarafındaki bu tür iyileştirmeleri hız ve performans yönetimi çalışmalarımızın bir parçası olarak ele alıyoruz.
Dağıtımdan önce yerelde composer validate komutunu çalıştırmak da iyi bir alışkanlıktır: composer.json dosyasındaki yazım hatalarını ve kilit dosyasının güncel olup olmadığını kontrol eder. Böylece sunucuda yarım kalan bir kurulumla karşılaşma olasılığınız azalır.
- Sunucudaki PHP sürümü, composer.json'daki php kuralını karşılamalıdır.
- Yerelde farklı PHP sürümü kullanıyorsanız composer.json'daki config.platform.php ayarıyla sunucunun sürümünü taklit edebilirsiniz.
- Ortamları birebir eşitlemek için PHP'yi container içinde çalıştırmak da bir seçenektir; bkz. Docker kurulumu.
composer install --no-dev --optimize-autoloaderSık Hatalar ve Çözümleri
Composer hatalarının çoğu eksik PHP eklentileri, uyumsuz PHP sürümü ve bellek sınırından kaynaklanır. composer diagnose komutu birçok sorunu kendisi tespit eder.
- php komutu tanınmıyor: PHP klasörü PATH'te değildir; ekleyip terminali yeniden açın.
- openssl eklentisi yok: php.ini'de extension=openssl satırını açın; php --ini ile doğru php.ini dosyasını düzenlediğinizden emin olun.
- zip eklentisi ve unzip komutu eksik: Windows'ta extension=zip satırını açın, Linux'ta php-zip ve unzip paketlerini kurun.
- Your requirements could not be resolved: Paket, kurulu PHP sürümünüzü ya da başka bir paketin sürümünü desteklemiyordur. Hata metnindeki gereksinimi okuyup PHP'yi ya da paket sürümünü buna göre seçin.
- Allowed memory size exhausted: Komutu COMPOSER_MEMORY_LIMIT=-1 composer update biçiminde çalıştırın ya da php.ini'de memory_limit değerini artırın.
Composer'la Sonraki Adımlar
PHP projelerinin büyük kısmı bir veritabanıyla çalışır. Composer ile kurduğunuz bir veritabanı katmanını bağlamadan önce MySQL kurulumu rehberimizle yerel sunucunuzu hazırlayabilirsiniz. Daha fazla PHP içeriği için php etiketi sayfasına bakın.
Düzgün kurulmuş bir bağımlılık yönetimi, bir kurumsal web sitesi ya da ödeme ve kargo servislerine bağlanan bir entegrasyon projesinin yıllar içinde güvenle güncellenebilmesini sağlar. Aurora Yazılım'ın e-ticaret altyapısı da hazır tema kullanmadan, her firmaya özel tasarımla geliştirilir.
Sık Sorulan Sorular
01Composer'ı her proje için ayrı kurmam gerekir mi?
Hayır. Composer bilgisayarınıza bir kez genel olarak kurulur. Her proje kendi composer.json ve vendor klasörüne sahiptir; paketler projeden projeye ayrı kurulur. Composer indirdiği paketleri önbellekte tuttuğu için ikinci projede kurulum daha hızlı biter.
02composer install ile composer update arasındaki fark nedir?
composer install, composer.lock dosyasındaki sürümleri birebir kurar ve kilit dosyasını değiştirmez. composer update ise sürüm kurallarına göre daha yeni sürümleri arar ve kilit dosyasını günceller; bu yüzden sunucularda install kullanılır.
03Paylaşımlı hostingde Composer kullanılabilir mi?
Barındırma firmanız SSH erişimi veriyorsa çoğu zaman kullanılabilir. SSH yoksa bağımlılıkları yerelde composer install --no-dev ile kurup vendor klasörünü dosya aktarımıyla yüklemek bir çözümdür; PHP sürümlerinin uyumlu olduğundan emin olun.
PHP'yi doğru eklentilerle kurup Composer'ı PATH'e eklediğinizde, bağımlılıkları composer install ile dakikalar içinde yönetebilir, PSR-4 ile düzenli bir kod yapısı kurabilirsiniz. İşletmenize özel, bakımı kolay bir PHP tabanlı sistem ya da web uygulaması istiyorsanız Aurora Yazılım'ın özel yazılım çözümlerini inceleyin veya bizimle iletişime geçin.


