sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa CMS & Uygulamalar PHP Kurulumu PHP Composer Nedir? Kurulumu ve Kullanımı
🐘 PHP Kurulumu

PHP Composer Nedir? Kurulumu ve Kullanımı

PHP Composer global kurulumu, composer.json yapılandırması, temel komutlar, PSR-4 autoload ve Laravel ile kullanım rehberi.

📅 28 Mayıs 2025 👁 15 görüntülenme ⏱ 4 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

PHP Composer Nedir?

Composer, PHP için bağımlılık yönetim aracıdır. Projenizin kullandığı kütüphaneleri (paketleri), bunların sürümlerini ve birbirlerine olan bağımlılıklarını otomatik olarak yönetir. Packagist.org, Composer için ana paket deposudur ve 400.000'den fazla paketi barındırır.

Composer olmadan PHP projesinde farklı kütüphaneleri manuel indirmek, güncellemek ve yükleme sırasını doğru ayarlamak büyük güçlük çıkarır. Composer bu sorunları çözerek modern PHP geliştirmenin vazgeçilmez aracı haline gelmiştir. Laravel, Symfony, WordPress ve diğer popüler PHP çerçeveleri Composer ile yönetilir.

Composer Kurulumu

Global Kurulum (Önerilen)

# PHP kurulu olduğundan emin olun
php -v

# Kurulum scripti indir ve doğrula
curl -sS https://getcomposer.org/installer | php

# Sisteme global taşı
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

# Sürümü doğrula
composer --version

Daha Güvenli Kurulum (İmza Doğrulamalı)

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === file_get_contents('https://composer.github.io/installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Proje Bazında (Yerel) Kurulum

cd /var/www/myproject
curl -sS https://getcomposer.org/installer | php
# ./composer.phar olarak kullanın
php composer.phar install

composer.json Dosyası

Her Composer projesi bir composer.json dosyasına sahiptir:

{
    "name": "mycompany/myproject",
    "description": "Projem",
    "type": "project",
    "require": {
        "php": "^8.1",
        "guzzlehttp/guzzle": "^7.0",
        "monolog/monolog": "^3.0",
        "vlucas/phpdotenv": "^5.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^10.0",
        "friendsofphp/php-cs-fixer": "^3.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "test": "phpunit",
        "cs-fix": "php-cs-fixer fix src"
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}

Temel Composer Komutları

# Yeni proje başlat
composer init

# Paket kur (en güncel uyumlu sürüm)
composer require guzzlehttp/guzzle

# Belirli sürüm kur
composer require monolog/monolog:^3.0

# Geliştirme bağımlılığı ekle
composer require --dev phpunit/phpunit

# Tüm bağımlılıkları kur (composer.json'a göre)
composer install

# Production için (dev paketler hariç)
composer install --no-dev --optimize-autoloader

# Paketleri güncelle
composer update

# Belirli paketi güncelle
composer update monolog/monolog

# Paketi kaldır
composer remove guzzlehttp/guzzle

# Mevcut paketleri listele
composer show

# Paket hakkında bilgi
composer show monolog/monolog

Autoload Kullanımı

Composer'ın autoload özelliği, sınıfları manuel olarak dahil etme gerekliliğini ortadan kaldırır:

<?php
// Tüm Composer bağımlılıklarını yükle
require_once __DIR__ . '/vendor/autoload.php';

// Artık doğrudan kullanabilirsiniz
use GuzzleHttp\Client;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$client = new Client();
$logger = new Logger('app');
$logger->pushHandler(new StreamHandler('app.log', Logger::DEBUG));
$logger->info('Uygulama başladı');
?>

PSR-4 Autoload ile Kendi Sınıflarınız

mkdir -p src/Controllers src/Models

nano src/Controllers/HomeController.php
<?php
namespace App\Controllers;

class HomeController {
    public function index(): string {
        return "Merhaba Dünya!";
    }
}
?>
# Autoload yenile
composer dump-autoload
composer dump-autoload --optimize  # Production için

Laravel ile Composer

# Yeni Laravel projesi
composer create-project laravel/laravel myapp

# Laravel paketi ekle
cd myapp
composer require laravel/sanctum
composer require spatie/laravel-permission

# Artisan komutları çalıştır
php artisan key:generate
php artisan migrate

composer.lock Dosyası

composer.lock, tam paket sürümlerini kilitler ve tüm ortamlarda tutarlı kurulum sağlar:

# composer.lock'u GIT'e ekleyin (uygulama projeleri için)
git add composer.lock
git commit -m "composer.lock eklendi"

# ASLA composer.lock'u .gitignore'a eklemeyin (uygulama projelerinde)
# Kütüphane projelerinde ise .gitignore'a ekleyin

Sık Karşılaşılan Sorunlar

Memory Limit Hatası

COMPOSER_MEMORY_LIMIT=-1 composer install
# veya
php -d memory_limit=-1 /usr/local/bin/composer install

"minimum-stability" Uyarısı

composer require paket/adi --ignore-platform-reqs

Sonuç

PHP Composer'ı global kurulum, composer.json yapılandırması, temel komutlar ve PSR-4 autoload ile etkin kullanmayı öğrendiniz. Composer modern PHP geliştirmenin temel taşıdır ve Laravel başta olmak üzere tüm büyük PHP çerçevelerinin vazgeçilmez aracıdır.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.