PHP Composer Nedir ve Nasıl Kullanılır?

PHP programlama dilini kullanarak geliştirilen uygulamalarda, diğer programlama dilleriyle geliştirilen uygulamalardaki gibi pek çok kütüphane ve bağımlılık kullanılır. Kullanılan bu kütüphaneler, projeye include(dahil) edilerek proje dosyalarında rahatlıkla kullanılır. Ancak kullanılan bu kütüphanelerde yapılan güncellemeler, değişiklikler maalesef projemize otomatik olarak yansımaz.

Kullandığımız paketlerdeki, kütüphanelerdeki ciddi revizeler – kod değişiklikleri gerçekleştiğinde bunların bizim projemizde de güncel kalmasını istediğimizde problemler yaşarız. Yaşanan bu sorunu tekrardan kütüphaneyi indirip, tekrardan proje dosyalarıma dahil ederek çözerim  dediğinizi duyar gibiyim 🙂 Peki yüzlerde hatta binlerce kütüphane için de mi aynı şeyi yapacaksınız? 🙂 İşte tam da bu noktada composer imdadımıza yetişiyor.

PHP Composer Nedir?

İngilizce karşılığı dependency management olarak geçen composer’ın türkçe meali ise paket yöneticisi veya bağımlılık yöneticisidir. PHP’de bağımlılıkları(paketleri) yüklemek ve otomatik olarak güncellenebilmesi için kullanılan hayat kurtarıcı bir araçtır 🙂 Ruby dilinde Bundler, Python’da pip, Node.js’de npm neyse PHP’de de composer aynı işlevi görmektedir.

Composer Kurulumu

Composer kurulumunu,  https://getcomposer.org adresinden rahatlıkla yapabilirsiniz.

Windows için Composer Kurulumu

Windows işletim sisteminde composer kurulumu için şuraya tıklayın. Ardından bu sayfada Composer-setup.exe dosyasını göreceksiniz. Bu dosyayı indirdikten sonra windows’taki diğer programların yüklenmesi gibi klasik next->next diyerek işlemlerinize devam edin. Ve yükleme işlemini tamamlayın.

Composer’ın bilgisayarınıza yüklü olup olmadığını cmd komut satırına aşağıdaki kodu yazarak görebilirsiniz.

composer --version

MacOs için Composer Kurulumu

MacOs için kullanımda ise tamamen terminalden yardım alabilirsiniz. İlk olarak bilgisayarınızdaki terminalinizi açıp, aşağıdaki komutu çalıştırın.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Yukarıdaki komut sayesinde “composer-setup.php” dosyasını kurmuş olduk. Şimdi ise sıra bu dosyayı çalıştırmaya geldi.

php composer-setup.php

Son olarak composer-setup.php dosyasını silelim ve composer’ın bilgisayarımıza kurulup kurulmadığını versiyonunu kontrol ederek gerçekleştirelim.

php -r "unlink('composer-setup.php');"
composer --version

Composer Nasıl Kullanılır?

Composer kullanımını detaylı şekilde ele alalım:

Öncelikle terminalden proje dosyalarınızın bulunduğu dizine gelin. Bu dizine geldikten sonra aşağıdaki komutu çalıştırarak, projenize bağımlılıklarınızı(paketlerinizi) yükleyin.

composer require paket-adi

Örnek olması açısından, ben yazımızın devamında log tutmak için aşağıdaki kütüphaneyi yükleyip kullanacağım.

composer require psr/log

Yukarıdaki komutu çalıştırdıktan sonra proje dosyamızda “vendor” adında bir dizin ve “composer.json” dosyası oluşur. Bu dizinin altında yüklenen kütüphane dosyaları ve “autoload.php” dosyası bulunur. Siz kurduğunuz paketleri, kütüphaneleri projelerinizde kullanabilmek için “autoload.php” dosyasını, projelerinize dahil etmelisiniz.

“composer.json” dosyasının içine girdiğinizde ise projenize dahil ettiğiniz bağımlılıkları ve bu bağımlılıkların versiyonlarını görmüş olursunuz.

composer.json dosyasının içeriği:

{
    "require": {
        "psr/log": "^1.1"
    }
}

Ayrıca kullandığınız paketlerinize gelen güncellemeleri de aşağıdaki şu komutla sağlıyoruz.

composer update

Composer kullanımı genel hatlarıyla bu şekildedir 🙂 Artık projelerinizde ayrı ayrı internetten kütüphaneleri bulup indirmek yerine, composer kullanıp gelen güncellemelerde de rahat etmenizi sağlayabilirsiniz 🙂

ÖNEMLİ BİLGİLENDİRME: Peki projenizde kullanmak isteyebileceğiniz bu paketleri nereden bulacaksınız? Bunun için php paket deposu(php package repository) olarak geçen https://packagist.org/ adresinden faydalanabilirsiniz. Arama kutusuna yazacağınız neredeyse her kelimeye karşılık gelen bir kütüphane bulmanız olasıdır 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir