- GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
- Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector
AI tarafından çevrilmiş metin.
durumis AI tarafından özetlenen yazı
- PHP sürüm güncelleme aracı olan Rector'ü kullanarak PHP 5.3 kodunu PHP 7.4'e taşıma yöntemini tanıtır.
- Composer kurulumundan sonra Rector'ü projenize yükleyin ve rector.php ayar dosyası aracılığıyla güncellenecek kodu ve PHP sürümünü belirtin.
- Düzenleme kurallarını ayarlayıp çalıştırarak kodu otomatik olarak düzeltin ve değişiklikleri Git ile yönetin, böylece güvenli bir şekilde güncelleme yapın.
Güney Kore'nin php cms'i olan Gnuboard5 sitesini incelerken, php sürüm yükseltmesinden sonra desteklenmeyen dil bilgisi ve sürüm nedeniyle
birkaç zorluk çeken yazılar gördüm. Bu yüzden araştırırken...
reddit'te rector adlı bir aracın geçişi kolaylaştırdığını gördüm ve kullanımını tanıtıyorum.
PHP 7.0'ın 2015'te piyasaya sürülmesinden sonra php geçiş araçları ortaya çıktı; php cs-fixer, rector vb.
rector biraz daha kullanışlı görünüyor.
rector (telaffuz: rektör), PHP 5.3 ~ 8.2 kodlarını istediğiniz sürüme göre dil bilgisi kontrolünden geçirir ve düzeltir.
Tek eksik yanı, rector'ın statik bir analizör olması ve çalışma zamanında meydana gelen hataları tespit edememesidir.
Rector, php paket yönetim aracı olan Composer'ın kurulu olması gerekir.
1. Composer'ı yükleyin.
2. Mevcut proje klasörüne rector'ı yükleyin.
3. rector.php adlı yapılandırma dosyasını oluşturun.
rector.php Yapılandırması
Anlaşılırlığı artırmak için bir senaryo oluşturalım.
Hedef kaynak kodu php5.3 kodu ve yükseltme hedef sürümü php 7.4 olsun diyelim ve bu şekilde ilerleyelim.
Rector sürümü 1.0.3'tür.
RectorConfig::config(), kaynak kod klasörünü ve PHP sürümünü ayarlar.
withPhpSets fonksiyonu, yükseltilecek PHP fonksiyonlarını ayarlar.
Şu anda rector'ı çalıştıran php sürümü php 8.0 ise
Bu şekilde php sürümüne : true ataması yapılabilir.
Ancak Çalışan PHP Sürümü php 7.4 veya Daha Eskiyse
Fonksiyonlarda adlandırılmış parametre sözdizimi kullanılamaz, bu nedenle istediğiniz sürüm çıktığında true'yu ayarlamanız gerekir.
rector, php 8.3'ü destekler, bu nedenle php 74'ü belirtmek için aşağıdaki gibi yapmalısınız.
->withPaths([
__DIR__ , // rector.php'nin bulunduğu dizindir.
])
Uygulamak istemediğiniz kuralları ve klasörleri belirtir.
Klasörler için '/klasör_adı/*'
Dosyalar için 'dosya_adı' kullanılır.
Kurallar arasında "SensitiveConstantNameRector" ekledim çünkü
rector, PHP dizilerinde tanımsız indeks varsa bunu tespit edemiyor ve sadece sabit olarak algılıyor, bu da yanlış değişikliklere yol açabiliyor. Bu yüzden hariç tutma kurallarına ekliyorum.
Bu kurallar kod stilini etkilediği için hariç tutuyorum.
Çalıştırma
İki yöntem var.
Bu komut, değiştirilmesi gereken kodları sadece konsolda görüntüler.
Kaynak kod ne kadar fazlaysa o kadar çok RAM gerekir, bu nedenle --memory-limit=2G seçeneğiyle kullanılacak RAM'i belirtmeniz gerekir.
Bu komut, kaynak kodunu doğrudan değiştirir.
Seçenekler çok fazla olduğu için istemediğiniz bir seçenek uygulanmış olabilir, bu nedenle git ile kontrol etmeniz gerekir.