Nette X-Ray
***********
.[perex]
[X-Ray |https://github.com/nette/xray] projenizin Nette ekosistemini tam olarak nasıl kullandığını gösterir: hangi metotları, Latte filtrelerini ve yapılandırma anahtarlarını gerçekten kullanıyorsunuz.
En çok hangi Nette metotlarını çağırdığınızı hiç merak ettiniz mi? Gerçekten hangi Latte filtrelerini kullanıyorsunuz? O eski yapılandırma anahtarına hâlâ dokunan var mı? X-Ray kodunuzu statik çözümlemeyle tarar ve bunu anlaşılır bir HTML raporuyla yanıtlar.
Neler Çözümleniyor
==================
X-Ray, regex ya da tahmin yerine statik çözümleme kullanır: tipleri kalıtım üzerinden çözer, bildiren sınıfları saptar ve argüman kalıplarını izler. Sonuç, projenizin Nette ile nasıl etkileştiğinin doğru bir resmidir.
| PHP ve PHPT | Latte şablonları | NEON yapılandırması |
|--------------|-----------------|--------------------|
| metot ve fonksiyon çağrıları | etiketler ve n:nitelikler | DI servis kalıpları |
| argümanlar (konumsal, adlandırılmış) | filtreler ve argümanları | uzantı kaydı |
| dönüş değeri kullanımı | fonksiyonlar ve sabitler | bölüm kullanımı |
| özellik erişimi | sözdizimi çeşitleri | yapılandırma anahtarları |
| sınıf kalıtımı ve trait'ler | | |
| metot geçersiz kılmaları | | |
Kurulum
=======
Onu Composer ile bir dev bağımlılığı olarak kurun:
```shell
composer require --dev nette/xray
```
PHP 8.2 ya da daha yenisini gerektirir ve PHPStan 2.1 üzerinde çalışır. Nette, Latte, Tracy, Dibi ya da Texy kullanan her projeyle çalışır.
Kullanım
========
Onu kaynak dizinlerinize yöneltin:
```shell
vendor/bin/xray app/ src/
```
Kısa sürede, tarayıcınızda açabileceğiniz etkileşimli bir HTML raporu (`xray-report.html`) ve ayrıca makine tarafından okunabilir veri (`xray-report.json`) elde edersiniz:
```
Nette X-Ray
===========
Scanning PHP files ... 142/142 done
Scanning NEON files ... 4/4 done
Scanning Latte files ... 87/87 done
Reports saved to:
xray-report.json
xray-report.html
```
Yapılandırma
============
Davranışı özelleştirmek için proje kökünüzde bir `nette-xray.neon` dosyası oluşturun:
```neon
# Varsayılan çözümleme yolları (hiçbir CLI argümanı verilmediğinde kullanılır)
paths:
- app
- src
# Dışlanacak ek dizinler (vendor, temp, node_modules, .git varsayılan olarak dışlanır)
excludeDirs:
- generated
# Sormadan otomatik yükleme
upload: false
```
/--comment
Nette'i Geliştirmeye Yardım Edin
================================
Çözümlemeden sonra, framework'ün gelişimine yön vermeye yardım etmek için raporu isteğe bağlı olarak gönderebilirsiniz; gerçek kullanım verisi anketlerden çok daha güvenilirdir. Yalnızca toplu sayılar gönderilir: her API'nin kaç kez çağrıldığı ve hangi kalıpları kullandığınız. Kod yok, dosya yolu yok, değişken değeri yok. Veri yalnızca açıkça onaylarsanız gönderilir ve JSON raporu her zaman önce yerel olarak kaydedilir, böylece onu rahatça gözden geçirebilirsiniz.
\--
Nette X-Ray
X-Ray projenizin Nette ekosistemini tam olarak nasıl
kullandığını gösterir: hangi metotları, Latte filtrelerini ve yapılandırma anahtarlarını gerçekten
kullanıyorsunuz.
En çok hangi Nette metotlarını çağırdığınızı hiç merak ettiniz mi? Gerçekten hangi Latte filtrelerini
kullanıyorsunuz? O eski yapılandırma anahtarına hâlâ dokunan var mı? X-Ray kodunuzu statik çözümlemeyle tarar ve bunu
anlaşılır bir HTML raporuyla yanıtlar.
Neler Çözümleniyor
X-Ray, regex ya da tahmin yerine statik çözümleme kullanır: tipleri kalıtım üzerinden çözer, bildiren sınıfları
saptar ve argüman kalıplarını izler. Sonuç, projenizin Nette ile nasıl etkileştiğinin doğru bir resmidir.
| PHP ve PHPT |
Latte şablonları |
NEON yapılandırması |
| metot ve fonksiyon çağrıları |
etiketler ve n:nitelikler |
DI servis kalıpları |
| argümanlar (konumsal, adlandırılmış) |
filtreler ve argümanları |
uzantı kaydı |
| dönüş değeri kullanımı |
fonksiyonlar ve sabitler |
bölüm kullanımı |
| özellik erişimi |
sözdizimi çeşitleri |
yapılandırma anahtarları |
| sınıf kalıtımı ve trait'ler |
|
|
| metot geçersiz kılmaları |
|
|
Kurulum
Onu Composer ile bir dev bağımlılığı olarak kurun:
composer require --dev nette/xray
PHP 8.2 ya da daha yenisini gerektirir ve PHPStan 2.1 üzerinde çalışır. Nette, Latte, Tracy, Dibi ya da Texy kullanan
her projeyle çalışır.
Kullanım
Onu kaynak dizinlerinize yöneltin:
vendor/bin/xray app/ src/
Kısa sürede, tarayıcınızda açabileceğiniz etkileşimli bir HTML raporu (xray-report.html) ve ayrıca makine
tarafından okunabilir veri (xray-report.json) elde edersiniz:
Nette X-Ray
===========
Scanning PHP files ... 142/142 done
Scanning NEON files ... 4/4 done
Scanning Latte files ... 87/87 done
Reports saved to:
xray-report.json
xray-report.html
Yapılandırma
Davranışı özelleştirmek için proje kökünüzde bir nette-xray.neon dosyası oluşturun:
# Varsayılan çözümleme yolları (hiçbir CLI argümanı verilmediğinde kullanılır)
paths:
- app
- src
# Dışlanacak ek dizinler (vendor, temp, node_modules, .git varsayılan olarak dışlanır)
excludeDirs:
- generated
# Sormadan otomatik yükleme
upload: false