Takip et

Giriş: Composer Neden Önemli?

Giriş: Composer Neden Önemli? Modern PHP geliştirmenin kalbinde yer alan Composer, PHP projeleri için bir bağımlılık yöneticisidir. Projele

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ğini getcomposer.org adresinden 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ğrudan php komutuna 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 .phar uzantı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.

  1. Yeni bir proje dizini oluşturun ve içine girin:
    mkdir my-first-composer-project
    cd my-first-composer-project
            
  2. Monolog’u projenize ekleyin:
    composer require monolog/monolog
            

    Bu 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.
  3. Basit bir PHP betiği oluşturun:

    index.php adı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";
    
    ?>
            
  4. Betiği çalıştırın:
    php index.php
            

    Komut satırında “Log kayıtları app.log dosyasına yazıldı.” mesajını görmelisiniz. Ayrıca, projenizin kök dizininde app.log adı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.log
            

    Bu, Composer’ın bağımlılıkları nasıl yönettiğini ve vendor/autoload.php dosyası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:

  1. composer: command not found

    Neden: 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/composer komutunu doğru çalıştırdığınızdan emin olun.
    • sudo chmod +x /usr/local/bin/composer komutuyla çalıştırma izni verdiğinizden emin olun.
    • Terminal oturumunuzu yeniden başlatmayı deneyin.
  2. 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 -v ile PHP sürümünüzü kontrol edin.
    • php -m ile 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 install gibi bir komut kullanmanız gerekebilir.
  3. 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 (veya composer install yerine başka bir Composer komutu).
    • Kalıcı olarak artırmak için: PHP’nin php.ini dosyasını düzenleyin (genellikle /etc/php/7.4/cli/php.ini gibi bir konumda bulunur) ve memory_limit değerini artırın (örneğin, memory_limit = 512M veya memory_limit = -1 sı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).
  4. İ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/project veya chmod -R 644 /path/to/your/project/files.

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.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.