Hallo liebe Kollegen, I möchte mit euch ein bisschen Erfahrung teilen. Ich habe einen Statischen Analysator für PHP phpstan installiert. Ich finde es klasse und ich denke das Tool kann uns helfen weniger Bugs zu programmieren. 1. Installieren composer global require "phpstan/phpstan" oder mit Docker docker pull phpstan/phpstan 2. Starten phpstan analyze -l max -a ./tests/Bootstrap.php modules/xhotels/classes/Provider/DTS/Reader oder als Container docker run --rm -v `pwd`:/app phpstan/phpstan analyse -l 5 -a tests/Bootstrap.php modules/xhotels/classes/Provider/DTS/Reader/Prices.php Die -l Option kann ein Analyse Level setzen (1-7|max). Mit der Option -a definiert man eine (oder mehrere) Bootrstrap Datei, diese für Tests passt gut. Ich habe gemerkt, dass diese Versionen unterschiedliche Probleme finden. Vielleicht liegt es an der Version. 3. Beispiel Ausgabe ------ ----------------------------------------------------------------- Line Reader/Prices.php ------ ----------------------------------------------------------------- 208 Variable $allowed in isset() always exists and is not nullable. ------ ----------------------------------------------------------------- [ERROR] Found 1 error Phpstan hat die Annotations analysiert und festgestellt, dass im Codeif (!isset($allowed)) $allowed immer ein String ist und daher ist die Bedingung immer True. Das ist ein Bug. Noch Beispiel: ------ -------------------------------------------------------------------------------------- Line RatePlan.php ------ -------------------------------------------------------------------------------------- 169 Strict comparison using !== between false and int|null will always evaluate to true. Die Funktion gibt int|null zurück, es wird aber geprüft ob das Ergebnis nicht False ist. Das ist auch ein Bug. Sehr viel wird gemeldet, wenn man in Annotations kein Parameter Typ angegeben hat. Es nervt ein bisschen, aber ist einfach zu fixen und im Endeffekt kann das Tool damit besser den Code analysieren und sicherer Bugs finden. Probiert es aus! VG Viktoras -- Mit freundlichen Grüßen Viktoras Bezaras - Entwickler - ________________________________________________________ TraSo GmbH Nonnenstraße 42 D-04229 Leipzig Tel.: +49 341 355 740 44 E-Mail: v.bezaras@traso.de Internet: http://www.traso.de ________________________________________________________ Geschäftsführer: Haiko Gerdes Handelsregister: Amtsgericht Leipzig, HRB 21850