Kategorie-Archiv: IDE

CodeKit – komfortable CSS-Entwicklung mit LESS

Als Entwickler geht mir vor Allem eins auf den Keks: Design. Ich mag es nicht, wenn man Elemente hin und her schieben muss. Pixel für Pixel. Mit Chrome habe ich da ja schon einen einigermaßen runden Workflow gehabt – aber das geht wirklich noch besser. Und zwar mit LESS und CodeKit ($28).

Das geniale: Die Projekte (Verzeichnisse) werden einfach in CodeKit geladen. Hier werden Dateiänderungen überwacht und LESS dann einfach neu kompiliert, wenn sich eine Datei ändert. Doch damit nicht genug: Man kann außerdem definieren, dass der Browser ebenfalls aktualisiert werden soll! Dabei wird nicht die Seite komplett neu geladen, sondern die Änderung wird auch noch animiert.

CodeKit

Zusammen mit phpStorm also ein unschlagbares Team. Das einzige Problem was ich nun habe, ist fehlender Platz auf meinem MacBook – so muss ich mich nun doch öfter ins Arbeitszimmer setzen und den 24-Zöller anklemmen. Aber dann macht es erst richtig Spaß!

Kleiner Tipp noch: Von Haus aus funktioniert die Integration mit phpStorm nicht so richtig – das liegt daran, dass phpStorm per Default einen sog. „Safe-Mode“ nutzt. Dieser schreibt Änderungen erst in eine temporäre Datei, bevor das Original verändert wird. Schaltet man diesen ab, funktioniert die Magie hinter CodeKit wirklich einwandfrei (getestet mit Chrome). Diese Einstellung findet man unter dem Tab „General“:

phpStorm Safe-Mode

Die 28 Dollar habe ich jedenfalls gerne investiert – ein geniales Tool.

PHP: Dokumentation mit dem phpDocumentor (phpdoc)

Ja, die liebe Dokumentation. Als Entwickler ist es doch irgendwie das letzte was man machen möchte und was sicherlich am wenigsten Spaß bringt. Umso besser, wenn man sich etwas Arbeit abnehmen lassen kann.

Installation / Konfiguration

Ich arbeite aktuell mit MAMP unter Mac OS X Mountain Lion 10.8.5 und mit php 5.4.4 – hier habe ich mir auch schon PEAR konfiguriert und kann so ganz einfach die Erweiterung nachinstallieren – wie das geht habe ich mal in diesem Artikel angerissen:

In meinem Fall wurde Version 2.0.1 installiert. So sollte die Ausgabe in etwa aussehen:

Weiterhin ist es sinnvoll GraphViz direkt mit zu installieren. Mit diesem Library ist es phpDoc möglich, grafische Abhängigkeiten und Hierarchien zwischen den Klassen darzustellen. Bitte beachtet, dass ihr dazu brew installieren müsst (was ich aber generell immer empfehlen kann).

Falls die Installation nicht durchgeführt wird, bekommt man am Ende der phpDoc-Generierung die folgende Meldung:

[Zend\Stdlib\Exception\ExtensionNotLoadedException] Unable to find the dot command of the GraphViz package. Is GraphViz correctly installed and present in your path?

Damit ich diese Version von überall aufrufen kann, lege ich einen Link im bin-Verzeichnis ab:

Nutzung

Nun können wir die neu installierte Erweiterung auch schon ausprobieren. Dazu einfach in ein (relativ gut) dokumentiertes Projekt wechseln und folgenden Befehl ausführen:

Nun wird alles in dem aktuellen Verzeichnis dokumentiert und nach docs gespeichert. Die Ausgabe zeigt außerdem sehr schön auf, welche Attribute, Methoden oder Klassen noch nicht dokumentiert sind.

Natürlich möchte man nicht immer alle Konfigurationsparameter per Hand vornehmen. In diesem Fall empfiehlt es sich, eine phpdoc.xml in das Projekt zu legen. Was hier genau konfiguriert werden kann, lässt sich hier nachlesen. Ein Template für die Konfiguration findet man hier:

Fazit

Zum Abschluss bleibt zu sagen: Tolle Lösung um sehr einfache Dokumentationen zu erstellen. Wenn man sich daran gewöhnt hat, denkt man schon beim Programmieren daran die entsprechenden Kommentare an die Klassen, Methoden und Attribute zu schreiben. So zieht sich die Dokumentation über die komplette Projektlänge und schlägt nicht erst am Ende auf.

Weiterhin gefällt es mir sehr gut, dass phpDoc auf Bootstrap setzt (wenn auch noch nicht auf Version 3).

Leider sind die Klassennamen von Magento teilweise sehr lang und machen das Layout der Dokumentation etwas kaputt. Dafür gibt es aber sicher per Konfiguration noch eine Lösung.

Quartz Composer unter Mountain Lion (10.8) installieren

Um unter Mac OS X 10.8 alias Mountain Lion den Quartz Composer zu installieren, muss man auf die Apple Developer Seite wechseln und sich anmelden. Falls man noch kein Konto hat, kann man sich kostenlos registrieren. Als nächstes sucht man auf der Download-Seite nach Quartz und lädt die letzten „Graphics Tools for XCode“. In meinem Fall sind die vom Januar 2013.

