PHPStan'ın amacı, PHP uygulamasını çalıştırmadan hataları bulmak için uygulama kodunu taramaktır. PHP derlenmiş bir dil olmadığından, hatalı bir kod çalıştığında uygulama production ortamında çökme eğilimindedir. PHPStan, kodun production ortamına gitmeden önce hataları bulmak için kullanılır.


Kurulum


Terminalde $ composer require --dev phpstan/phpstan komutunu kullanarak kurulum yapabilirsiniz.


Yapılandırma


Varsayılan olarak $ vendor/bin/phpstan analyse src --level max kodunu kullanabilirsiniz. İhtiyacınıza göre "katılık" değerini düşürebilirsiniz.




phpstan.neon


Bazen, kendi kural dosyanız olan phpstan.neon içinde belirli kurallar listelemeniz gerekebilir. Bu isteğe bağlıdır, ancak biriyle çalışmaya gelince birkaç temel konu görelim. Asıl kural dosyalarının neye benzediğini görmek için phpstan.neon klasörünü kontrol edebilirsiniz. Proje içeriğinizde "phpstan.neon" dosyasını aşağıdaki içeriği kullanarak oluşturun ve $ vendor/bin/phpstan analyse src -c phpstan.neon komutunu çalıştırın.


parameters:
# Needed only when you use "rules" block below
customRulesetUsed: true

# Sometimes needed
autoload_files:
- %rootDir%/../../../vendor/autoload.php

# Prevents scanning given folders/files
excludes_analyse:
- %rootDir%/../../../src/Migrations/*

# You specific list of rules
rules:
- PHPStan\Rules\Arrays\DuplicateKeysInLiteralArraysRule

Symfony PHPUnit Bridge


Eğer composer.json dosyanızda phpunit/phpunit bileşenine manuel olarak ihtiyaç duymuyorsanız ve bunun yerine Symfony PHPUnit Bridge kullanıyorsanız, muhtemelen aşağıdakine benzer hatalarla karşılaşırsınız.


Class PHPUnit\Framework\TestCase not found and could not be autoloaded.

Class [a test class of yours] was not found while trying to analyse it - autoloading is probably not configured properly.

İlk sorunu çözmek için aşağıdakileri yapın.



İkinci sorunu çözmek için PHPStan'ın yapılandırma dosyasının parameters bölümüne aşağıdaki kodu ekleyin.


autoload_directories:
- %rootDir%/../../../tests