Bağımlılıkların yönetiminde ortaya çıkması muhtemel “Tavuk/Yumurta” sorununu önlemek adına –no-update seçeneğini kullanmalıyız:
composer require 'drupal/core-recommended:^9' 'drupal/core-composer-scaffold:^9' 'drupal/core-project-message:^9' --update-with-dependencies --no-update
Sistemde drupal/core mevcutsa güncellenmelidir:
composer require 'drupal/core-dev:^9' --dev --update-with-dependencies --no-update
Drupal 9’a ait core gereksinimleri composer.json dosyasına eklendikten sonra güncellemeyi başlatabiliriz:
composer update
Güncelleme sonrasında ilk iş olarak önbellek rebuild edilmelidir. Bu esnada, giderilmesi gereken deprecated hataları gözlemlenir.
drush cr
admin/reports/status ekranından INCOMPATIBLE MODULES (Drupal 9 ile uyumsuz olan modüller) görüntülenir. Modüller Drupal 9 ile uyumlu hale getirilmelidir.
İlk olarak, modüle ait .info dosyasına:
core_version_requirement: '^8 || ^9'
eklenmelidir.core: 8.x
gibi bir ifade varsa kaldırılmalıdır.
Deprecated Düzeltmeleri
The ::getCurrentUserId method is deprecated
Hata mesajı alınan modüle ait config (yaml) dosyası içerisindeki default_value_callback değeri:
default_value_callback: ‘Drupal\node\Entity\Node::getCurrentUserId’ yerine,
default_value_callback: ‘Drupal\node\Entity\Node::getDefaultEntityOwner’ olarak değiştirilmelidir.
php 7.3 üzerinde Drupal 9 uyumsuzluk çözümü
Drupal 9, en düşük PHP sürümü olarak 8 ve üzerini önermektedir. 7.3 ile birlikte kullanımında, bazı paketlerin downgrade edilmesi gerekmektedir. Bu durum stabiliteyi bozmaktadır. Mecbur kalınması durumunda geçici olarak bu yöntem kullanılabilir.
Drupal 9.3.7 sürümü için aşağıdaki paketler php 7.3 sürümünü desteklemektedir. composer.json dosyasında belirtildiği takdirde php 7.3 çalıştıran sunucuya Drupal 9 kurulumu sağlanacaktır.
"laminas/laminas-servicemanager": "v3.7.0", "mglaman/phpstan-drupal": "v1.1.4", "friends-of-behat/mink-browserkit-driver": "v1.5.0", "laminas/laminas-zendframework-bridge": "v1.4.1"