Nette Coding Standard
*********************
.[perex]
[Coding Standard |https://github.com/nette/coding-standard] PHP kodunuzu [Nette kodlama standardına |contributing:coding-standard] 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:
```shell
composer global require nette/coding-standard
```
ve küresel vendor binary dizininizin [`$PATH` ortam değişkeninizde|https://getcomposer.org/doc/03-cli.md#global] olduğundan emin olun.
Kullanım
========
Araç iki komut sunar. `check` komutu yalnızca ihlalleri bildirir, `fix` ise onları otomatik onarır:
```shell
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:
```shell
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
<?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
<?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:
```yaml
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check
```
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