Blog

CodeSniffer (PHP_CodeSniffer) Nedir, Nasıl Kullanılır?

CodeSniffer (PHP_CodeSniffer), PHP kodunun belirlenen kodlama standartlarına (PSR-12, WordPress Coding Standards gibi) uyup uymadığını otomatik olarak kontrol eden açık kaynak bir araçtır. İki komuttan oluşur: phpcs kuralları ihlal eden satırları listeler, phpcbf ise otomatik düzeltilebilen hataları kendisi düzeltir. Projeye Composer ile composer require --dev squizlabs/php_codesniffer komutuyla kurulur ve ekip içinde kodun aynı düzende yazılmasını sağlar.

Kısaca

  • phpcs: Kodlama standardı hatalarını bulur.
  • phpcbf: Düzeltilebilir hataları otomatik düzeltir.
  • Standartlar: PSR-12, PSR-1, PEAR, Squiz, Zend ve WordPress (WPCS).
  • Yapılandırma: Proje köküne phpcs.xml dosyası.
  • Bakım: Proje 2023’ten beri PHPCSStandards ekibi tarafından geliştiriliyor; Composer paket adı değişmedi.
PHP_CodeSniffer örnek çıktısı: phpcs ile PSR-12 kural hatalarının listelenmesi ve phpcbf ile otomatik düzeltme

CodeSniffer Nasıl Kurulur?

Projenizin klasöründe Composer ile geliştirme bağımlılığı olarak kurun:

composer require --dev squizlabs/php_codesniffer

Kurulumdan sonra vendor/bin/phpcs ve vendor/bin/phpcbf komutları kullanılabilir. Bilgisayar genelinde kullanmak isterseniz composer global require ile de kurabilirsiniz.

CodeSniffer Nasıl Kullanılır?

vendor/bin/phpcs --standard=PSR12 src/
vendor/bin/phpcbf --standard=PSR12 src/
vendor/bin/phpcs -i
  • Birinci komut src/ klasörünü PSR-12 standardına göre kontrol eder.
  • İkinci komut otomatik düzeltilebilen hataları ([x] işaretli olanlar) düzeltir.
  • Üçüncü komut kurulu standartları listeler.

Çıktıdaki her satırda dosya, satır numarası, hata türü (ERROR veya WARNING) ve açıklama yer alır. Değişkenlerin adlandırılması gibi bazı kurallar otomatik düzeltilemez; bunları elle düzeltmeniz gerekir.

phpcs.xml ile Proje Kuralları

Her seferinde parametre yazmamak için proje köküne phpcs.xml dosyası ekleyin:

<?xml version="1.0"?>
<ruleset name="Proje Kuralları">
  <file>src</file>
  <exclude-pattern>vendor/*</exclude-pattern>
  <arg name="extensions" value="php"/>
  <rule ref="PSR12"/>
  <rule ref="Generic.Files.LineLength">
    <properties>
      <property name="lineLimit" value="120"/>
    </properties>
  </rule>
</ruleset>

Bu dosya varsa yalnızca vendor/bin/phpcs yazmanız yeterlidir. Bir satırda kuralı geçici olarak devre dışı bırakmak için // phpcs:ignore yorumu kullanılabilir.

Hangi Standartlar Var?

Standart Ne zaman kullanılır
PSR-12 Laravel, Symfony ve çoğu modern PHP projesi
PSR-1 Temel kodlama kuralları
WordPress (WPCS) WordPress tema ve eklentileri; güvenlik kontrolleri (kaçış, nonce) de içerir
PEAR, Squiz, Zend Eski projeler veya bu standartları kullanan ekipler

WordPress Kodlama Standartları ile Kullanım

composer require --dev wp-coding-standards/wpcs dealerdirect/phpcodesniffer-composer-installer
vendor/bin/phpcs --standard=WordPress wp-content/plugins/eklentim/

WPCS, WordPress’e özgü güvenlik ve uyumluluk kurallarını da kontrol ettiği için tema ve eklenti geliştirirken çok faydalıdır. WordPress tarafında kullanılan bir eklenti örneği için WordPress WhatsApp eklentisi yazısına bakabilirsiniz.

CodeSniffer’ı Geliştirme Sürecine Eklemek

  • Editör: VS Code ve PhpStorm, phpcs çıktısını yazarken satır içinde gösterebilir.
  • Git hook: Commit öncesi phpcs çalıştırarak kurallara uymayan kodun depoya girmesini engelleyebilirsiniz.
  • CI/CD: GitHub Actions veya GitLab CI’da her pull request’te phpcs çalıştırılır; hata varsa derleme başarısız olur.
CodeSniffer kodun biçimini ve standartlara uyumunu kontrol eder; mantık hatalarını bulmaz. Hata yakalamak için PHPStan veya Psalm gibi statik analiz araçları ve PHPUnit testleri birlikte kullanılmalıdır. Python dünyasındaki karşılığı PEP 8 ve flake8/ruff gibi araçlardır; Python’un yaratıcısı için Guido van Rossum yazısına bakabilirsiniz.

Sıkça Sorulan Sorular

CodeSniffer nedir?

PHP kodunun PSR-12 veya WordPress gibi kodlama standartlarına uyup uymadığını kontrol eden açık kaynak araçtır. phpcs hataları bulur, phpcbf düzeltir.

phpcs ile phpcbf farkı nedir?

phpcs kurallara uymayan satırları listeler; phpcbf ise otomatik düzeltilebilen hataları dosyada kendisi düzeltir.

CodeSniffer nasıl kurulur?

Proje klasöründe composer require –dev squizlabs/php_codesniffer komutuyla kurulur.

WordPress için CodeSniffer kullanılır mı?

Evet. WordPress Coding Standards (WPCS) paketiyle birlikte tema ve eklenti kodlarını WordPress kurallarına göre kontrol edebilirsiniz.

Benzer İçerikler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu