Giriş: Composer Neden Önemli?
Modern PHP geliştirmenin kalbinde yer alan Composer, PHP projeleri için bir bağımlılık yöneticisidir. Projelerinizin ihtiyaç duyduğu kütüphaneleri ve paketleri (örneğin, bir veritabanı soyutlama katmanı, bir test çerçevesi veya bir günlük kaydı aracı) kolayca yönetmenizi, kurmanızı ve güncellemenizi sağlar. Composer sayesinde, her kütüphaneyi manuel olarak indirmek ve projenize dahil etmek yerine, sadece bir yapılandırma dosyası (composer.json) ile tüm bağımlılıkları tanımlayabilir ve Composer’ın gerisini halletmesini sağlayabilirsiniz.
Bu rehber, Debian 11 “Bullseye” işletim sistemi üzerinde Composer’ı hızlı ve etkili bir şekilde nasıl kuracağınızı adım adım açıklamaktadır. Debian 11, kararlılığı ve geniş paket desteği ile sunucu ortamlarında sıkça tercih edilen bir dağıtımdır. Bu hızlı başlangıç kılavuzu ile, PHP projelerinizi modern bağımlılık yönetimi araçlarıyla donatmaya anında başlayabileceksiniz.
Composer’ın sunduğu başlıca avantajlar:
- Bağımlılık Yönetimi: Projelerinizin ihtiyaç duyduğu tüm kütüphaneleri tek bir yerden yönetir.
- Otomatik Yükleme (Autoloading): Kütüphanelerinizi projenize manuel olarak dahil etme zahmetinden kurtarır.
- Sürüm Kontrolü: Kütüphanelerin belirli sürümlerini kullanmanızı ve çakışmaları önlemenizi sağlar.
- Kolay Güncelleme: Tüm bağımlılıkları tek bir komutla güncelleyebilirsiniz.
Ön Gereksinimler: Başlamadan Önce
Composer kurulumuna başlamadan önce Debian 11 sisteminizin bazı temel gereksinimleri karşıladığından emin olmalısınız. Bu adımlar, sorunsuz bir kurulum süreci için kritik öneme sahiptir.
Sudo Yetkisi ve Güncel Sistem
Composer’ı sistem genelinde kurmak için yönetici (root) yetkilerine ihtiyacınız olacaktır. Bu rehberde kullanılan tüm komutlar, sudo öneki ile çalıştırılacaktır. Ayrıca, sistem paket listelerinizi ve kurulu paketlerinizi güncel tutmak iyi bir uygulamadır:
sudo apt update
sudo apt upgrade -y
apt update komutu paket listelerini güncellerken, apt upgrade -y komutu kurulu paketleri en son sürümlerine yükseltir ve tüm sorulara otomatik olarak “evet” yanıtı verir.
PHP CLI ve Gerekli Eklentiler
Composer, PHP ile yazılmış bir uygulamadır, bu nedenle sisteminizde PHP’nin komut satırı arayüzü (CLI) sürümünün kurulu olması gerekir. Ayrıca, Composer’ın ve çoğu PHP kütüphanesinin düzgün çalışması için bazı PHP eklentilerine ve yardımcı programlara ihtiyaç duyulur. Aşağıdaki komut, gerekli tüm bileşenleri kuracaktır:
sudo apt install -y php-cli php-zip php-xml php-mbstring git curl unzip
Bu komutun kurduğu bileşenler ve neden gerekli oldukları:
php-cli: PHP komut satırı arayüzü. Composer’ın çalışması için temel gereksinimdir.php-zip: ZIP arşivlerini yönetmek için PHP eklentisi. Composer, bağımlılıkları sıkıştırılmış dosyalar olarak indirip açmak için buna ihtiyaç duyar.php-xml: XML verilerini işlemek için PHP eklentisi. Bazı paketlerin ve Composer’ın kendisinin XML yapılandırmalarını okuması gerekebilir.php-mbstring: Çok baytlı dizeleri (multi-byte strings) işlemek için PHP eklentisi. Çoğu modern PHP uygulaması ve kütüphanesi için önemlidir.git: Versiyon kontrol sistemi. Composer, paketleri genellikle Git depolarından çeker.curl: Komut satırı HTTP istemcisi. Composer yükleyicisini indirmek için kullanılır.unzip: ZIP dosyalarını açmak için bir yardımcı program.
Kurulum tamamlandıktan sonra, PHP sürümünüzü kontrol ederek PHP CLI’nin doğru şekilde kurulduğundan emin olabilirsiniz:
php -v
Çıktıda Debian 11’in varsayılan PHP sürümünü (genellikle PHP 7.4 veya daha yenisi) görmelisiniz.
Composer Kurulum Adımları
Ön gereksinimleri tamamladığınıza göre, Composer’ı Debian 11 sisteminize kurmaya hazırsınız. Bu adımlar, Composer’ı sistem genelinde kullanılabilir hale getirecektir.
1. Composer Yükleyicisini İndirme
Composer, kendi resmi web sitesinden indirilebilen küçük bir PHP betiği aracılığıyla kurulur. Bu betik, Composer’ın en son kararlı sürümünü indirir ve sisteminize yerleştirir.
curl -sS https://getcomposer.org/installer | php
Bu komutu açıklayalım:
curl -sS https://getcomposer.org/installer: Bu kısım, Composer yükleyici betiğinigetcomposer.orgadresinden indirir.-s(silent): cURL’ün ilerleme çubuğunu ve hata mesajlarını göstermemesini sağlar.-S(show-error): Sessiz modda bile bir hata oluşursa cURL’ün hata mesajını göstermesini sağlar.
| php: Bu kısım bir “pipe” (boru) operatörüdür. cURL’ün çıktısını (yani indirilen PHP betiğini) doğrudanphpkomutuna girdi olarak yönlendirir. Böylece betik, indirilip bir dosyaya kaydedilmeden doğrudan PHP yorumlayıcısı tarafından çalıştırılır.
Bu komutun başarıyla çalışmasının ardından, mevcut dizininizde composer.phar adında bir dosya oluşacaktır. Bu dosya, Composer’ın çalıştırılabilir PHAR (PHP Archive) dosyasıdır.
2. Composer’ı PATH’e Taşıma
Şu anda composer.phar sadece indirildiği dizinde çalıştırılabilir (örneğin, php composer.phar komutuyla). Composer’ı herhangi bir dizinden sadece composer yazarak çalıştırabilmek için, onu sisteminizin PATH değişkeninde yer alan bir dizine taşımanız gerekir. En yaygın ve önerilen konum /usr/local/bin dizinidir.
sudo mv composer.phar /usr/local/bin/composer
Bu komut:
sudo mv: Yönetici yetkileriyle dosyayı taşır.composer.phar: Az önce indirdiğimiz Composer çalıştırılabilir dosyası./usr/local/bin/composer: Dosyanın yeni konumu ve adı. Burada.pharuzantısını kaldırarak komutun daha kısa ve anlaşılır olmasını sağlıyoruz.
Artık Composer, sisteminizde global olarak erişilebilir olmalıdır.
3. Çalıştırma İzinlerini Ayarlama (Gerekliyse)
mv komutu genellikle doğru izinleri korur, ancak her ihtimale karşı, Composer dosyasının yürütme (çalıştırma) iznine sahip olduğundan emin olmak iyi bir uygulamadır:
sudo chmod +x /usr/local/bin/composer
chmod +x komutu, belirtilen dosyaya çalıştırma izni verir.
Kurulumu Doğrulama ve Temel Kullanım
Composer’ı başarıyla kurduğunuza göre, kurulumu doğrulamak ve temel bir örnekle nasıl kullanılacağını görmek isteyebilirsiniz.
Composer Sürümünü Kontrol Etme
Herhangi bir terminal penceresinden aşağıdaki komutu çalıştırarak Composer’ın doğru şekilde kurulduğunu ve PATH’inizde olduğunu doğrulayabilirsiniz:
composer --version
Eğer kurulum başarılıysa, Composer’ın sürüm numarasını gösteren bir çıktı almalısınız, örneğin:
Composer version 2.x.x YYYY-MM-DD HH:MM:SS
Bu çıktıyı görüyorsanız, tebrikler! Composer Debian 11 sisteminizde başarıyla kurulmuştur.
İlk Composer Projenizi Oluşturma (Monolog Örneği)
Şimdi Composer’ın nasıl çalıştığını pratik bir örnekle görelim. Popüler bir günlük kaydı kütüphanesi olan Monolog’u projemize dahil edeceğiz.
- Yeni bir proje dizini oluşturun ve içine girin:
mkdir my-first-composer-project cd my-first-composer-project - Monolog’u projenize ekleyin:
composer require monolog/monologBu komut, Monolog kütüphanesini ve onun bağımlılıklarını projenize indirir. Çalıştırdığınızda şunları fark edeceksiniz:
composer.json: Projenizin bağımlılıklarını tanımlayan bir dosya oluşturulur.composer.lock: Bağımlılıkların tam sürümlerini kilitleyen bir dosya oluşturulur.vendor/: Tüm indirilen kütüphanelerin saklandığı bir dizin oluşturulur.
- Basit bir PHP betiği oluşturun:
index.phpadında bir dosya oluşturun ve içine aşağıdaki kodu yapıştırın:pushHandler(new StreamHandler('app.log', Logger::WARNING)); // Log mesajları gönderin $log->info('Bu bilgilendirici bir mesajdır.'); // Bu log dosyasına yazılmayacak (seviye WARNING'den düşük) $log->warning('Bu bir uyarı mesajıdır.'); $log->error('Bu bir hata mesajıdır!'); echo "Log kayıtları app.log dosyasına yazıldı.\n"; ?> - Betiği çalıştırın:
php index.phpKomut satırında “Log kayıtları app.log dosyasına yazıldı.” mesajını görmelisiniz. Ayrıca, projenizin kök dizininde
app.logadında yeni bir dosya oluştuğunu ve içinde Monolog tarafından kaydedilen uyarı ve hata mesajlarını içerdiğini göreceksiniz.cat app.logBu, Composer’ın bağımlılıkları nasıl yönettiğini ve
vendor/autoload.phpdosyasının kütüphaneleri projenize nasıl otomatik olarak dahil ettiğini gösteren temel bir örnektir.
Composer’ı Güncelleme ve Sorun Giderme
Composer’ın kendisi de düzenli olarak güncellenir ve yeni özellikler veya hata düzeltmeleri alabilir. Ayrıca, kurulum veya kullanım sırasında bazı yaygın sorunlarla karşılaşabilirsiniz.
Composer’ı Güncelleme
Composer’ın en son sürümüne sahip olmak için aşağıdaki komutu kullanabilirsiniz:
composer self-update
Bu komut, Composer’ın kendisini güncelleyerek en yeni kararlı sürümünü indirir ve mevcut composer çalıştırılabilir dosyasının üzerine yazar. En iyi performansı ve güvenliği sağlamak için Composer’ı düzenli olarak güncellemeniz önerilir.
Yaygın Sorunlar ve Çözümleri
Composer kullanırken karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri:
composer: command not foundNeden: Composer çalıştırılabilir dosyası ya doğru PATH dizinine taşınmamıştır ya da PATH değişkeniniz Composer’ın bulunduğu dizini içermiyordur.
Çözüm:
sudo mv composer.phar /usr/local/bin/composerkomutunu doğru çalıştırdığınızdan emin olun.sudo chmod +x /usr/local/bin/composerkomutuyla çalıştırma izni verdiğinizden emin olun.- Terminal oturumunuzu yeniden başlatmayı deneyin.
- PHP Sürümü veya Eksik Eklentiler
Neden: Composer, projenizin veya bağımlılıklarınızın gerektirdiği PHP sürümüyle veya gerekli PHP eklentileri olmadan çalışmayabilir.
Çözüm:
php -vile PHP sürümünüzü kontrol edin.php -mile kurulu PHP eklentilerini kontrol edin.- Eksik eklentileri
sudo apt install -y php-komutuyla kurun (örneğin,php-curl,php-gd). - Birden fazla PHP sürümü kuruluysa, Composer’ı belirli bir sürümle çalıştırmak için
/usr/bin/php7.4 /usr/local/bin/composer installgibi bir komut kullanmanız gerekebilir.
- Bellek Limiti Sorunları
Neden: Özellikle büyük projelerde veya çok sayıda bağımlılık içeren durumlarda, PHP’nin bellek limiti yetersiz kalabilir.
Çözüm:
- Geçici olarak bellek limitini artırmak için:
php -d memory_limit=-1 /usr/local/bin/composer install(veyacomposer installyerine başka bir Composer komutu). - Kalıcı olarak artırmak için: PHP’nin
php.inidosyasını düzenleyin (genellikle/etc/php/7.4/cli/php.inigibi bir konumda bulunur) vememory_limitdeğerini artırın (örneğin,memory_limit = 512Mveyamemory_limit = -1sınırsız bellek için). Değişikliklerden sonra PHP servisini yeniden başlatmanız gerekebilir (eğer web sunucusu için de geçerliyse, CLI için genellikle gerekmez).
- Geçici olarak bellek limitini artırmak için:
- İzin Sorunları
Neden: Composer’ın proje dizininde dosya oluşturma veya değiştirme yetkisi olmayabilir.
Çözüm:
- Proje dizininizin ve içindeki dosyaların doğru kullanıcıya ait olduğundan emin olun:
sudo chown -R $USER:$USER /path/to/your/project. - Dizin ve dosya izinlerini kontrol edin:
chmod -R 755 /path/to/your/projectveyachmod -R 644 /path/to/your/project/files.
- Proje dizininizin ve içindeki dosyaların doğru kullanıcıya ait olduğundan emin olun:
Sonuç
Bu rehberde, Debian 11 sisteminizde Composer’ı hızlı ve kolay bir şekilde nasıl kuracağınızı öğrendiniz. PHP CLI ve gerekli eklentileri kurmaktan, Composer yükleyicisini indirmeye ve onu sistem PATH’inize taşımaya kadar tüm adımları tamamladık. Ayrıca, Composer’ın temel kullanımını bir Monolog örneğiyle gösterdik ve yaygın sorun giderme ipuçlarını paylaştık.
Composer, modern PHP geliştirme iş akışının vazgeçilmez bir parçasıdır. Onu projelerinize dahil ederek, bağımlılık yönetimini basitleştirecek, geliştirme sürecinizi hızlandıracak ve daha organize, sürdürülebilir PHP uygulamaları oluşturabileceksiniz. Artık PHP projeleriniz için Composer’ın gücünden tam anlamıyla faydalanmaya hazırsınız!
Sıkça Sorulan Sorular (SSS)
Q1: composer.json dosyası nedir?
A1: composer.json, projenizin bağımlılıklarını ve diğer meta verilerini (proje adı, açıklama, yazar bilgileri vb.) tanımlayan bir JSON dosyasıdır. Composer, bu dosyayı okuyarak hangi paketlerin hangi sürümlerinin kurulması gerektiğini anlar.
Q2: composer.lock dosyası nedir?
A2: composer.lock dosyası, composer.json dosyasında tanımlanan bağımlılıkların tam sürümlerini ve onların bağımlılıklarının tam sürümlerini kilitler. Bu, projenizi farklı ortamlarda (örneğin, geliştirme, test, üretim) kurarken her zaman aynı bağımlılık sürümlerinin kullanılmasını garanti eder, bu da tutarlılık ve hata önleme açısından kritik öneme sahiptir.
Q3: vendor/ dizinini Git’e commit etmeli miyim?
A3: Genellikle vendor/ dizinini Git’e commit etmeniz önerilmez. Bunun yerine, .gitignore dosyasına /vendor ekleyerek bu dizini versiyon kontrolünden hariç tutmalısınız. Projenizi klonlayan herkes, composer install komutunu çalıştırarak composer.lock dosyasında belirtilen tüm bağımlılıkları yeniden kurabilir.
Q4: Composer’ı kaldırmak için ne yapmalıyım?
A4: Composer’ı kaldırmak oldukça basittir. Sadece yüklediğiniz çalıştırılabilir dosyayı silmeniz yeterlidir:
sudo rm /usr/local/bin/composer
Ayrıca, projelerinizdeki vendor/ dizinlerini ve composer.json/composer.lock dosyalarını da manuel olarak silebilirsiniz.
Q5: Composer’ı global olarak değil, sadece belirli bir projede kullanabilir miyim?
A5: Evet, Composer’ı global olarak kurmak yerine, her projeye özel olarak indirebilirsiniz. Bunun için, bir projenin kök dizininde curl -sS https://getcomposer.org/installer | php komutunu çalıştırın. Bu, o dizine composer.phar dosyasını indirecektir. Ardından, Composer komutlarını php composer.phar şeklinde çalıştırabilirsiniz. Bu yöntem, farklı projeler için farklı Composer sürümlerine ihtiyaç duyduğunuzda faydalı olabilir.
