{"id":253,"date":"2015-05-25T00:27:32","date_gmt":"2015-05-24T22:27:32","guid":{"rendered":"http:\/\/staratnight.de\/blog\/?p=253"},"modified":"2018-12-02T16:56:35","modified_gmt":"2018-12-02T14:56:35","slug":"composer-und-phpmd-in-intellij-idea-einrichten","status":"publish","type":"post","link":"https:\/\/staratnight.de\/blog\/composer-und-phpmd-in-intellij-idea-einrichten\/","title":{"rendered":"Composer und PHPMD in IntelliJ IDEA einrichten"},"content":{"rendered":"<p>Wie im Artikel\u00a0<a href=\"http:\/\/staratnight.de\/blog\/entwicklungsumgebung-fuer-php-unter-windows-einrichten\/\">Entwicklungsumgebung f\u00fcr PHP unter Windows einrichten<\/a> beschrieben, wollte ich <em>PHPMD<\/em> nutzen. Dabei handelt es sich um ein Tool zur statischen Code-Analyse nach dem Vorbild des in der Java-Welt bekannten Tools PMD. Es hat sich herausgestellt, dass es am einfachsten ist, wenn <em>PHPMD<\/em> via <em>Composer<\/em> eingerichtet wird.<\/p>\n<p>Da ich beides in IntelliJ nutzen m\u00f6chte, beschreibe ich, wie die Einrichtung der beiden Tools f\u00fcr IntelliJ funktioniert.<\/p>\n<p><strong>Hinweis:<\/strong> Wichtig ist, dass das PHP-Plugin aktiviert ist und bereits ein Projekt angelegt wurde. Ich vermute, dass die Einrichtung f\u00fcr PHPStorm \u00e4hnlich, wenn nicht sogar genauso funktioniert.<\/p>\n<p><!--more--><\/p>\n<h1>Composer einrichten<\/h1>\n<p><em>Composer<\/em> muss zun\u00e4chst wie im Artikel <a href=\"http:\/\/staratnight.de\/blog\/entwicklungsumgebung-fuer-php-unter-windows-einrichten\/\">Entwicklungsumgebung f\u00fcr PHP unter Windows einrichten<\/a> beschrieben installiert werden. Anschlie\u00dfend kann in IntelliJ \u00fcber das Men\u00fc File -&gt; Settings&#8230; =&gt; PHP -&gt; Composer der Pfad zur composer.phar-Datei angegeben werden.<\/p>\n<p>Einfacher geht es noch, wenn man daf\u00fcr das Kontext-Men\u00fc im Projektfenster und den Dialog dazu verwendet. Dann wird auch gleich eine passende JSON-Datei f\u00fcr das Projekt generiert.<\/p>\n<p>&nbsp;<\/p>\n<h1>PHPMD einrichten<\/h1>\n<h2>Download<\/h2>\n<p>PHPMD holen wir uns von der offiziellen Seite des Projekts, zu finden unter <a href=\"http:\/\/static.phpmd.org\/php\/latest\/phpmd.phar\">http:\/\/static.phpmd.org\/php\/latest\/phpmd.phar<\/a>. Einfach auf den Link klicken und die Datei speichern.<\/p>\n<p>Ob <em>PHPMD<\/em> funktioniert, l\u00e4sst sich mit dem Aufruf von<em> php phpmd &#8211;version<\/em> in der Eingabeaufforderung pr\u00fcfen. Es darf kein Fehler angezeigt werden, sondern <em>PHPMD x.y.z<\/em> (wobei x.y.z die heruntergeladene Version von PHPMD ist)<\/p>\n<p>Kommt es dabei zu der Fehlermeldung, dass bz2 notwendig ist, muss noch eine Anpassung in der php.ini-Datei vorgenommen werden:<\/p>\n<ul>\n<li>Eintrag\u00a0<em>extension=php_bz2.dll<\/em> aktivieren (das &#8218;;&#8216; rausnehmen)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Einrichten<\/h2>\n<p><em>(Der Absatz hat sich ge\u00e4ndert ist nun g\u00fcltig f\u00fcr IntelliJ 14.x)<\/em><\/p>\n<p>Nach der Installation muss <em>PHPMD<\/em> noch aktiviert und eingerichtet werden. Dazu wieder \u00fcber das Men\u00fc File -&gt; Settings&#8230; aufrufen und im Bereich <em>PHP<\/em> den Punkt <em>Mess Detector<\/em> ausw\u00e4hlen. Hinter dem Feld &#8222;Configuration&#8220; auf den Button [&#8230;] klicken. Hier kann nun direkt PHP aufgerufen werden und damit die .phar-Datei von <em>phpmd.<\/em><\/p>\n<pre class=\"\"><strong>Beispiel:<\/strong>\r\n\"C:\\Programme\\PHP\\php.exe\" \"C:\\Programme\\PHPMD\\phpmd.phar\"<\/pre>\n<p>Anschlie\u00dfend kann der Eintrag mit einem Klick auf <em>Validate<\/em> gepr\u00fcft werden. Hat alles geklappt, wird in gr\u00fcn die Version von <em>PHPMD<\/em> angezeigt. Ansonsten in rot eine entsprechende Fehlermeldung.<\/p>\n<p>Es reicht aber noch nicht, IntelliJ zu sagen, wo <em>PHPMD<\/em> zu finden ist, es muss auch noch aktiviert werden. Dazu File -&gt; Settings&#8230; =&gt; Inspections aufrufen und im rechten Teil in der Liste PHP aufklappen. Am Ende der (Standard-)Inspections von IntelliJ zu PHP findet sich ein neuer Eintrag: <em>PHP Mess Detector. <\/em>Dieser kann \u00fcber die Checkbox am rechten Rand aktiviert werden.<\/p>\n<p>W\u00e4hlt man den Eintrag aus, k\u00f6nnen unter <em>Options<\/em> nun die Rulesets ausgew\u00e4hlt werden, die angewendet werden sollen. Ausw\u00e4hlbar sind die Standard-Rulesets. Es k\u00f6nnen aber auch eigene hinzugef\u00fcgt werden.<\/p>\n<p>Via Strg + Alt + Shift + I wird nun PHPMD zus\u00e4tzlich zu den Pr\u00fcfungen, die IntelliJ ohnehin schon ausf\u00fchrt angewendet.<\/p>\n<p>&nbsp;<\/p>\n<p>Mit diesen Werkzeugen behalten wir den \u00dcberblick \u00fcber unsere Abh\u00e4ngigkeiten und haben eine gute Basis f\u00fcr sauberen Code.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie im Artikel\u00a0Entwicklungsumgebung f\u00fcr PHP unter Windows einrichten beschrieben, wollte ich PHPMD nutzen. Dabei handelt es sich um ein Tool zur statischen Code-Analyse&hellip;<\/p>\n","protected":false},"author":2,"featured_media":442,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,18,14],"tags":[],"class_list":["post-253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-allgemein","category-intellij","category-php"],"_links":{"self":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":7,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"predecessor-version":[{"id":296,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/253\/revisions\/296"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media\/442"}],"wp:attachment":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}