PHP

Composer nedir? Nasıl Kurulur?

Composer nedir? Nasıl kurulur?

Giriş

Web geliştiricilerin karşılaştıkları birçok sorun, projenin bağımlılıkları (dependencies) ile ilgilidir. Hepimiz projelerimize yeni paketlerin entegrasyonunu sağlarken, olması gerekenden daha fazla sorun oluştuğunu gördük.

Bu durum özellikle PHP geliştiricileri için daha sık görülür. Bu nedenle geliştiricilerin bazı temel modülleri sürekli sıfırdan yazdığı görülür. Sonuç ise bu tür gereksiz görevler için çok fazla kaynak kaybıdır. Halbuki bu sorunlar mevcut çözümler tarafından ele alınabilir.

Composer nedir?

Composer’la tanışın – PHP için zarif ve basit bir bağımlılık yöneticisidir. Bazılarınız Python için PIP veya Node.js için NPM gibi benzer bağımlılık yöneticilerine zaten aşina olabilir. Basitçe söylemek gerekirse; Composer, projenizin tüm bağımlılıklarını tek bir yerde düzene sokacaktır.

Composer’ın, PEAR gibi diğer bağımlılık yönetim çözümlerinden ayıran düzgün bir özelliği, bağımlılıkları proje bazında çözebilme becerisidir. Composer, projelerinizin her biri için ayrı bağımlılıkları yönetir. Bu, projelerinizde kullanılmayan kütüphaneler olmayacağı anlamına gelir – proje boyutunu kontrol altında tutmak açısından bir bonustur.
Bununla birlikte, Composer’ı kullanarak paketleri sistem çapında yükleyebilirsiniz. Bu, özel bir global komut vasıtasıyla yapılır, ancak bu kılavuzda basitlik ve kolaylık amaçlarıyla buna girmeyeceğiz.

Bu rehberde, Composer nedir, nasıl kurulur ve kullanılır öğreneceksiniz. Adım adım bu rehberi takip etmeniz yeterlidir.

Nelere ihtiyacınız olacak?

Başlamadan önce aşağıdakilere ihtiyacınız vardır:

  • Komut satırı arayüzüne erişim

Adım 1 – Composer kurulumu

İlk ve en kolay adım, Composer’ı sisteminize kurmanızdır. Burada, hem Linux hem de Windows için Composer yükleme adımlarını bulacaksınız ve Hostinger’ın paylaşılan hosting sistemine nasıl kuracağınızı da öğreneceksiniz. Mac kullanıcıları umutsuzluğa kapılmayın: Sadece terminalinizi açın ve Linux adımlarını takip edin. Composer kurmanın üç farklı yöntemi aşağıda listelenmiştir.

Seçenek 1 – Paylaşılan Hosting Sunucularında Composer Kurulumu

ÖNEMLİ:Composer şimdi Hostinger Premium ve Business planlarına önceden yüklenmiştir. Hostinger’ın paylaşımlı hosting planlarını kullanıyorsanız, bu bölümü atlayabilir ve composer.json oluşturma ve anlama adımına geçebilirsiniz.

Composer’ı, paylaşılan hosting planlarına kolaylıkla yükleyebilir ve çalıştırabilirsiniz! En yeni Composer sürümünü otomatik olarak indirip yüklemek için bir komut dosyası kullanacağız:

  1. Öncelikle SSH ile hosting hesabınıza bağlanmanız gerekir. Bunu nasıl yapacağınızla ilgili talimatları burada bulabilirsiniz.
  2. Şimdi nano metin editörü kullanarak yeni bir dosya oluşturun ve composer-installer.sh olarak adlandırın:
    nano composer-installer.sh
  3. Yukarıdaki komut, nano metin editörünü açacaktır. Dosyaya aşağıdaki kodu yapıştırın:
    #!/bin/sh
    
    EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig)
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');")
    
    if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
    then
        >&2 echo 'ERROR: Invalid installer signature'
        rm composer-setup.php
        exit 1
    fi
    
    php composer-setup.php --quiet
    RESULT=$?
    rm composer-setup.php

    Bu kod, en son çıkan Composer sürümünü indirir, imzasını kontrol eder ve imza geçerliyse yüklemeye devam eder.

  4. Değişiklikleri kaydedin ve sırasıyla CTRL (MacOS için CMD) + X tuşlarına, Y ve ENTER tuşlarına basarak nano metin düzenleyicisinden çıkın.
  5. Şimdi dosyayı aşağıdaki komutu kullanarak çalıştırın:
    sh composer-install.sh
  6. Kurulum başarılı olursa, herhangi bir çıktı göremezsiniz. Composer yükleme işleminin başarılı olduğunu teyit etmek için şunu girin:
    composer
  7. Buna benzer bir çıktı görmelisiniz:
       ______
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                        /_/
    Composer version 1.3.2 2017-01-27 18:23:41

    Yukarıdaki çıktıdan görebileceğiniz gibi Composer başarıyla yüklendi!

