Composer konusunda fazla Türkçe kaynak göremedim onun için burada Composer hakkında bir kaç şey anlatmak istedim. Composer’ın özelliklerinden bir tanesi, yazılımınızın veya kütüphanenizin ihtiyaç duyduğu diğer kütüphaneleri belirtebilmenizdir. Yani siz yaptığınız projenin nelere bağlı olduğunu, hangi kütüphanelere ihtiyaç duyduğunu belirtirsiniz ve Composer sizin için bunları indirir, kurar. Siz kullanıcıya yazılımınızı verirken içerisine bu ek kütüphaneleri eklemek zorunda kalmazsınız. Bu bağımlılıklardan bir taneside PHP versiyonunu belirtebilmeniz. Sizin yazılımınız minimum PHP 5.3 sürümünde çalışıyor ve kullanıcı 5.2 sürümüne sahip ise yazılımınız yüklenmez ve sizde bu ek yükü sırtınızdan atmış olursunuz. Diğer özelliği ise kullanıcının kütüphaneyi veya yazılımı kolayca güncelleyebilmesine olanak sağlaması. Siz her güncelleme yaptığınızda kullanıcıya adım adım neler yapmasını söylemek zorunda değilsiniz. Tek yapmanız gereken güncellemeyi yapmak ve yayınlamak. Kullanıcı basit bir adımla sizin yazılımınızı ve sizin yazılımınızın ihtiyaç duyduğu parçaları tek satırlık bir komutla günceller. Diğer özelliği ise kullanıcı için otomatik yükleyici sağlamak. Siz kullanıcıya kütüphanenizin nasıl kullanılacağını anlatırken, hangi dosyaları include etmesi gerektiğini anlatmak zorunda kalmazsınız. Bunları da composer halleder. Kullanıcı sadece
require_once 'vendor/autoload.php'
yapar ve herşey çalışmaya başlar 🙂 . Hangi kütüphane neyi kullanıyor, hangi dosyaları include etmem gerekli diye düşünmez.
Kullanımı
composer.json dosyası
composer.json kütüphane klasörünüzün en üst dizininde olması gerekiyor. Bu dosya paketiniz hakkında açıklamalar ve gereksinimleri belirtmeye yarar. Örnek bir dosya içeriği;
{
"name": "cangelis/auth",
"description": "Bir kullanici login mekanizmasi",
"authors": [
{
"name": "Can Gelis",
"email": "geliscan@gmail.com"}
],
"require": {
"simple-validator/simple-validator": "dev-master",
"php": ">=5.3.0"
}
}
name
paketinizin adını gösterir. Buraya dilediğiniz yazabilirsiniz. <sağlayıcı>/<paket-adi>
formatında yapabilirsiniz tamamen size kalmış.
require
kısmı ise diğer hangi composer paketlerine ihtiyaç duyduğunuzu gösterir. “dev-master” ise o ihtiyaç duyulan paketin hangi versiyonun kullanılması gerektiğini söyler. Ayrıca minimum hangi php versiyonunda çalıştığını burada belirtebiliyoruz. Diğer kısımlar ise gayet açık.
Yükleme
Yükleme yapmak için composer php
programına ihtiyaç duyuyor. Eğerki composer kullanacaksanız zaten php programı sizde mevcut 🙂 Eğerki windows kullanıcısıysanız php.exe dosyasını bulup PATH’e ekleyin (Googledan araştırabilirsiniz). Daha sonra konsol aracılığı ile proje klasörünüze gidin. Mesela;
$ cd /var/www/kutuphane
daha sonra konsol üzerinden
$ php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
komutunu çalıştırın. Daha sonra composer.json’daki yaptıklarınızı çalıştırmak için.
$ php composer.phar install
yapmanız yeterli. Gereken kütüphaneler vendor/autoloader.php aracılığı ile kullanılabilir. Yani tek yapmanız gereken bu dosyayı include etmek.
Güncelleme yapmak
İhtiyaç duyduğunuz paketleri güncellemek isterseniz tek yapmanız gereken;
$ php composer.phar update
Siz bir güncelleme yaptığınızda ve sizin paketinizi başkaları kullanıyor ise onlarda bu komut ile paketin en güncel haline ulaşabileceklerdir.
Paketinizi yayınlamak
Başkaları sizin paketinize ihtiyaç duyabilir. Bu yüzden sizde paketinizi yayınlamak isteyebilirsiniz 🙂 . Composer paketleri https://packagist.org/ adresinde bulunur. Yüklenmeye hazır bir paket sunmak istiyorsanız paketinizi buraya Git, SVN veya HG aracılığı ile buraya yüklersiniz. Detaylı bilgi için; http://getcomposer.org/
Merhaba,
Bu güzel dokuman için teşekkür ettim. file_get_contents() içinde verdiğimiz url, https olduğu için, php.ini de open_ssl.dll aktif etmemiz gerekiyor.
İyi Çalışmalar.
Terminal özelliği karşılaştırmak için soruyorum, Bower gibi “bower init” komutu yok mu acaba. bu bower.json dosyasını oluşturuyor. bower’da kütüphane indirirken –save ile json ayarlarına kütüphane kaydedilebiliyor. bunda varsa da göremedim.
Bu blogu yazdığımda yoktu diye hatırlıyorum ancak artık var.
composer.phar init
ile oluşturabilir.composer.phar require "vendor/paket":"version"
şeklinde kütüphane eklemesi yapabilirsiniz.teşekkürler
yazı için teşekkürler
Merhaba, konsol aracılığı ile diyorsunuz ya bu bizim bildiğimiz komut sistemi mi yani cmd. Bir de güncelleme yaparken hangi dizinde bulunmamız gerekiyor?
Evet bildiğimiz cmd 🙂 Güncelleme yaparken
composer.json
ile aynı dizinde olmanız gerekiyor.Elinize sağlık
Yazı için teşekkürler. Çok işime yaradı..