Eigene Tools in PHPStorm einbinden / Magento Cache über IDE leeren

Freitag, 30. Dezember 2011

thumbnail

Ich als Magento Entwickler bin das ständige Cache leeren bereits gewohnt und habe mir für meine Linux Workstation ein Bash-Alias "clear-magento-cache" angelegt.

alias clear-magento-cache="rm -Rf var/cache/mage--*"

Den Befehl rufe ich dann immer in einem geöffneten Terminal Fenster auf. Wie ihr seht muss ich hierfür aber meine IDE verlassen. Besser wäre es man könnte direkt einen Button in der IDE klicken. Da ich seit einiger Zeit PHPStorm kennenlerne (man entdeckt jeden Tag etwas neues) dachte ich mir ich schaue mal was die IDE hier bereithält. Und ich konnte wieder etwas neues entdecken.

In den Einstellungen (Strg + Alt + S) unter "External Tools" kann man sich eigene Tools hinterlegen. Diese lassen sich dann bequem in Gruppen einordnen. Also habe ich hier einen neuen Eintrag mit der Gruppe "Magento" angelegt.

Bei "Programm" gibt man nun einfach "rm" an. Unter "Parameters" muss dann das folgende eingetragen werden:

-Rf $ProjectFileDir$/var/cache

Wir ihr seht kann man bequem das aktuelle Projektverzeichnis über eine Variable erhalten. In PHPStorm nennt sich dies Macro. Es gibt noch eine ganze Menge nützlicher Macros. Über den Button "Insert macro" werden alle Macros aufgelistet.

Als Namen vergebe wir nun "Clear Magento Cache".

Das war's eigentlich um die eigentliche Funktion zu erhalten. Das fertige Kommando kann nun im Menü unter "Tools -> Magento -> Clear Magento Cache" gestartet werden.

Jetzt fehlt noch der Button für die Toolbar. Hier klicken wir nun einfach mit der rechten Maustaste in die Toolbar. Im erscheinenden Kontextmenü wählen wir "Customize Menus and Toolbars...". Im Ordnen "Main Toolbar" makieren wir den letzten Befehl (bei mir "Task toolbar" und klicken rechts den Button "Add After".

Nun öffnet sich ein Dialog und wir können unser neues Kommando unter "External Tools" auswählen. Optional kann noch über den Button "Set icon" ein Symbol in der Größe 16x16 Pixel hinterlegt werden.

Ich werde diese Funktion auf jeden Fall in der nächsten Zeit noch mehr ausbauen. Eine nette Sache ist auch die in PHPStorm eingebaute Phing unterstützung. Tipp von mir: Einfach das Build-Script über "External Tools" ansteuern und als Parameter den Build-Task übergeben. So lässt sich schnell ein Kommando mit internen PHP Funktionen bauen. 

Viel Spass beim tüfteln.



Permalink: http://blog.muench-worms.de/permalink/article/87

Teilen |



Kommentare

Kommentar abgeben
  • Matthias Gutjahr 30.12.2011

    Gute Idee, auch bei Symfony2 muss regelmäßig der Cache geleert werden. Zwar ist das nächste Terminal nie weit weg, aber in der IDE zu bleiben, hat auch was. Danke für den Tipp!

  • Andreas von Studnitz 02.01.2012

    Vielen Dank für den Tipp, gute Idee! Leider habe ich noch keine Möglichkeit gefunden, das unter Windows nachzustellen, da "rm" und "rmdir" keine eigenen Executables haben.

    Als weitere Idee könnte man auch den Index über PhpStorm aktualisieren, funktioniert einwandfrei. Unter "Program" trägt man hier die PHP Executable ein, als Parameter die folgenden:

    $ProjectFileDir$/shell/indexer.php reindexall

  • Fabrizio Branca 12.01.2012

    Hallo Christian,

    vielen Dank für den Tipp. Dieses PhpStorm-Feature hatte ich bisher leider nicht entdeckt und das Löschen des Caches ist sicher ein super Anwendungsfall. Leider stösst man schnell an Grenzen, wenn man nicht auf der gleichen Kiste entwickelt, auf der auch der Webserver installiert ist (was sicher für einige Entwickler der Fall sein könnte). Außerdem gibt es neben den File-Cachebackend ja noch viele andere, daher ist es vermutlich geschickter den Cache über die Magento-Api zu löschen (und das über ein CLI-Skript zur Verfügung zu stellen). Wenn man dann noch einen APC 1st-Level-Cache hat, wirds noch komplizierter, da man den ja nicht aus dem CLI-Kontext löschen kann.

    Die Möglichkeit kleiner Helfer-Skripte in die PhpStorm-Gui einzubinden ist dennoch klasse. Vielen Dank nochmal für den Tipp!

    Viele Grüße,

    Fabrizio



<< Zurück zur Liste