Composer: PHP Bağımlılık Yönetimi

Tanıtım

Composer PHP için bağımlılık yönetim aracıdır. Projenizle ilişkili kütüphanelerleri yönetmenizi (yükleme/güncelleme) sağlar.

Bağımlılık Yönetimi

Composer Linux işletim sistemlerinde kullanılan Yum veya Apt gibi bir paket yöneticisi değildir. Paketler ve kütüphaneleri kullanır ancak proje tabanlıdır, onları projenizdeki vendor klasörüne yükler. Varsayılan olarak hiçbir şeyi genel (kütüphaneler kullanıcı klasörünüze yüklenir ve oradan kullanılır.) yüklemez. Bu nedenle bağlımlılık yöneticisidir.

Bu düşünce yeni değildir ve Composer Nodejs paket yöneticisi npm ve Ruby paket yöneticisi Bundler’dan ilham almıştır.

Sistem Gereksinimleri

Composer PHP 5.3.2 ve üstü versiyonlarda çalışır.

Composer çoklu platformdur ve Windows, Linux, OSX üzerinde aynı şekilde çalışır.

Kurulum – Linux / Unix / OSX

Çalıştırılabilir Composer’ı Kurulumu

Composer komut satırından direkt olarak çalıştırabileceğiniz kolay kurulum sağlar.

Composer projenize yerel olarak veya sistem üzerinden genel çalıştırabileceğiniz şekilde iki türlü tüklenebilir.

Yerel

Composer proje klasöründe çalıştırılmak istendiğinde yerel olarak kurulur.

Not: Yukarıdaki yöntem işe yaramazsa yükleyiciyi indirmek için php‘yi kullanabilirsiniz.

Yükleyici birkaç php ayarını kontrol edecek ve composer.phar dosyasını proje klasörünüze çekecektir. Bu dosya Composer kütüphanesidir. PHAR (PHP arişivi) komut satırından çalıştırılabilir.

Artık php composer.phar şeklinde çalıştırabilirsiniz.

Genel

Composer PHAR’ı istediğiniz yere koyabilirsiniz. PATH ile tanımladığınız bir yere koydunuzda her yerden ulaşılabilir.

Aşağıdaki komut composer ‘ı sisteminize genel kullnaabileceğiniz şekilde yükleyecek.

Not: mv satırını çalıştırırken yerkilendirmeden dolayı hatayla karşılaştıysanız aşağıdaki şekilde deneyin.

Not: Bazı OSX versiyonlarında /usr klasörü varsayılan olarak mevcut değildir. “/usr/local/bin/composer: No such file or directory” şeklinde bir hata alırsanız işleme devam etmeden önce bu klasörü mkdir -p /usr/local/bin komutuyla elle oluşturun.
PATH ile ilgili data fazla bilgi için Wikipedia makalesini okuyun veya Google’ı kullanın.

Şimdi Composer’ı çalıştırmak için php composer.phar yerine composer kullanabilirsiniz.

Kurulum – Windows

Yükleyiciyi Kullanarak

Bilgisayarınıza compsoer yüklemek için en kolay yoldur.
Composer-Setup.exe dosyasını indirin ve çalıştırın. Composer’ın en son versiyonu yüklenecek ve PATH ayarlarınız yapılacak ve böylece herhangi bir klasörde terminale composer yazarak kullanabileceksiniz.

Note: Açık terminalleriniz varsa kapatın. Test için yeni bir terminal kullanın. PATH değeri yalnızca terminal başladığında alınır.

Elle Yükleyerek

Not: Çalışmasında bir sorun yaşıyorsanız http url kullanın veya php.ini dosyanızdan php_openssl.dll i aktif edin.

composer.phar dosyasının yanında yeni bir composer.bat dosyası oluşturun.

Klasörünüz PATH değişkeninde yoksa ekleyin.

Terminali kapatın. Yeni terminalle test kullanımı:

Temel Composer Kullanımı

