Composer Nedir, Kurulumu ve Kullanımı

Composer, Php için bağımlılık yönetimini sağlamaya yarayan araçtır. Kullanılan paketlerin/kütüphanelerin kurulmasını ve güncellenmesini sağlar. Nils Adermann ve Jordi Boggiano tarafından geliştirilmiş ve 2012 yılının mart ayında yayınlanmıştır. Node.js npm’den ve Ruby bundler’dan esinlenmişlerdir. Komut satırı(terminal/cli) üzerinden kullanılır ve dört temel komutu bulunur.

require: İstenilen bir paketi composer.json dosyasına ekler ve kurar
install: composer.json dosyasında bulunan tüm paketleri kurar
update: composer.json dosyasında bulunan tüm paketleri günceller
remove: İstenilen bir paketi composer.json dosyasın siler ve paketi kaldırır

Kurulum

Composer resmi sitesinde, farklı işletim sistemleri için kurulum yönergeleri bulunmaktadır. Dikkat edilmesi gereken, composer’ı işletim sistemine global olarak kurmaktır. Bu yöntemle daha kolay bir kullanım sağlanacaktır. Kurulum sonrasında aşağıdaki komutla kontrol sağlanabilir.

composer -v

Kullanım

Örnek kullanım olması için dotenv kütüphanesini kuralım ve kullanalım. Kütüphane proje genelinde kullanacağımız değişkenleri “.env”(genelde) dosyası üzerinden tanımlamak ve ihtiyaç duyulan yerlerde kullanmak için geliştirilmiş. Kütüphaneyi kurmak için aşağıdaki komutu çalıştırıyoruz.

composer require vlucas/phpdotenv

Bu komut, yoksa proje kök dizininde composer.json ve composer.lock dosyalarını ve vendor klasörünü oluşturur. Şimdi .env ve index.php dosyalarını oluşturalım.

ORNEK_DEGISKEN="Merhaba Dünya!"
<?php

require __DIR__ . '/vendor/autoload.php'; // composer ile gelen autoloader

use Dotenv\Dotenv; // kurduğumuz dotenv kütüphanesini dahil ediyoruz

$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();

var_dump($_ENV['ORNEK_DEGISKEN']);

Kapanış

Php’nin temel konusu olan composer’ı kısaca anlatmaya çalıştım. Elbette daha anlatıması gereken konuları vardır. Yazıya ilgi ve soru gelirse genişletmeye çalışacağım. Yorumlarınızı bekliyorum. Paylaşmayı unutmayın 🙂

Bir yanıt yazın

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

Time limit is exhausted. Please reload CAPTCHA.