Seçenek 2 – Linux/MacOS üzerinde Composer kurulumu

Çoğu PHP geliştiricisi, geliştirme için Mac’lerini veya Linux tabanlı işletim sistemlerini kullanır. Dolayısıyla bu seçenek okuyucularla daha ilgili bir hal alır. İşlem her iki işletim sisteminde de çok benzer. Composer edinmek için sisteminizin terminalinde aynı komutları çalıştırmanız gerekir.

Not: Öğrenme uğruna, bu seçenekte komut dosyası yerine ayrı komutlar kullanacağız. Bu komutların bir kısmı, Composer’ın yeni bir sürümü her yayınlandığında değişecektir. Bu nedenle, devam etmeden önce bu sayfayı kontrol etmeyi unutmayın.

Composer’ı yüklerken Linux/Mac kullanıcıları için iki seçenek vardır:

Yerel Kurulum

En yaygın seçenek değildir, ancak Composer’ı yerel olarak yüklemeyi seçebilirsiniz. Bu, işletim sisteminizin Composer’ı herhangi bir yerden çalıştıramayacağı anlamına gelir; Yüklendiği yeri belirtmeniz gerekecektir. Bunu yapmak için aşağıdaki adımları izleyin:

  1. Terminalinizi açın veya sunucuya SSH ile bağlanın.
  2. Aşağıdaki iki komutu çalıştırın:
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

    İlk komut Composer yükleyiciyi bir PHAR (PHP Arşivi) dosyası olarak alırken; ikincisi, yükleyicinin herhangi bir hatadan veya bozulmadan kurtulmasını sağlar. Bu komutları çalıştırdıktan sonra, en yeni Composer yükleyicisine sahip olacaksınız.

  3. Komut kullanarak Composer’ı yükleyin:
    php composer-setup.php --install-dir=bin --filename=composer

    Yükleme dizinini ve dosya adını -install-dir ve -filename parametreleri ile değiştirebilirsiniz. Burada dizinin bin olarak adlandırıldığını görebilirsiniz ve çalıştırılabilir dosya Composer tarafından yüklenir.

  4. Composer’ı kurduğunuza göre, aşağıdaki komutu yazarak çalıştırabilirsiniz:
    php bin/composer

Global Kurulum

Yerel kurulumdan sonra, Composer’ı global olarak erişilebilir hale getirmenizi öneririz. Bu, Composer’ın yol ne olursa olsun sisteminizdeki herhangi bir yerden çalıştırılmasını sağlayacaktır. Bunu, PATH değişkeninize Composer ekleyerek yapıyoruz.

Bunu yapmak için:

  1. Yerel Kurulum‘daki talimatları izleyin.
  2. Daha sonra aşağıdaki komutu çalıştırın:
    sudo mv composer.phar /usr/local/bin/composer

    Artık, Composer’ı terminaldeki geçerli yolunuzdan bağımsız olarak çalıştırabilirsiniz.

  3. Besteci’yi çalıştırmak için şu komutu çalıştırın:
    composer

Tebrikler! Composer’ı sisteminize başarıyla yüklediniz.

Seçenek 3 – Windows’da Composer kurulumu

Çoğu diğer programın kurulumunda olduğu gibi, Composer’ı kullanmaya başlamak bir Windows makinesinde çok daha basittir. Composer’ı indirip yüklemek için hiçbir komut satırı talimatına gerek yoktur. Bu adımları izlemeniz yeterlidir:

Websitenizi barındırmanın daha iyi bir yolunumu arıyorsunuz?

Websitenizi 7/24 özel desteğe sahip en hızlı hosting platformuna taşıyın.

  1. En yeni Composer sürümünü buradan indirin.
  2. İndirildikten sonra, sihirbazı çalıştırın ve Composer’ı yüklemeniz yeterlidir. Süreç açıktır ve birkaç dakikadan fazla sürmemelidir.Composer Nedir? Composer Windows Kurucu
  3. Kurulumu tamamladıktan sonra, komut satırını açın. Açmak için CTRL + R tuşlarına basın, cmd yazın ve Tamam butonuna basın.Windows Komut Satırı
  4. Komut satırına şunu yazın:
    composer
    

Windows bilgisayarınıza Composer yüklediniz. Yükleyici, PATH değişkeninize Composer ekleme ile otomatik olarak ilgilenir. Komut satırını açabilir ve Composer’ı istediğiniz yerden çalıştırabilirsiniz.

Adım 2 – Composer.json dosyasını oluşturmak ve anlamak

Şimdi ilginç kısım geliyor – Composer’ı PHP projenizde ilk defa kullanıyorsunuz. Bunu başarmak için, proje için bir composer.json dosyası oluşturmanız gerekir. Bu dosya, Composer’ın bir arama listesi olarak düşünülebilir; Yalnızca projenizde bu dosyada bahsedilen paketler (bağımlılıklar) indirecektir.

Paketle projenizin sürüm uyumluluğunu da kontrol ettiğini unutmayın. Bu, projenizde daha eski bir paket kullanıyorsanız, composer.json dosyasının gelecekteki herhangi bir rahatsızlıktan kaçınmak için size bilgi vereceği anlamına gelir.
Ayrıca, composer.json dosyasını kendiniz oluşturup güncelleme seçeneğine sahipsiniz. Ancak, gereksiz görevleri otomatik hale getirme konusundaki bir rehberde, dosyayı manuel olarak oluşturmanız biraz ironik olabilir.

Bir örnek proje oluşturarak composer.json‘ın kullanışlılığını sergileyelim. Projemiz basit bir PHP zamanlayıcıdır: belirli bir kod parçasının ne kadar süre çalıştırılacağını bulmak isteyen geliştiriciler için. Bu, hata ayıklama ve optimizasyon amaçları için son derece yararlıdır. Bunu yapmak için aşağıdaki adımları izleyin:

  1. Proje için yeni bir dizin oluşturun. Projemiz bir zamanlayıcı olduğundan phptimer olarak adlandıracağız. Bunu yapmak için, terminali açın ve aşağıdaki komutu yazın:
    mkdir phptimer
  2. Yeni oluşturulan dizine aşağıdaki komutu kullanarak girin:
    cd phptimer
  3. Artık bir pakete veya PHP’de bir zamanlayıcıyı uygulamış olan bir kütüphaneye ihtiyacınız var. Composer paketlerini bulmak için en iyi yer, Composer için oluşturulan paketlerin resmi hedefi olan Packagist‘tir. Bu rehberde, bir zamanlayıcı paketine/kütüphanesine ihtiyacımız var. Bunu yapmak için arama çubuğuna ‘timer’ yazmanız yeterlidir:packagist arama
  4. Gördüğünüz gibi, sitede bulunan birkaç zamanlayıcı mevcuttur. Her bir paketin bir adı vardır ve yaptığı işin küçük bir açıklaması vardır. Her bir paketin önünde, indirme sayısı ve ayrıca GitHub yıldız sayısı bulunur. En çok indirilen ve en çok GitHub yıldızına sahip olduğu için, phpunit / php-timer ile (listede 7. sırada) devam edelim. Her paketin aşağıdaki biçimde olduğunu unutmayın:
    vendor/package [phpunit/php-timer]
    Buna namespace de denir. Farklı paketleri tanımlamak için kullanılan namespace, Packagist’deki her bir paket için benzersiz olmalıdır.
  5. Hangi paketin yükleneceğine karar verdikten sonra, Composer’a seçiminizi bildirmeniz yeterlidir. Böylece onu projenize ekleyebilirsiniz. Bunu yapmak için, terminalde aşağıdaki komutu yazın:
    composer require phpunit/php-timer

Yukarıdaki komutu çalıştırdıktan sonra, Composer, vendor adlı yeni bir klasörün yanı sıra proje dizininizde iki yeni dosyayı (composer.json ve composer.lock) oluşturacaktır.

Composer, tüm paketlerinizi ve bağımlılıklarınızı vendor dizininde depolar. Bunu bilmek, tüm paketleri bir sistemden diğerine tekrar indirmek zorunda kalmadan kopyalamak isteyenler için yararlıdır. Dosyaları manuel olarak taşımak, composer.json dosyasını kendinizin güncellemeniz zorunda kalacağınız anlamına gelir ve önerilmez. Composer’ın bağımlılıklarla kendisinin ilgilenmesine izin verin. Bir şey daha var: Git’i veya başka bir Sürüm Kontrol Sistemi’ni (VCS) kullanıyorsanız, vendor klasörünü repo’nuza eklememelisiniz.

