Composer, PHP için bağımlılık (dependency) yönetim aracıdır. Projenizin ihtiyaç duyacağı ve composer’ ın arşivinde olan kütüphaneleri composer.json dosyasına uygun formatta eklersiniz ve tek bir komut ile, kütüphaneler indirilip, projenizde olması gereken yere eklenir. Daha detaylı kullanımını yazımın devamını bulabilirsiniz. Ayrıca yapacağım anlatım geniş örnekli olacak, sadece composer nasıl kurulur ? kullanılır ? değil, composer’ la edineceğim kütüphanelere projemde ne şekilde ihtiyaç duyduğumu da örnekleyeceğim ki, konuyu okuyan herkes composer’ ı aktif olarak kullanabilen bir konuma gelsin.

“PHP Composer Kurulumu”

Aşağıdaki anlatım %90 oranında Ubuntu ve Mac OS için ortakdır. Farklılık gösteren yerleri belirttim.

Öncelikle sisteminizde “curl”, “php5-cli” ve en tabiki php5′ in kurulu olması gerekiyor. Eğer kurulu değilseler, Ubuntu kullanıcıları aşağıdaki komut ile Mac Os kullanıcıları ise tercih ettikleri paket yöneticisi (brew, port) ile kurulum gerçekleştirebilirler. Ayrıca Mac Os kullanıcılarının çoktan Xcode’ u da sistemlerine yüklemiş olmaları gerektiğini de hatırlatırım.

Gereksinimleri yükledikten sonra, Composer’ ı indirip kurabiliriz.

Ubuntu Kullanıcıları için;

Mac Os kullanıcıları için;

İşlemler bittikten sonra terminali kapatıp tekrardan açın. Komut satırına aşağıdaki komutu yazıp çalıştırın.

Karşınıza aşağıdakine benzer bir çıktı geldiyse, işlem tamamlanmış demektir.

“Composer ile bağımlıkları Yönetmek”

Burada yolumuz ikiye ayrılıyor. Composer’ ı, sıfırdan yarattığınız bir projede bağımlılıkları edinmek için mi kullanacaksınız yoksa composer ile bağımlılıkları belirlenmiş bir projenin bağımlılıklarını mı edineceksiniz ? Umarım kafa karıştırıcı olmamıştır bu yazdığım. Çünkü gerçekten işler çok ama çok basit. Aşağıda bu anlattıklarımı hemen örnekliyorum.

Sıfırdan proje başlatıcam ve bu projede kullanacağım kütüphaneleri composer ile edinip yöneteceğim

Her projenin olmazsa olmazıdır, url’ lerin SEO Friendly olması. Bunun için neye ihtiyacım var ? Projeme eklediğim herhangi bir içeriğin başlığını alıp SEO Friendly bir url’ e dönüşterecek bir kütüphaneye. Yani slug yapacağım. İhtiyacım olan kütüphaneyi bulabilmek için Composer’ ın paket yönetim sitesi https://packagist.org/ a giriyorum ve arama slug yazıyorum. Karşıma bir sürü sonuç geliyor. Bu kütüphanelerden en çok indirileni seçmeniz yararınıza olacaktır. Lakin tek kriter bu değil. Çünkü karşınıza çıkan kütüphaneler, sadece bir belirli bir framework üzerinde çalışabilecek yapıda olabilirler. Bu yüzden en doğrusunu seçmeniz gerekiyor. Ben yapıcağım örnekte framework kullanmayacağım için https://packagist.org/packages/cocur/slugify adresindeki kütüphaneyi seçiyorum.

  • Projem için bir klasör açıyorum ve içine giriyorum
  • Şimdi seçtiğim kütüphaneyi projeme bağımlılık olarak ekleyeceğim ve eklediğim gibi otomatik olarak kütüphane indirilmeye başlanacak. Bu işlem için kalıp komut “composer require paketismi” şeklindedir. Yani;

    Komutu yazdıktan sonra aşağıdakine benzer mesajlar belirecektir.

    Mesajların anlamı, öncelikle istediğim kütüphanenin hangi versiyonunun kullanıldığını belirtti. Ardından artık composer ile yöneteceğim bağımlılıklarımın not edildiği composer.json dosyası oluşturuldu. Bağımlılıklarım yüklendi. Ama en önemlilerinden biri de autoload dosyaları yaratıldı.
  •  Şimdi klasörümüzün içinde dikkat edilmesi gereken 2 dosya var. composer.json ve vendor klasörü. composer.json dosyasını artık anladık ki bağımlıklarımız burada not ediliyor. Çok güzel bir noktadayız! En başta yolumuz 2 ye ayrılıyor demiştim ya. İşte şuan yolun diğer kısmına geçtik. Artık composer ile bağımlılıkları yönetilen bir projemiz oldu. Bu şu demek oluyor. Projenizi herhangi bir mecrada (github.com, forumlar, vb) paylaşırken, composer ile indirilmiş olan bağımlılıklarınızın dosyalarını paylaşmayacaksınız. Projenizin içinde sadece, size özgü kodlar + composer.json dosyası olacak. İnsanlar projenizi edindiklerinde çalışır hale getirebilmek için aşağıdaki anlatımı takip etmelisiniz.
  • Bağımlıkları composer ile yönetilen bir proje bağımlılıkları yükleyeceğim

Evet, sıfırdan bir proje composer nasıl kullanılırı yukarıda anlattıktan sonra, ortak noktaya geldik. Composer kullanılmış bir proje var. Bağımlılıklar nasıl yüklenecek ? Projenin içine girip ki girdiğiniz klasörde composer.json dosyası olması gerekiyor. Aşağıdaki komutu yazın.

Tüm bağımlılıklar yüklenecektir.

“Bağımlılıklar Yüklendi, Peki nasıl kullanılacaklar ?”

İşin en basit, iyiki composer kullanmışım dedirten ve aynı zamanda da işleyişin anlaşılması gerektiği kısmındayız.

Gördüğünüz üzere tüm kütüphaneler vendor klasörü altına yüklendi. Projeniz çalışırken bu kütüphanelerin dahil edilmesi gerekiyor. PHP’ de başka bir php dosyasını projenize dahil etmenin yolu require özelliğini kullanmaktır. Peki kütüphanelerin tüm dosyalarını tek tek require ile projeye dahil mi edeceğiz ? Tabiki hayır. Composer vendor klasörü altında autoload.php adında bir dosya oluşturdu. Adından da anlaşılacağı üzere, sadece bu dosyayı projemize dahil ediyoruz ve bu dosyada gerekli tüm dosyaların dahil edilmesini sağlıyor. Aşağıdaki örneği inceleyelim;

Bu dosyayı test.php olarak kaydediyoruz. Ardından komut satırına girip, projeminizin içine gidiyoruz. Ve bu dosyayı çalıştırıyoruz.

Ekran çıktısı aşağıdaki gibi oluyor.

Bu şekilde içeriklerim için slug oluşturabilir hale geldim hazır bir kütüphane ile.

Framework ile autoload

Eğerki popüler PHP Frameworklerinden birini kullanıyorsanız, require işlemi otomatik olarak framework tarafından gerçekleştirilir. Yani aşağıdaki komutu eğerki framework kullanıyorsanız yazmamalısınız.

Onun dışında herşey aynı devam etmelidir.

Bağımlılıkları güncellemek

Komut satırında projenizine girip, aşağıdaki komutu yazdığınızda bağımlılıklarınız güncellenecektir.

Kolay gelsin 🙂

Leave A Comment

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