Hallo zusammen,

ich habe eine allgemeine Frage hinsichtlich eigenen DCA-Feldern und den Umgang mit der Code-Analyse durch PHPStorm, phpstan.

Lege ich zum Beispiel in dem DCA tl_form ein neues Feld an, so wird dieses auch an allen Stellen bereit gestellt und ich kann drauf zugreifen (z.B. bei Hooks).

PHPStorm (IDE):
(Zurecht) weisst mich jedoch PHPStorm drauf hin, dass ich einen direkter Zugriff auf eine Property mache, welche nicht explizit in der Class als property definiert ist (und vielleicht sogar gar nicht existiert). Das ist noch halbwegs okay, aber die Meldungen/Hinweise sind nervig bzw. das ist glaube ich nicht unbedingt Sinn und Zweck der Sache diese Warnmeldungen zu unterdrücken.

Bei eigenen Models kann ich die Properties und Methoden ja definieren. Will ich aber einen bestehenden DCA erweitern, wird das angemeckert.


phpstan:
Der Code wird mittels phpstan entweder manuell oder by Gitlab-CI automatisiert überprüft.

Dabei meckert phpstan zum Beispiel an, wenn ich versuche auf Eigenschaften zuzugreifen, die nicht als Property definiert sind.

Beispiel:

Code:
 Line   src/EventListener/Hooks/PrepareFormDataListener.php             
 ------ ---------------------------------------------------------------- 
  47     Access to an undefined property Contao\Form::$neuesDatenFeld.

Natürlich kann ich jetzt in der phpstan.neon hergehen und mittels ignoreErrors diese "Fehler" ignorieren.
ABER: Das sollte auch nicht Sinn der Sache sein. Verwende ich zum Beispiel eigene Klassen oder Klassen von dritten, sollte man schon drauf hingewiesen werden, dass man auf etwas nicht existentes versucht zuzugreifen.


Beispiel zum Ignornieren in phpstan.neon:

Code:
ignoreErrors:
        -
            # Ignore undefined property
            message: '#Access to an undefined property#'
            paths:
                - %currentWorkingDirectory%/src/EventListener/Hooks/*

Frage in die Runde:

Fällt Euch eine charmante Lösung ein? Wie habt Ihr das bei Euch gelöst?