Composer Nedir, Ne İşe Yarar, Nasıl Kullanılır ?

Merhaba arkadaşlar,

Bu yazımda ve videomda sizlere Composer’dan, kurulumundan ve kullanımından temel anlamda bahsedeceğim. Ama önce belirtmem gereken bir şey var: Ben Windows kullanıcısı olmadığım için Windows üzerine nasıl Composer kurulacağını bilmiyorum ama hatırladığım kadarıyla kendi yükleyicisi vardı Windows için. Yükleme işlemini yapamazsanız başka kaynaklara bakmanızı öneririm. Ama kullanım için aşağıda oluşturduğum başlıklar işinizi görecektir. Kullanımında bir değişiklik yok diye biliyorum. Lafı fazla uzatmadan başlıklarımızı vereyim hemen:

Başlıklarımızı açıklamadan önce isteyenler burdan bu konu hakkındaki videomu da izleyebilir.

Composer ve Packagist Nedir, Ne İşe Yarar ?

Composer PHP için kullanılan bir bağımlılık yöneticisidir. Peki bağımlılık yöneticisi ya da bağımlılık nedir ? Bunu bir örnekle açıklayayım. Mesela siz projenizde bir sınıf, kütüphane, framework veya herhangi bir bileşen kullanıyorsunuz diyelim. Örnek olarak email göndermek için PHPMailer sınıfını kullanıyorsunuz. PHPMailer dosyanız sizin projenizin bir bağımlılığıdır. Bu dosya olmadan projeniz çalışmayacaktır, hata verecektir. Tek bir sınıf belki bir problem çıkartmayabilir ama kullandığınız hazır sınıflar ve kütüphanelerin sayıları arttıkça bunları yönetmek son derece zor olacaktır. Hangilerinin güncellenmesi lazım, hangileri yok, nerelerden indirebilirim gibi dertlerden kurtulmanız için Composer adında güzel bir araç hazırlanmıştır. Bize de bunu kullanmak düşer. Composer en basit haliyle anlatmak gerekirse projelerinize sınıflar, kütüphaneler vb. bileşenler ekleyip bunları kolayca yönetmenizi sağlayan bir araçtır. Composer’ı ve bağımlılık kavramını anladığınızı varsayarak devam ediyorum. Packagist çıkıyor şimdi de karşımıza. Peki Packagist nedir ?

Packagist ise Composer’ın resmi deposudur. Yani sizin Composer ile tanımlayıp indirip yüklediğiniz paketler bu depo üzerinden indiriliyor. Packagist.org adresine gidip buradan istediğiniz paketlerin de mevcut olup olmadığını araştırabilirsiniz. Packagist ve Composer’ın ne olduğunu artık bildiğimize göre devam edebiliriz.

Composer Nasıl Yüklenir ?

Bildiğim kadarıyla Windows üzerinde otomatik olarak kurabileceğiniz bir yükleyicisi var. Bunu getcomposer.org adresinden bulabilirsiniz ya da buraya tıklayarak bu dosyayı indirebilirsiniz. Mac OS ve Linux sistemler için kurulumu cURL ile yapabiliriz. Bunun için yapmamız gerek tek şey şu komutu terminalimizde çalıştırmak.

curl -sS https://getcomposer.org/installer | php

Bu işlemi yaptığınız zaman aslında arkaplanda şunlar oluyor. getcomposer.org adresindeki installer dosyasını indiriyoruz ve daha sonra içerisindeki kodları derliyoruz. installer dosyamız her ne kadar uzantısı olmasa da PHP ile yazılmış bir dosya. Eğer verdiğim komutun sonundaki ‘| php’ kısmını silip atarsanız sadece installer adlı dosyanın indiğini göreceksiniz ve bu dosyamız da PHP kodları içerdiğinden terminalde ‘php installer’ komutunu verdiğiniz zaman içerisindeki kodlar çalışacak ve size composer.phar dosyasını verecektir.

Kısaca yukarda vermiş olduğum kodu çalıştırdığımızda bu kodlar bize bir composer.phar dosyası verecek. Aslına bakarsanız bu composer.phar dosyamız da bir çeşit PHP dosyası. Bu yüzden bu dosyamızı da php composer.phar diyerek çalıştırabiliriz ama az sonra yapacağımız işlemlerden sonra her seferinde php composer.phar yazmak yerine bunun yerine sadece composer yazarak Composer’ımızı çalıştırabileceğiz. Windows’ta her ne kadar direkt çalıştırabiliyor olsanız da Linux sistemlerde ve Mac OS’ta durum farklı. Bu composer.phar dosyasını belirli bir dizine taşıdıktan sonra bu işlemi yapabiliyoruz. Bunun için şu komutu çalıştırmamız gerekiyor:

mv composer.phar /usr/local/bin/composer

