PHP Kod Biçimlendirme
Tek satıra sıkışmış ya da dağınık PHP kodunu PSR-12'ye yakın düzene sokun; hata varsa satırını görün
Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.
Bu araç işinizi gördü mü?
Teşekkürler, geri bildiriminiz alındı.
Nasıl çalışır?
Bir eklentinin ya da eski bir projenin PHP dosyasını açtığınızda kod çoğu zaman tek satıra sıkışmış ya da her geliştiricinin kendi alışkanlığıyla yazılmış olur. Kodu sol panele yapıştırın; sağ panelde sınıf ve fonksiyonların süslü parantezi alt satıra iner, if, foreach ve while blokları aynı satırda açılır, her ifade kendi satırına geçer ve operatörlerin (=, =>, +) iki yanına birer boşluk konur. Örneğin function topla($a,$b){return $a+$b;} satırı üç satırlık, 4 boşluk girintili bir fonksiyona dönüşür. Bu düzen PHP topluluğunun ortak kod stili olan PSR-12'ye yakındır. Kodda bir sözdizimi hatası varsa (eksik noktalı virgül, kapanmamış parantez) biçimlendirme yapılmaz; hata satır ve sütun numarasıyla gösterilir, böylece sorunu editörünüzde doğrudan bulursunuz. HTML ile karışık bir şablon dosyası yapıştırırsanız yalnız <?php ... ?> bloklarının içi düzenlenir, aradaki HTML'e dokunulmaz. Sonuç satırı kaç satırın kaça açıldığını söyler.
Bu araç php formatter, php beautifier, php girintileme, psr-12 formatter aramalarıyla da biliniyor.
PHP nedir?
PHP, web sunucusunda çalışan ve sayfayı kullanıcıya göndermeden önce üreten bir programlama dilidir. WordPress, Laravel ve pek çok e-ticaret altyapısı PHP ile yazılır. Kod <?php etiketiyle başlar; dosya aynı zamanda HTML içerebilir. PHP satır sonlarını ve fazladan boşlukları yok sayar, bu yüzden aynı kod tek satıra sıkıştırılmış hâlde de çalışır ama okunmaz.
PSR-12 nedir?
PSR-12 (Extended Coding Style), PHP Framework Interop Group'un yayımladığı kod stili önerisidir ve eski PSR-2'nin yerini almıştır. Girintinin 4 boşluk olmasını, sınıf ve metot süslü parantezinin alt satırda, if ve foreach parantezinin aynı satırda açılmasını, satırların tercihen 120 karakteri geçmemesini ister. Amaç, farklı kişilerin yazdığı kodun aynı görünmesidir.
PHP biçimlendirme ile PHP doğrulama arasındaki fark nedir?
Biçimlendirme kodun görünüşünü düzenler: girinti, boşluk ve satır sonları. Doğrulama (lint) ise kodun PHP tarafından okunup okunamadığına bakar. Bu araç biçimlemeden önce kodu ayrıştırdığı için sözdizimi hatalarını da yakalar ve konumunu söyler; ama tanımsız değişken, yanlış tür ya da çalışma anında çıkacak hataları bulmaz. Onlar için kodu PHP ile çalıştırmak ya da PHPStan gibi bir analiz aracı gerekir.
Biçimlendirme kodun çalışmasını değiştirir mi?
Hayır. Araç kodu önce PHP ayrıştırıcısıyla okur, sonra aynı komutları yeni bir düzenle yeniden yazar; değişken adları, dizeler, yorumlar ve komutların sırası korunur. Değişen yalnız boşluk, girinti ve satır sonlarıdır; PHP bunları yok saydığı için kod aynı biçimde çalışır.
Tek istisna anlamı değiştirmez: süslü parantezsiz yazılmış tek satırlık bir if gövdesine (if ($x) return 1;) süslü parantez eklenir, çünkü PSR-12 bunu ister. Kod okunamıyorsa araç tahmin yürütmez, hata verir: yarı bozuk kodu biçimlemek hatayı gizleyebilirdi.
PSR-12 nedir, bu araç ona ne kadar uyar?
PSR-12, PHP-FIG grubunun yayımladığı ortak kod stili önerisidir: 4 boşluk girinti, sınıf ve metot süslü parantezi yeni satırda, kontrol yapılarının parantezi aynı satırda, anahtar kelimelerden sonra bir boşluk. Laravel, Symfony ve Composer paketlerinin çoğu bu düzene yakın yazılır.
Bu araç Prettier'ın PHP eklentisini kullanır; çıktı PSR-12'ye çok yakındır ama birebir değildir: örneğin uzun satırları 80 karakterde kırar, dizi ve argüman listelerini kendi kurallarıyla alt alta dizer. Kurumsal bir projede zorunlu denetim için projenin kendi aracını (PHP_CodeSniffer, PHP-CS-Fixer) kullanmanız gerekir; bu sayfa hızlıca okunur hale getirmek içindir.
- Başkasının kodunu okumak, e-postayla gelen parçayı düzeltmek → bu sayfa
- Projeye commit öncesi zorunlu stil → projenin PHP-CS-Fixer ayarı
- 2 boşluk yalnız ekibiniz öyle anlaştıysa; PSR-12 4 boşluk ister
Sık sorulanlar
Tek satıra sıkışmış PHP kodunu nasıl okunur hale getiririm?
Kodu bu sayfadaki sol panele yapıştırın. Her ifade kendi satırına iner, fonksiyon ve sınıf blokları 4 boşlukla girintilenir. Sonucu kopyalayabilir ya da .php dosyası olarak indirebilirsiniz.
Kodumda hata varsa ne olur?
Araç sözdizimi hatası olan kodu biçimlemez; hatanın satır ve sütun numarasını gösterir. Çoğu zaman sebep bir önceki satırda unutulmuş noktalı virgül ya da kapanmamış bir parantezdir.
HTML içeren .php şablon dosyası da olur mu?
Olur. Yalnız <?php ... ?> bloklarının içi düzenlenir; aradaki HTML metnine dokunulmaz. HTML kısmını da düzenlemek isterseniz HTML biçimlendirme aracını ayrıca kullanabilirsiniz.
Kodum bir sunucuya gönderiliyor mu?
Hayır. Biçimlendirme tamamen tarayıcınızda yapılır; yapıştırdığınız kod bu sayfadan çıkmaz ve hiçbir yere kaydedilmez.