Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

psalm vs phpstan vs phan vs (???) #49

Open
index0h opened this issue Feb 9, 2020 · 5 comments
Open

psalm vs phpstan vs phan vs (???) #49

index0h opened this issue Feb 9, 2020 · 5 comments

Comments

@index0h
Copy link
Owner

index0h commented Feb 9, 2020

@EvgeniiR @peter-gribanov @alexgivi @fox-hellraiser @WoZ @gotterdemarung
Господа, прошу вас о конструктивной критике и доводам по следующим статическим анализаторм psalm vs phpstan vs phan vs (ваш вариант). Хочу помимо idea инспекций / кодстайла добавить более нейтивные валидаторы кода, для запуска например через CI.
Для проверки стиля я предполагаю использовать PHP_CodeSniffer, но для остального немного теряюсь, так как экспертизы в этих анализаторах у меня мало.

@peter-gribanov
Copy link

Для Code Style я предпочитаю PHP CS Fixer, а для Open Source проектов еще и Style CI.
Для шторма использую плагин статический анализатор Php Inspections ​(EA Extended).
В проектах я предпочитаю использовать PHPStan. Но не обязательно ограничиваться одним статическим анализатором. В Badoo например используют все 3 (PHPStan, Psalm и Phan). Phan считается лучшим решением, но он очень прожорливый по памяти. Это может быть критично.

@EvgeniiR
Copy link
Contributor

EvgeniiR commented Feb 10, 2020

@peter-gribanov
Плюс за php-cs-fixer.

Phan считается лучшим решением

Уже давно Psalm :)

@EvgeniiR
Copy link
Contributor

EvgeniiR commented Feb 10, 2020

Случайно отправил предыдущущее сообщение. Вобщем, лучший стат анализатор по фичам/удобству сейчас psalm, в целом все три по фичам сильно пересекаются, и использовать их одновременно смысла не много(ну мол больше времени больше, пользы меньше).
Единственное что у меня нашёл phpstan в проекте который полностью тайп-чекался psalm'ом, это тайп-хинт array в некоторых инфраструктурных штуках(checkMissingIterableValueType), и то я решил что мне не нужно это фиксить, потому что если я попробую к таким штукам обратиться не проверив что внтури, psalm меня попридержит. И ещё одно лишнее(бесполезное) условие, вобщем я пока на psalm+phpstan остановился, но можно и только с psalm жить.

Почему стат. анализ нужно и полезно? Да, собственно, вот - http://www.ambysoft.com/artwork/comparingTechniques.jpg

В новом проекте советую psalm с totallyTyped="true"

В существующих можно начинать с малого, и фиксить ошибки постепенно, чтобы видеть только новые ошибки, можно использовать --set-baseline (тык), чтобы сохранить в файл текущий список ошибок и видеть только новые, а ошибки из файла, тоже, соответственно, постепенно фиксить.

@EvgeniiR
Copy link
Contributor

Кстати, в целом по тулингу для QA советую глянуть доклад - https://www.youtube.com/watch?v=8rdTSYljts4

@index0h
Copy link
Owner Author

index0h commented Feb 26, 2020

@peter-gribanov @EvgeniiR За php-cs-fixer спасибо, я прям проникся

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants