İçerik
Önceki yazımda Composer’ın ne olduğuna ve nasıl kurulduğuna değinmiştim, şimdi ise nasıl kullanılır onu anlatmak istiyorum. Yazıyı okumaya devam etmeden önce kurulum yapmanızı öneririm.
Devam etmeden önce Windows’ta yaptığınızda direkt composer
komutu ile çağırabilir olduğunuz için öyle yazıyorum duruma göre;
1 |
php composer.phar [komut] |
olarak da çağırabilirsiniz. Bunun için composer.phar
dosyasını getcomposer.org adresinden indirip proje dizinine atmanız gerekiyor (direk buradan da indirebilirsiniz).
Eğer Windows’taysanız ve komut satırına php
yazınca hata alıyorsanız, PHP.exe’nin olduğu yeri PATH
’ler arasina eklemeniz gerekiyor. Eğer hata alıyorsanız; Çalıştır‘a (Win + R)
1 |
control sysdm.cpl,,3 |
yazıp entera basın, Sistem Özellilkleri (System Properties) açılacak oradan Ortam Değişkenleri… (Environment Variables…) buttonuna basın ve açılan pencerede aşağıdaki ya da yukarıdaki kısımda bulunan Path’e çift tıklayarak açın. Ardından, eğer Windows 10’da iseniz yeni bir kayıt eklemeye, önceki sürümlerdeyseniz açılan metin kutusunun sonuna PHP.exe‘nin bulunduğu dizinin yolunu yapıştırın (öncesine noktalı virgül eklemeniz gerekebilir, oraya biraz incelerseniz rahatça anlarsınız zaten)
Eğer sizde direkt composer
yazınca gelmiyorsa, benim direk composer olarak çağırdığımı siz, sizde çalıştığı şekliyle kullanarak ilerlersiniz.
Composer Nasıl Kullanılır
Başlangıç
Composer’u kullanmaya başlamak için tek ihtiyacınız, proje dizininizde composer.json
adında bir JSON dosyası olması (bazı durumlarda otomatik oluşamadığı için kendiniz oluşturmanız daha sağlıklı). Bu JSON dosyasının içinde ihtiyaç duyulan paketler ve versiyon bilgisi, varsa private repository yolları gibi bilgiler tutuluyor.
Örneğin:
1 2 3 4 5 |
{ "require": { "monolog/monolog": "1.0.*" } } |
composer.json
dosyasının içine yapıştırın ve kaydedin. Ardından bu dizinde bir terminal (cmd – command promt) penceresi açın ve;
1 |
composer install |
yazıp enterlayın. Composer otomatik olarak sizin için vendor klasörü oluşturacak, monolog‘u ve monolog için gerekli olan paketleri sizin için indirecek ve ardından gereksinim(ler)inizin için vendor dizinine autoload.php
adında bir PHP dosyası oluşturacak. Her paketi (kütüphaneyi) tek tek include ya da require etmek yerine siz sadece autoload.php
’yi require etseniz yeterli olacak.
1 |
require __DIR__ . '/vendor/autoload.php'; |
Monolog’un Logger örneğiyle devam edecek olursak;
Öncelikle composer.json
dosyamızı yukarıdaki gibi doldurduk (require monolog yazan yer), ardından terminale (komut satırına) composer install yazdık ve gerekli paketlerin inmesini bekledik. İşlem başarıyla biterse vendor diye bir dizin ve içine ‘composer‘ ve ‘monolog‘ adında iki klasör, ‘autoload.php‘ diye bir PHP dosyası oluşmuş olması gerekiyor.
Not: Terminal veya komut satırında proje dizininde olmanız gerekiyor. Bunun için Windows’ta boş cd
linux veya macintosh’ta pwd
yazarak aktif olduğunuz yeri görebilir ve cd
komutu ile proje dizininize gidebilirsiniz.
index.php’yi oluşturalım, ve içine aşağıdaki kodları yapıştırıp kaydedelim.
/index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php require __DIR__ . '/vendor/autoload.php'; use Monolog\Logger; use Monolog\Handler\StreamHandler; use Monolog\Handler\FirePHPHandler; // Logger'i olusturalim $logger = new Logger('my_logger'); // Biraz handler ekleyelim $logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG)); $logger->pushHandler(new FirePHPHandler()); // artik Logger'i kullanabilirsiniz $logger->addInfo('Loggerimiz kullanima hazir'); |
Sayfayı çalıştırdığınızda my_app.log
adında bir dosya oluşacak ve içinde
1 |
[2016-09-07 10:46:03] my_logger.INFO: Loggerimiz kullanima hazir [] [] |
yazacak. Okuyup yaparken yavaş bir işlemmiş gibi geliyor fakat kullanacağınız paketleri bilip composer.json dosyanızı hızlıca hazırlarsanız zamanla çok kullanışlı olduğunu göreceksiniz.
Bu sadece kurulum aşamasıydı elbette. Kullandığımız paketlere güncelleme geldiğinde otomatik güncellemek için yapmamız gereken sadece
1 |
composer update |
yazmak. Composer sizin için paketleri otomatik olarak güncelleyecektir. Benim gibi kendi repositorylerinizden çekecekseniz ve bir çok projede güncelleme yapacaksanız dosyaları tek tek güncellemenize gerek kalmaksızın composer’dan yardım alabilirsiniz.
Sürüm Seçimi
Yukarıda yaptığımız monolog kurulumunda sadece 1.0.* yani 1.0.[en üst versiyon] çağırdık. Development versiyonunu kurmak için dev-master
, spesifik bir versiyonu çağırmak için direk versiyonu ya da en üst kararlı versiyonu çağırmak için asteriks *
yazabilirsiniz.
Spesifik versiyonu kullanma;
1 2 3 4 5 |
{ "require": { "monolog/monolog": "1.0.3" } } |
Development versiyonunu kullanma;
1 2 3 4 5 |
{ "require": { "monolog/monolog": "dev-master" } } |
Son kararli sürümü kullanma;
1 2 3 4 5 |
{ "require": { "monolog/monolog": "*" } } |
JSON Dosyası Oluşturmadan Başlangıç
Windows, Macintosh, Linux ayırt etmeksizin bazı durumlarda hata oluşmakta, bu hata genelde güvenlik/izin ile ilgili hatalardır. Eğer izinsel bir problem bulunmamakta ise komut satırını kullanarak direk başlangıç yapabilirsiniz. Şahsen daha çok komut satırı kullanan birisi olduğum için tavsiye edeceğim yöntem de bu…
composer help
yazarak tüm composer komutlarını görebilirsiniz, ben sadece en ihtiyaç duyacaklarınızı göstereceğim.
require
1 |
composer require [argüman] yayinci/paket [versiyon] |
Argüman belirtimi zorunlu değildir. Alabileceği argümanların hepsini değil, sadece çok kullandıklarım olan --dev
ve --no-dev
i açıklayacağım diğerlerine buradan bakabilirsiniz;
–dev: Paketi require-dev
e ekler.
–no-dev: Güncellerken require-dev
deki paketleri es geçer.
yayıncı/paket
kısmında ise öncelikle (bildiğim kadarıyla) varsa VCS’lerinize, daha sonra packagist.org‘daki paketlere bakarak arama yapar.
versiyon
argümanı da zorunlu değildir. Belirtmezseniz son stabil versiyonu hedef alır.
Bir kaç örnek yapalım;
1 2 3 |
composer require ahmetertem/query_builder composer require monolog/monolog dev-master composer require --dev ahmetertem/query_builder |
install
install
komutu require
’dan farklıdır. Install sadece hazır composer.json
dosyasındaki belirtilmiş paketleri kurmanıza yarar ve güncelleme işlevi yoktur. Yani eğer kurulum yaptıysanız kurulum yaptıklarınızı yeniden işlemeye çalışmaz (eğer farklı versiyon hedef göstermediyseniz tabîi), sadece kurulu olmayanları kurar.
require
’da olduğu gibi parametrelere sahiptir. İncelemek için buraya bakabilirsiniz.
update
Adı üstünde güncelleme için kullanılır, eğer install yapmadıysanız install
işlemi de yapar. Yine install
ve require
’da olduğu gibi parametrelere sahiptir, onun için ise buraya bakabilirsiniz.
Özel repositoryler için composer konusuna bir sonraki yazımda değineceğim. Buraya kadar olan kısımla ya da composer ile ilgili başka bir sorunuz varsa yorum atabilirsiniz ;)
Kolay gelsin
Composer Nedir, Nasıl Kurulur, Kullanılır - Ahmet Ertem
[…] ile ilgili daha detaylı kullanım için “composer nasıl kullanılır?” yazımı […]
OS X'e Composer Kurmak - Ahmet Ertem
[…] ile ilgili yeterince konustugumu dusunmuyorum (yazi 1, yazi 2), nitekim kahramanlardan bahsetmekte her zaman fayda var :) Bu kez MacOS’ta nasil kuruluru […]