composer update ve install
composer install ve update komutlarının farkını öğrenirsin.
install ve update farkı
composer install komutu composer.lock dosyasındaki kesin sürümleri kurar; ekiple paylaşılan bir projede herkesin aynı sürümleri almasını sağlar. composer update ise composer.lock dosyasını yoksayar, en yeni uyumlu sürümleri indirir ve lock dosyasını günceller.
Yeni bir paket eklediğinde update, paket sürümlerini sabitlemek için install kullanılır. Paylaşılan bir projede install daha güvenlidir.
composer.lock ve dump-autoload
composer require veya update çalıştığında composer.lock dosyası oluşur. Bu dosya kurulan her paketin kesin sürümünü ve bağımlılıklarını listeler; versiyon kontrolüne eklenir.
composer dump-autoload komutu yalnızca autoloader'ı yeniden üretir; paketleri kurmaz veya değiştirmez. Yeni sınıf eklediğinde ya da autoload eşlemesini değiştirdiğinde çalıştırılır.
Uygulama Install/update davranış simülasyonu
Bir $lock = ["monolog/monolog" => "3.5.0"] ve $config = ["monolog/monolog" => "^3.5"] dizisi tanımla. installDependencies(array $lock): array fonksiyonu $lock'u aynen döndürsün. updateDependencies(array $config): array fonksiyonu foreach ile her paket için "3.6.0" yazsın (yeni sürüm simülasyonu).
Her ikisini çağırıp install: monolog/monolog=3.5.0 ve update: monolog/monolog=3.6.0 biçiminde yazdır.
Örnek çözümü göster
array { return $lock; } tanımla. function updateDependencies(array $config): array { $result = []; foreach ($config as $pkg => $ver) { $result[$pkg] = "3.6.0"; } return $result; } tanımla. $installed = installDependencies($lock); foreach ($installed as $pkg => $ver) { echo "install: " . $pkg . "=" . $ver . "\n"; } ile yazdır. $updated = updateDependencies($config); foreach ($updated as $pkg => $ver) { echo "update: " . $pkg . "=" . $ver . "\n"; } ile yazdır.
Örnek çözüm:
<?php
$lock = ["monolog/monolog" => "3.5.0"];
$config = ["monolog/monolog" => "^3.5"];
function installDependencies(array $lock): array {
return $lock;
}
function updateDependencies(array $config): array {
$result = [];
foreach ($config as $pkg => $ver) {
$result[$pkg] = "3.6.0";
}
return $result;
}
$installed = installDependencies($lock);
foreach ($installed as $pkg => $ver) {
echo "install: " . $pkg . "=" . $ver . "\n";
}
$updated = updateDependencies($config);
foreach ($updated as $pkg => $ver) {
echo "update: " . $pkg . "=" . $ver . "\n";
}
Kendini test et
-
composer install ne yapar?
- Lock dosyasını yok sayar
- Yeni paket ekler
- Lock dosyasındaki sürümleri kurar
- Autoloader'ı siler
Cevabı göster
Lock dosyasındaki sürümleri kurar — Doğru. install lock dosyasındaki kesin sürümleri kurar.
-
Komut kavramlarını eşleştir
- composer install
- Lock'tan kurar
- composer update
- En yeni sürümleri alır
- composer.lock
- Kesin sürümler
- dump-autoload
- Autoloader'ı üretir
-
Install komutunu tamamla
<?php // Lock dosyasındaki sürümleri kur $cmd = ["name" => "____"]; echo $cmd["name"] . "\n";Cevabı göster
<?php // Lock dosyasındaki sürümleri kur $cmd = ["name" => "composer install"]; echo $cmd["name"] . "\n";