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

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/

9 thoughts on “PHP: Composer Nedir? Nasıl Kullanılır?

  1. Savaş YILDIRIM

    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.

    Reply
  2. mehmet

    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.

    Reply
    1. Can Geliş Post author

      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.

      Reply
  3. Mehmet

    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?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax