Composer Nedir? Kurulumu ve Kullanımı
PHP ile uygulama geliştirirken kullanılan Composer Paket Yöneticisi nedir, kurulumu ve kullanımı ile ilgili bilgiler yer almaktadır.
Composer nedir?
PHP ile uygulama geliştirirken kullanılan bileşen, sınıf veya eklenti olarak adlandırılan paketlerin yönetimini sağlamaktadır.
PHP ile uygulama geliştirirken uygulamanın daha hızlı tamamlanması için başka geliştiriciler tarafından hazırlanmış paketleri kullanabiliriz.
Örneğin; PHP PDO Kullanımı yazısında anlattığım metotların kullanımı işlevsel gelmeyebilir veya ORM denilen daha kolay bir yapıyı kullanmak isteyebilirsiniz.
Geliştirme sırasında ORM yapısını kendimiz yazabiliriz ancak yazdığımız ORM yapısının esneklik, genişletilebilirdik, kullanılabilirlik gibi ihtiyaçları karşılaması beklenir.
Bu ihtiyaçların karşılanması geliştirmeyi uzatabilir.
Bu durumda başka geliştiriciler tarafından hazırlanmış paketlerin kullanımı faydalı olacaktır.
Veritabanı işlemleri için ORM yapısı sunan doctrine paketini kullanabiliriz.
Ancak paketi indirmeye ve proje dahil etmeye (autoload) kalktığımıza zaman alabilir.
Ayrıca güncellemeleri takip edilmesi de gerekebilir.
Composer paket yöneticisi bu duruma çözüm oluyor.
Composer ile laravel, doctrine vb. paketlerin kurulumu, otomatik yükleme (autoload) işleminin yapılması ve güncellemelerin tek komut ile yapılmasını sağlıyor.
Composer kurulumu
Composer kurulumu işletim sistemine göre farklılık gösterse de temel olarak kullanılan işletim sistemine yüklenen bir uygulama gibi kurulur.
Windows composer kurulumu
Windows işletim sistemine yüklemek için aşağıdaki adreste yer alan yükleme dosyası ile kolay bir şekilde yapılabilir.
https://getcomposer.org/Composer-Setup.exe
Linux composer kurulumu
Linux işletim sistemine yüklemek için aşağıdaki komut kullanılabilir.
curl -sS https://getcomposer.org/installer | php
PHP yüklü ise aşağıdaki komut kullanılabilir.
php -r "readfile('https://getcomposer.org/installer');" | php
Kurulum tamamlandıktan sonra aşağıdaki komut ile composer komutunun her yerden çalışması sağlanır.
mv composer.phar /usr/local/bin/composer
Kurulum kontrolü
Kurulum başarılı bir şekilde tamamlandıysa aşağıdaki komut ile kontrol edilir.
composer --version
Composer kullanımı
Kurulum global olarak yapılmışsa aşağıdaki gibi kullanılır.
composer komut --parametre
Kurulum local olarak yapılmışsa aşağıdaki gibi kullanılır.
php composer.phar komut --parametre
composer.json oluşturmak
Geliştirilen uygulama ile ilgili bilgiler composer.json dosyasında yer alır.
Composer ile uygulama geliştirirken uygulama hakkında bilgi içeren composer.json dosyasının oluşturulması iyi bir geliştirme ve uygulanmanın taşınabilir olması için gereklidir.
Uygulama ile ilgili bilgilerin yer aldığı composer.json dosyasını oluşturmak için init kullanılır.
composer init
Komut çalıştıktan sonra composer.json dosyasına yazılacak bilgilerin adım adım girilmesi isteyecektir.
Composer paketleri
Çeşitli geliştiriciler tarafından hazırlanmış paketler www.packagist.org adresinden ihtiyacınıza göre olan paketi bulabilir ve paket hakkında bilgi alabilirsiniz.
Ayrıca komut yorumlayıcısına search komutunu yazarak ihtiyacınıza uygun paketi bulabilirsiniz.
composer search <paket_adi>
Composer paket yükleme
Geliştirdiğiniz uygulama için ihtiyacınıza göre paket bulduktan sonra require ile indirilir.
composer require <paket_adi>
Composer uygulama klasörü içerisinde vendor klasörünü oluşturacak ve paket için gerekli olan dosyaları indirecektir.
İndirilen paketlerin içerisinde Composer tarafından desteklenen otomatik yükleme desteği (autoload) ile paketler projeye dahil edilir.
Paketleri projeye dahil etmek için aşağıdaki komut satırının eklenmesi yeterli olacaktır.
<?php
require_once './vendor/autoload.php';
?>
Composer ile uygulama geliştirirken kullanılan çeşitli geliştirme araçları composer.json dosyasında require-dev alanına eklenir.
Bu alan uygulamanın geliştirilmesi sırasında phpunit, php_codesniffer gibi test ve toplu işlem gibi geliştirici paketlerinin kullanıldığını ifade eder.
Geliştirilen uygulamada kullanılacak geliştirme paketini composer.json dosyasına eklemek için –dev parametresi kullanılır.
composer require <paket_adi> --dev
Composer global paket yükleme
PHP ile uygulama geliştirirken bazı paketler sıklıkla kullanılır.
Bu paketlerin her zaman indirilmesi yerine global klasörüne indirilerek her uygulamada kullanılması sağlanır.
PHP ayrıca phpunit, php-cs-fixer, wp-cli gibi komut satırında çalışan uygulamalara da sahiptir.
Bu paketler global klasöre indirilerek işletim sistemindeki komut yorumlayıcısında çalıştırılır.
Bir paketin global olarak indirmek için global kullanılır.
composer global require <paket_adi>
PHP ile uygulama geliştirirken yazılan kodları biçimlendirmek için php-cs-fixer paketini kullanabiliriz.
composer global require friendsofphp/php-cs-fixer
Paket ile bir dosyanın kodlarını biçimlendirmek için komut yorumlayıcısına aşağıdaki komutu yazmak yeterli olacaktır.
php-cs-fixer fix test.php
Composer paketleri listeleme
Yüklenen paketleri listelemek için show kullanılır.
composer show
Komut uygulama içerisinde indirilen paketleri listeleyecektir.
Composer ile indirilmiş global paketleri listelemek için global show kullanılır.
composer global show
Komut indirilen global paketleri ve global paketlerin kullandığı paketleri listeleyecektir.
Sadece global paketleri listelemek için -s parametresi kullanılır.
composer global show -s
Composer paket güncelleme
İndirilen paketleri güncellemek için update kullanılır.
composer update
Sadece bir paketi güncellemek için paket adının yazılması yeterli olacaktır.
composer update <paket_adi>
Composer ile global klasörüne indirilen paketleri güncellemek için global update kullanılır.
composer global update
Sadece bir paketi güncellemek için paket adının yazılması yeterli olacaktır.
composer global update <paket_adi>
Composer paket kaldırma
İndirilen paketleri kaldırmak için remove kullanılır.
composer remove <paket_adi>
Composer ile global klasörüne indirilen paketleri kaldırmak için global remove kullanılır.
composer global remove <paket_adi>
Tüm paketleri indirmek
Geliştirilen uygulama başka bir bilgisayara composer.json dosyası ile birlikte taşındıktan sonra install ile gerekli olan tüm paketler indirilir.
composer install
Proje oluşturmak
Composer ile CodeIgniter, Laravel, Drupal gibi hazır framework yapılarını kullanarak proje yapısı oluşturmak için create-project kullanılır.
composer create-project
Komut istenilen framework yapısını verilen parametreye göre kuracaktır.
Örneğin; Laravel kullanarak proje oluşturmak için aşağıdaki komut kullanılır.
composer create-project --prefer-dist laravel/laravel blog
Komut laravel yapısını blog klasörüne/dizinine oluşturacaktır.
Uygulamayı başlatmak
Gerekli tanımlamalar composer.json dosyasındaki scripts bölümü eklenmişse run-scripts ile uygulama otomatik çalıştırılır.
composer run-scripts
Diğer komutlar
Composer içerisinde yer alan diğer komutlar için list kullanılır.
composer list
Composer komutları ile ilgili detaylı bilgi almak için help kullanılır.
composer help <komut_adi>
Hayırlı günler dilerim.