Paket sürümlerinden söz ederken, yukarıdaki komutun çıktısının ilk satırında Composer tarafından indirilen phpunit / php-timer sürümü belirtilir. Bizim durumumuzda şunu okumalısınız:

Using version ^1.0.9 for phpunit/php-timer

Caret (^) işareti, Composer tarafından ‘maksimum birlikte işlerlik’ için bir seçenek olarak tanımlanır. Bu, yalnızca bir versiyonun önünde işareti göründüğünde, Composer, paketi bir şekilde bozmayan herhangi bir güncellemeye izin vereceği anlamına gelir. Bizim durumumuzda, Composer paketin >=1.0.9 ve  <2.0.0 aralığında güncellemelerine izin verecektir, zira 2.0.0 uyumluluğu geriye atacaktır. Composer’da sürüm oluşturma hakkında ayrıntılı bir okuma için dokümantasyon sayfasını ziyaret edin.

Adım 3 – Autoload kodunu kullanmak

Eğer buraya kadar geldiyseniz, gerisi artık çok kolaydır. Bağımlılıklarınız kuruldu ve projeniz neredeyse hazır.

Artık bu bağımlılıkları PHP komut dosyanıza yüklemelisiniz. Composer’ın otomatik yükleme dosyası olmasaydı bu işlem gereksiz yere zaman alırdı. Dosya, projenizin vendor dizininde bulunur. Bu tek dosyayı PHP betiğinize dahil etmek, proje için yüklenen her paketin betik tarafından görülebilmesini sağlar.

Otomatik yüklemeyi gerçekleştirmek için, komut dosyanızdaki yeni değişkenleri bildirmeden veya örneklendirmeden önce aşağıdaki satırı yazmanız yeterlidir:

require 'vendor/autoload.php'

Daha iyi bir fikir vermek için örnek bir komut dosyası aşağıda verilmiştir:

require 'vendor/autoload.php'
PHP_Timer::start();
// your code
$time = PHP_Timer::stop();
var_dump($time);
print PHP_Timer::secondsToTimeString($time);

Senaryoyu çalıştırın. Yürütme sonrası, aşağıdakine benzer bir çıktı görüntülemelidir:

double(1.0967254638672E-5)
0 ms

Adım 4 – Proje gereksinimlerini güncelleme

Geriye kalan tek şey paketlerinizi nasıl güncelleyeceğinizi bilmenizdir. Bu, iki yoldan biriyle yapılabilir:

  • Evrensel Güncelleştirme
    Bütün paketleriniz ve bağımlılıklarınız için güncellemeleri kontrol etmek, yüklemek için terminalde aşağıdaki komutu yazın:

    composer update
  • Pakete Özgü Güncelleştirme
    Bazen belirli paketlerle ilgili güncellemeleri kontrol etmek isteyebilirsiniz. Sorun değil, komutu aşağıda verilen biçimde çalıştırmanız yeterlidir:

    composer update vendor/package vendor2/package2

Vendor/package’ı, güncellemek istediğiniz paketin adıyla değiştirmeyi unutmayın.

Güncelleme komutunu çalıştırdığınızda, Composer composer.json ve composer.lock dosyalarını proje bağımlılıklarınızın mevcut durumuyla eşleşecek şekilde günceller.

Sonuç

Bu rehberde composer nedir, nasıl kurulur ve kullanılır öğrendik. Geliştiriciler bağımlılık yönetimini kendileri çözmek zorunda kalmamalı ya da başkaları tarafından bir milyon kez daha önce çözülmüş olan sorunlara ilişkin kendi çözümlerini geliştirmemelidir. Mevcut açık kaynaklı çözümleri alıp projelerine kolaylıkla dahil edebilmelidirler.

Bu yüzden Composer, web geliştiriciliğinde çok kullanışlı bir silahtır. Bağımlılıkları çözmek için daha fazla değerli saat harcamanıza gerek kalmayacak. Bunun yerine, projenizin diğer alanlarında o zaman ve enerjiden yararlanacaksınız.

Yorum Ekle

Yorum göndermek için buraya tıklayın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Dünya çapında binlerce aboneye katılın

ve mükemmel fırsatlarla en yeni rehberler e-posta adresinize gelsin

Please wait...

Abone olduğunuz için teşekkürler!

Şimdi kazanmaya başlayın!

Hepsi bir arada web hosting & alan adı yalnızca

6
25 TL
/ay