CodeBlanks Logo Icon CodeBlanks

composer update ve install

PHP kursu · İleri seviye · Ders 39/92

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

  1. 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.

  2. 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
  3. 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";
    

İleri seviye bölümündeki tüm dersler