Nach meinen Beiträgen zur optimal konfigurierten Vim-Umgebung und gutem Code mit PHP komme ich in meiner Mini-Serie zur Softwareentwicklung in PHP nun dazu, wie diese PHP-Werkzeuge in Vim zum Einsatz kommen.
In Vim bietet sich die Erweiterung Syntastic für diese Aufgabe an. Syntastic unterstützt eine Vielzahl von Programmiersprachen. Für PHP werden der PHP-Interpreter, PHP_CodeSniffer und PHPMD als Syntaxchecker unterstützt. Diese drei Checker habe ich im vorherigen Beitrag bereits kurz beschrieben.
Syntastic prüft, ob das entsprechende externe Programm installiert ist und wendet die Syntaxchecker beim Speichern einer Datei automatisch an. Etwaige Fehler oder Warnungen werden in der Location List in einem eingeblendeten Buffer angezeigt.
Hier ein Screenshot von der Projekt-Website:
In Vimified muss das Package coding
in local.vimrc
aktiviert werden, um syntastic
nutzen zu können:
letg:vimified_packages = ['general','color','coding', ... ]
In Drupal gibt es neben den *.php
- und *.inc
-Dateien auch Dateien mit den
Endungen module
, install
, inc
, test
und theme
. Diese müssen als
PHP-Dateien erkannt werden:
" Define filetype php for Drupal source code filesauBufNewFile,BufRead *.inc :setft=phpauBufNewFile,BufRead *.module :setft=phpauBufNewFile,BufRead *.test :setft=phpauBufNewFile,BufRead *.theme :setft=phpauBufNewFile,BufRead *.install :setft=phpauBufNewFile,BufRead *.info :setft=dosini
In meiner Vimified-Konfiguration sind diese Anweisungen inbefore.vimrc eingetragen.
In after.vimrc muss der Pfad zum Regelset des Coding Standards
angegeben werden, den phpcs
anwenden soll:
letg:syntastic_php_phpcs_args='--standard=/var/www/drupal/modules/coder/coder_sniffer/Drupal/ruleset.xml'
Wenn das installierte phpmd
oder phpcs
nicht angewendet werden soll, dann
kann die Liste der Syntaxchecker auch explizit angegeben werden:
"let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']letg:syntastic_php_checkers = ['php','phpcs']
Das ist z.B. sinnvoll, wenn diese Syntaxchecker zum ersten Mal auf das Projekt
angewendet werden und die Liste der Warnungen und Fehler zu lang ist. Ein
anderer Weg, die Liste der Warnungen und Fehler einzuschränken ist, die Datei
ruleset.xml
aus dem CodeSniffer-Projekt zu kopieren und anzupassen.
Ich habe diesen Weg genutzt, um erstmal alle "Diese Funktion hat keinen
Kommentar"-Meldungen zu deaktivieren, bis alle anderen Meldungen bearbeitet
worden sind.
Syntastic
bringt eine umfangreiche Online-Hilfe mit, in der
auch die Konfigurationsvariablen ausführlich beschrieben werden:
:he syntastic
Dank der hier skizzierten Konfiguration lassen sich Programmierfehler und unsauberer Code leicht vermeiden bzw. auffinden.
In einem nächsten Blogpost werden ich beschreiben, wie man sich schnell durch den Sourcecode navigieren kann, auch wenn man eine größere Softwarebasis in dem Projekt pflegt, wie es in einem Drupal-Website-Projekt normal ist.