Nette Coding Standard
Coding Standard PHP kodunuzu Nette kodlama standardına göre otomatik biçimlendirir; girintiden ve parantezlerden boşluklara ve import sıralamasına dek.
Kaputun altında, önceden yapılandırılmış olarak gelen iki endüstri standardı aracı, PHP CS Fixer ile PHP CodeSniffer'ı birleştirir; böylece hiçbir şeyi kendiniz ayarlamak zorunda kalmazsınız.
Kurulum
Aracı Composer kullanarak küresel olarak kurun:
composer global require nette/coding-standard
ve küresel vendor binary dizininizin $PATH ortam
değişkeninizde olduğundan emin olun.
Kullanım
Araç iki komut sunar. check komutu yalnızca ihlalleri bildirir, fix ise onları otomatik
onarır:
ecs check
ecs fix
Hiçbir argüman olmadan src/ ve tests/ dizinlerini tarar; kendi yollarınızdan bir ya da
birkaçını da aktarabilirsiniz, örneğin ecs check app bin.
Düzelticiyi ilk kez çalıştırmadan önce dosyalarınızı yedeklediğinizden emin olun.
PHP Sürümü
Araç PHP 8.0'dan 8.5'e dek destekler ve kuralları sürüme göre aşamalı uygular. Sürümü projenizin
composer.json dosyasından otomatik algılar, ama --preset seçeneğiyle onu açıkça da
ayarlayabilirsiniz:
ecs check --preset php81
Özel Kurallar
Kuralları projeniz için ince ayar yapabilirsiniz. PHP CS Fixer kurallarını değiştirmek için proje kökünde bir
ncs.php dosyası oluşturun:
<?php
return [
'strict_comparison' => false,
];
PHP CodeSniffer kurallarını değiştirmek için bir ncs.xml dosyası oluşturun. Sürüm hazır ayarına
başvurması gerekmez (onunla otomatik birleştirilir) ve pakete gömülü herhangi bir hazır ayarı çekmek için
$presets/ kullanabilirsiniz:
<?xml version="1.0"?>
<ruleset name="MyProject">
<!-- use function/const importlarını etkinleştir -->
<rule ref="$presets/optimize-fn.xml"/>
<!-- bir kuralı kapat -->
<exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
</ruleset>
İki dosya da otomatik bulunur ve sizin kurallarınız hazır ayarın önüne geçer. Commit etmek istemediğiniz tek seferlik
bir geçersiz kılma için --config-file ile fazladan bir dosya aktarın (düzeltici için .php, sniffer
için .xml).
Sürekli Entegrasyon
Bir CI hattında aracı bir proje olarak kurun ve oradan çalıştırın:
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check