Artık kullanmanıza hazır bir Composer’ınız var. Temel kullanım için monolog/monolog kütüphanesini yükleyeceğiz.

composer.json: Proje Hazırlığı

Composer’ı projenizde kullanmadan önce tüm ihtiyacınız olan composer.json dosyasıdır. Bu dosya projenizin bağlımlılıklarını tanımlar ve ön bilgiler de içerebilir.

require Anahtarı

composer.json da belitmeniz gereken ilk (ve sıkça) şey require anahtarıdır. Basitçe Composer’a projenizin bağlı olduğu paketleri söylüyorsunuz.

Göreceğiniz gibi require paket isimlerini (örneğin monolog/monolog) versiyonlara tanımlayan (örneğin 1.0.*) bir obje içerir.

Paket İsimleri

Paket ismi bir sahip (vendor) ve proje isminden oluştur. Bu, eş isimleri önler. İki farklı kullanıcının igorw/json , seldaek/json şeklinde aynı isimde kütüphane oluşturmasını sağlar.

Paket Versiyonları

Örneğimizde Monolog’un 1.0.* versiyonuna ihtiyacımız vardır. Bu 1.0 geliştirme apağındaki herhangi bir bir versiyondur.

Bağımlılıkların Kurulumu

Projenizde tanımlı bağlımlılıkları yüklemek için install komutunu çalıştırın.

Bu işlem monolog/monolog‘un versyion kusıtlamasıyla verilen son versiyonunu vendor klasörüne indirir. Ek paketlerin vendor şeklinde isimlerindirilmiş bir klasöre konulması kolaylık sağlar. Bu durumda Monolog vendor/monolog/monolog içeriğinde olacak.

İpucu: Projenizde git kullanıyorsanız muhtemelen .gitignore dosyanıza vendor ekleyeceksiniz. Tüm kodları proje deponuza eklemek istemezsiniz.

install komutunun composer.lock dosyası oluşturduğu da dikkatinizi çekecek.

composer.lock – Kilit Dosyası

Bağımlıkları yükledikten sonra Composer composer.lock dosyasına yüklenenlerin listesini yazar.

Packagist

Packagist ana Composer deposudur. Bir Composer deposu basitçe bir paket kaynağıdır.
Packagist websitesine giderek paketlere gözatabilir ve arayabilirsniz.
Composer kullanan tüm açık kaynak projeler için paketlerin Packagist’te yayınlanması önerilir.

Otomaik Yükleme (Autoloading)

Otomatik yükleme bilgileri belirtilen kütüphaneler için Composer vendor/autoload.php dosyası üretir. Basiçe bu dosyayı kodunuza dahil edebilir ve uğraşmadan otomatik yükleme yapabilirsiniz.

Bu 3rd Party kodların çok kolay kullanılmasını sağlar. Örneğin: Projeniz Monolog‘a bağımlı olsun, doğrudan onun sınıflarını kullanma başlayabilirsiniz, otomatik yükleneceklerdir.

Kendi kodlarınızı da autoload alanını kullanarak otomatik yükleyiciye ekleyebilrsiniz.

Composer NameSpaceiniz namespace için bir PSR-4 kaydı oluşturacaktır.

Namespace’i klasöre aratan bir yol atarsınız. src klasörü projenizin kök klasöründe ve vendor ile aynı yerde olmalıdır. Örneğin src/ClassIsim.php dosyasının NameSpaceiniz\ClassIsim içermesi.

autolad alanını ekledikten sonra vendor/autoload.php dosyasının tekrar oluşturulması için dump-autoload tekrar çalıştırılmalıdır.

PSR-4 otomatik yüklemeye ek olarak Composer PSR-0 da destekler.

Note: Composer kendi otoyükleyicisini barındırır. Eğer kullanmak istemiyorsanız vendor/composer/autoload_*.php dosyasını codunuza dahil edin ve kendi otomatik yükleyicinizi ayarlayın.