GraphicsToolsDownload

 

In dem Paket sind jede Menge Tools enthalten – unter anderem der Quartz Composer. Den Inhalt des Paketes habe ich mir einfach in ein neues Verzeichnis unterhalt von „Anwendungen“ geschoben um den Überblick nicht zu verlieren.

GraphicsToolsContent

xDebug & PHPStorm: Disconnected

In einem vorigen Beitrag habe ich bereits beschrieben, wie man sich eine Entwicklungsumgebung unter MAMP und phpStorm auf dem Mac einrichtet. Leider hatte ich in meiner Version von xDebug (2.2.0) öfter das Problem, dass Verbindungen einfach zusammengebrochen sind sobald der Breakpoint getroffen wurde. In manchen Projekten lief alles, in anderen dafür überhaupt garnichts. So macht Debuggen natürlich wenig Sinn und absolut keinen Spaß.

Nun bin ich wahrlich nicht der Typ, der ständig im Debugger hängt und so entwickelt. Generell bin ich die letzten 10 Jahre gut ohne Debugger in PHP klar gekommen (echo, print_r und var_dump sei dank). Dennoch wollte ich das Problem irgendwie lösen.

Schnell fand ich heraus, dass das Problem in der von MAMP mitgelieferten Version 2.2.0 von xDebug bekannt ist, und man daher lieber die Version 2.2.1 einsetzen solle. Dank einer bestehenden Konfiguration von PECL war die Installation sehr einfach. Einfach die alte Erweiterung umbenannt und mit folgendem Kommando neu gebaut:

Nicht vergessen den Apache neu zu starten (und eventuell die php.ini anzupassen) Genauere Information zur Installation findet man hier. In einem anderen Artikel bin ich bereits näher auf die erforderliche Konfiguration eingegangen.

Mit der neuen Version läuft alles ohne Probleme – so kann ich auch endlich in einem Magento-Projekt die Debug-Funktionalitäten nutzen. Alles perfekt!

xDebug-Profiling unter MAMP und Mac OS X

In einem vorigen Artikel habe ich bereits erwähnt wie man xDebug unter Mac OS X und MAMP konfiguriert. In diesem Artikel geht es um das Profiling mittels xDebug und die Analyse der generierten Daten.

Als erstes müssen in der php.ini folgende Zeilen hinzugefügt werden:

Der angegebene Pfad zu der xDebug-Extension und dem Output-Verzeichnis sollte kann natürlich abweichen und sollte angepasst werden. Nach der Änderung muss der Apache-Server einmal neugestartet werden.

Nun wird bei jedem Aufruf im Browser ein entsprechendes Logfile geschrieben. Möchte man dies nicht, kann man über ein entsprechenden Parameter oder ein Cookie das logging anstoßen. Dazu ist allerdings die Konfiguration in der php.ini anzupassen. Außerdem kann man als Nutzer von phpStorm eine Toolbar generieren um Zugriff auf die verschiedenen Aktionen zu bekommen.

Um die geschriebenen Dateien zu analysieren nutze ich phpStorm 5. Diese können mittels „Tools -> Analyze Xdebug Profiler Snapshot…“ geöffnet werden.

PHPStorm xDebug

Die Analyse ist eigentlich sehr einfach und selbsterklärend. Einfach mal ausprobieren!

Um die erstellten Dateien zu analysieren eignen sich weiterhin die folgenden Tools:

In diesem Artikel ist außerdem sehr schön beschrieben wie man webgrind (auch auf GitHub) unter Mac OS X und MAMP konfiguriert.

phpStorm + MAMP: PHP-Debugging unter Mac OS Mountain Lion

Einleitung

In diesem Artikel möchte auf die Möglichkeiten von PHP-Debugging unter OS X Mountain Lion eingehen. Folgende Komponten habe ich zur Zeit im Einsatz:

  • OS X Mountain Lion (10.8.2)
  • MAMP 2.1.1 (Apache Port: 80)
  • phpStorm 5.0.4
  • Chrome 23

Mit dieser Version von MAMP werden 3 PHP-Versionen ausgeliefert (5.2.17, 5.3.14 und 5.4.4). Standardmäßig wird 5.4.4 genutzt. Da für die Konfiguration vom Debugging die php.ini bearbeitet werden muss, ist es gut zu wissen welche Version man gerade verwendet. Dazu kann einfach die PHP-Funktion phpversion genutzt werden. Außerdem wird xDebug in der Version von MAMP schon mitgeliefert und muss lediglich konfiguriert werden. Klingt alles also sehr einfach.

Konfiguration

Standardmäßig scheint Debugging ausgeschaltet zu sein – das Setzen von Breakpoints in phpStorm bleibt jedenfalls ohne jede Funktion und wird komplett ignoriert.

Wenn man die php.ini öffnet muss man dem Eintrag von xDebug suchen. In meinem Fall war dieser ganz am Ende der Datei. Verwirrend für mich ist aktuell, warum es zwei verschiedene php.ini-Dateien unter MAMP gibt. Ich bearbeite einfach beide. Nach dem Speichern wird der Server einmal gestartet und gestoppt. Weiterlesen…