Bu kodumuzu çalıştırdığımız zaman composer.phar dosyamızı composer ismiyle /usr/local/bin/ klasörü içerisine taşıyor. Böylece terminale composer yazarak Composer’ı çalıştırabiliyoruz.

Kurulum işlemimiz bu kadar, şimdi diğer başlığımıza geçebiliriz.

Bağımlılık Nasıl Tanımlanır ve Yüklenir ?

Composer’ımızla bir bağımlılık tanımlamak istediğimizde yapmamız gereken şey composer require dedikten sonra paketimizin adını yazmak. Örnek olarak meşhur template engine Twig’i bağımlılık olarak ekleyelim. İsterseniz öncelikle packagist.org adresinde Twig’i aratalım ve vendor ismini öğrenelim. Maalesef direkt olarak Twig yazdığımızda bağımlılık olarak ekleyemiyoruz, bunun için yayıncısının adıyla birlikte yazacağız. Twig’in yayıncı hesabının adı da Twig. Bu bilgiyi packagis.org adresinden öğrendik. Şimdi bunu bağımlılık olarak tanımlayalım. Terminalde şu komutu çalıştırıyoruz:

composer require twig/twig

Bu işlemi yaptığımız aman Twig template engine bağımlılıklarımız arasına başarılı bir şekilde eklemiş olduk. İsterseniz bunu eklerken özel bir versiyon da verebilirsiniz. Örnek olarak şu anki son sürümü 1.24.2 biz de diyelim ki 1.20 sürümünden daha yeni herhangi bir sürümü indirip yükleyebilirsin. Bunun için komutumuzu şu şekilde yazmamız gerekiyor.

composer require twig/twig:~1.20

Bu kodu çalıştırdığımız zaman bize 1.20’den daha yeni herhangi bir sürümü yükleyemesi lazım. İsterseniz kesin bir sürüm de yazabilirsiniz. Örnek olarak 1.23.3 sürümünü yüklemek istiyorsunuz. Bunun için kodumuzu şu şekilde yazıyoruz:

composer require twig/twig:1.23.3

Tam olarak istediğimiz sürümü de böyle belirtiyoruz. Bağımlılık belirtme olayını da hallettik. Bağımlılıklarımızı indirip yüklemek için de tek yapmamız gereken şu komutu vermek:

composer install

Bu komutu verdiğimizde de bağımlılıklarımız başarılı bir şekilde yükleniyor. Sıradaki başlık lütfen.

Bağımlılıklar Nasıl Güncellenir ?

Bağımlılıkları güncelleme olayımızda şöyle bir durum var. Paketler sizin belirttiğiniz koşullara göre güncelleniyor. Her zaman o paketin son sürümünü yükleyemiyor. Burda birkaç şey var bilmeniz gereken. Örnek olarak Twig’in 1.8 sürümünü yükledik diyelim. composer.json dosyamızda Twig’i bulup bunun versiyonunu 1.8’den 1.8.* yapalım. Şimdi şu komutu çalıştırdığımızda:

composer update

Composer bizim Twig paketinin 1.8.* yani 1.8.herhangi_versiyon’u istediğimizi biliyor. Bu yüzden paketler içerisinde arama yapıyor ve 1.8 ile başlayan en güncel paket ne ise onu yükleyecek. Packagist sitesinden baktığımız zaman en güncel 1.8.3 olduğunu görüyoruz. Bu da demek oluyor ki Composer bizim için 1.8.3 versiyonunu yükleyecek. Ya da composer.json dosyamızda versiyon belirtilirken ~1.8 gibi bir tanımlama yapılmış olsaydı bu sefer de composer update dediğimiz zaman 1.8 sürümünden büyük sürüm hangisiyse onu yükleyecekti. Güncelleme işlemimiz de bu şekilde yapılıyor.

Bağımlılık Nasıl Kaldırılır ?

Herhangi bir paketi kaldırmak için tek yapmanız gereken aşağıdaki komutu kullanmaktır.

composer remove vendor/paket_adi

Paket kaldırma işlemimiz de bu şekilde yapılıyor. Bir kez daha Twig örneğini verelim. Burada Twig paketini kaldırmak istiyorsak bunu vendor ismi ile birlikte yapmamız lazım. Yani şu şekilde:

composer remove twig/twig

Bu şekilde Twig paketini tamamen bağımlılıklarınız arasından kaldırmış oldunuz tebrikler.

Daha fazlası için Composer’ın resmi sitesini ziyaret edebilirsiniz. Ben sadece temel kullanımını anlattım.

Bu derslik bu kadar, içeriği beğendiyseniz aşağıdaki “Thank You” butonuna basarak teşekkür etmeyi unutmayın. Herkese kolay gelsin.

Hayat Kurtarıcılar Mustafa Zahid Efe Yorum Yapılmamış