Kategorie-Archiv: IDE

Magento2 Entwicklungsumgebung einrichten – PhpStorm + MAMP

So langsam kommt Magento 2 ja an den Start – auch wir haben mittlerweile den ersten Magento 2 Shop online und so kommt es natürlich, dass immer mehr und mehr Entwickler in den Prozess einbezogen werden und von anderen Entwicklern lernen. Jetzt ist es natürlich so, dass wir ganz am Anfang stehen und genau jetzt noch die Chance haben, von Anfang an alles richtig zu machen. Das ist natürlich nicht so einfach, aber besser jetzt, als am Ende wieder alle abzuholen.

Die Problematik ist, auf allen Systemen den gleichen Stand des Projektes herzustellen. Alle sollen mit dem gleichen Workflow, den gleichen Tools und mit dem gleichen Code-Style arbeiten. Im Idealfall laufen bei jedem Commit dann noch Tools wie phpcs, phpmd oder jshint über den Code und finden „Fehler“ der Entwickler bevor der Stand total kaputt geht und wieder jeder in seinem eigenen Code-Style programmiert. Ich mag das z.B. überhaupt nicht aber Magento liefert einiges schon von Anfang an mit – man muss es nur nutzen! Weiterlesen…

Magento2 Composer Update: Failed to enable crypto

Wie mittlerweile bekannt sein sollte, entwickle ich Magento2 ebenfalls auf einem Mac unter MAMP (3.5) mit PHP 5.6 und PHP 7. Das lief auch alles wunderbar, bis Magento auf ihrer eigenen Repo-Source (https://repo.magento.com/) sich dazu entschlossen hat, TLS 1.0 nicht mehr zu unterstützen. Somit kann man nun mit einem älteren PHP nicht mehr auf die Systeme zugreifen, da keine Verbindung aufgebaut werden kann.

Testen kann man dies wie folgt:

Dass das nicht erfüllt werden kann, sieht man in er phpInfo hier:

  • SERVER_SOFTWARE Apache/2.2.29 (Unix) mod_wsgi/3.5 Python/2.7.10 PHP/5.6.10 mod_ssl/2.2.29 OpenSSL/0.9.8zh DAV/2 mod_fastcgi/2.4.6 mod_perl/2.0.9 Perl/v5.22.0
  • Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls, tlsv1.0

Weiterlesen…

Lokale Entwicklung: Mails abfangen und ansehen

Bei der täglichen Arbeit kommt es immer wieder vor, dass man Mails generieren, gestalten und verschicken muss. Man will natürlich wissen, ob alles richtig aussieht und funktioniert. Nun habe ich mir vor einiger Zeit ein Mailrelay konfiguriert, um wirklich richtige Mails von meiner lokalen Entwicklungsumgebung verschicken zu können. Geht natürlich – nur hin und wieder kommen natürlich doch Mails dazwischen, welche an den Kunden gehen. Oder noch schlimmer: An den Kunden des Kunden.

Da will man sich natürlich nicht immer entschuldigen und rechtfertigen, warum das gerade eigentlich passiert ist. Abhilfe schafft hier eigentlich nur eine Lösung: Kein SMTP mehr verwenden. Das heißt, gar keine richtigen Mails mehr verschicken. Also braucht man ein Stück Software, welches das Ganze emuliert und alle Mails auflistet. Weiterlesen…

JSLint: JavaScript-Validierung in phpStorm

Für eine etwas bessere JavaScript-Validierung kann man direkt in phpStorm JSLint nutzen. Dazu installiert man zuerst das entsprechende Node-Modul per npm.

Als nächstes öffnet man einfach die PHPStorm-Settings und aktiviert JSLint unter

JavaScript > Code Quality Tools > JSLint

Wenn man diesen Punkt aktiviert, ist es außerdem ratsam, dass man (falls man fürs Web entwickelt), auch „a browser“ anhakt. Ansonsten hat man das Problem, dass globale Variablen wie document oder window als nicht vorhanden deklariert werden.

Außerdem ist es generell ratsam, den strict modus zu aktivieren. Dazu schreibt man in die ersten Zeilen (im jeweiligen Context) einfach:

Dann werden die entsprechenden Fehler auch rot hinterlegt.

JsLint-Strict

In diesem Sinne: Am besten immer nach den Richtlinien von JSLint im Strict-Modus entwickeln. Ansonsten macht man nur überflüssiges Zeug oder andere Fehler. Viele Browser tolerieren das zwar, aber schön ist es dennoch nicht – und wer weiß, wann das sonst auf einen zurück fällt. Spätestens ein älterer Internet Explorer fliegt einem dann irgendwann um die Ohren.

Damit man das Aktivieren nicht vergisst, sollte man es einfach in den Standardeinstellungen von phpStorm setzen.

phpStorm: Standardeinstellungen für Projekte

Ich habe immer wieder das Problem, dass ich für jedes Projekt die selben nervigen Einstellungen mache. Da wären zum Beispiel:

  • xDebug richtig konfigurieren
  • VCS root errors deaktivieren
  • Pfade zu Composer und Phing pflegen
  • JSLint und JSHint konfigurieren
  • Eventuell SASS und LESS File Watcher konfigurieren
  • Magicento einrichten

All das macht man immer und immer wieder. Abhilfe schaffen die Default Settings von phpStorm. Dazu öffnet man ein beliebiges Projekt und geht dann durch das Menu nach „File -> Default Settings…“. In dem sich öffnenden Dialog kann man nun alle Einstellungen vornehmen, welche man für zukünftige Projekte als Standard haben möchte.

Mac OS X Snippet Manager – CodeBox

Schon länger war ich auf der Suche nach einem Tool, mit dem ich meine Snippets anständig organisieren kann. Das meiste braucht man ja dann irgendwie doch öfter als man denkt. Bisher habe ich häufig gist für diese Aufgabe genutzt – gerade im Magento-Bereich.

Aber irgendwie musste es doch eine elegantere Lösung für das Problem geben. Also suchte ich im Internet nach „Mac OS X Snippet Manager“. Ich war erstaunt, welche Vielzahl von Apps es für diese Aufgabe gibt. Ich war kurz davor Snippets zu kaufen (wegen eines 50% Rabatts). Das PayPal-Fenster war schon offen, und ich war kurz davor zu klicken. Irgendetwas hat mich aber dann doch davon abgehalten, und ich habe den nächsten Google-Link geöffnet. Hier fand ich die nächste App.

Am Ende hat mir Codebox (AppStore) am meisten zugesagt. Die App kostet 8,99€ und sollte damit im Budget von wirklich jedem liegen. Man kann beliebig viele Libraries anlegen, welche wiederum Groups enthalten. Diese Groups kann man in Ordner einsortieren. Jede Group kann beliebig viele Snippets enthalten. Ein Snippet kann dabei sogar aus mehreren Dateien bestehen. So sind der Sortierung wirklich keine Grenzen gesetzt. Abgerundet wird das Ganze durch Smart-Folders, welche man schon aus anderen Programmen wie Aperture oder dem Finder kennt. So kann man Snippets ganz einfach nach Erstellungsdatum, verschiedenen Tags oder Namen Filtern. Extrem cool!

CodeBox

Zusätzlich unterstützt CodeBox auch Syntax-Highlighting für unendliche viele Sprachen. Welche man sehen möchte, kann man in den Einstellungen filtern – so braucht man nicht ständig zwischen tausenden Sprachen suchen, um die gerade genutzte zu finden. Echt cool!

Das genialste Feature ist per default aber deaktiviert: Die Toolbar-Integration. Hier läuft ein kleiner Dienst, welcher per Klick das Browsen durch die verschiedenen Snippet-Kataloge erlaubt. Nutzt man die Spotlight-ähnliche Suche, findet man super schnell einzelne Snippets und kann diese in die Zwischenablage kopieren. Was will man also mehr?

Was nun noch fehlen würde, wäre eine saubere Integration zu phpStorm – aber das ist dann schon fast zu viel gewünscht. Sogar beinah unnötig: Denn wenn man das Snippet gefunden hat, kann man dieses nicht nur in die Zwischenablage kopieren lassen, sondern eben auch in das aktuelle Fenster einfügen lassen! Somit einfach die Stelle im phpStorm auswählen, Snippet suchen und einfügen lassen. Genial.

CodeBox Paste

Volle Kaufempfehlung!

Mein Upgrade auf MAMP3 – schnell und unkompliziert

Vor einigen Tagen ist MAMP3 released worden – nun habe ich meine Version gefühlt noch nie aktualisiert (ich kann mich zumindest nicht daran erinnern).

Nun habe ich mir natürlich schon einiges konfiguriert, und würde auch gerne alles behalten. Da wären zum Beispiel

  • xDebug
  • Pecl / Pear
  • Postfix
  • phpUnit
  • phpDoc
  • vHosts

Damit das alles nicht komplett verloren geht, habe ich mir als erstes mein PHP 5.4.4-Verzeichnis gezippt. Eigentlich war das aber gar nicht nötig, da der Installer von MAMP3 automatisch das alte Verzeichnis umbenennt. Es geht also nichts verloren. Die mySQL-Datenbanken werden aber schon automatisch in die neue Instanz übernommen und anscheinend nicht kopiert, sondern verschoben. Also nicht wundern.

PHP-Quellen laden

Vorher war ich auf Version 5.4.4 unterwegs – nun bietet es sich ja schon an, die Umgebung auf Version 5.4.25 zu aktualisieren. Natürlich brauche ich auch dann erstmal wieder das include Verzeichnis unter

Dafür lade ich einfach die passenden Quellen zu der PHP-Version herunter und entpacke sie in meinem neuen Verzeichnis. Dann können wir auch schon configure aufrufen.

xDebug installieren

Dann geht es weiter mit xDebug:

Läuft. Noch die php.ini anpassen – ganz am Ende (wichtig!!) fügen wir also folgendes ein:

phpUnit

Wenn wir schonmal dabei sind, installieren wir direkt phpUnit:

phpDoc

Weitere php.ini Einstellungen

Sendmail konfiguriere ich auch etwas um, so ändere ich z.B. den Default-Absender:

Ansonsten noch ein wenig Error Reporting:

Und ein paar extra Resourcen gibt es auch noch gratis dazu:

Weitere Settings

Die vHosts habe ich glücklicherweise ganz sauber in separaten Dateien konfiguriert. So brauchte ich nur 1-2 Includes in die httpd.conf zu schreiben und war mit dem Thema schon durch.

Weiterhin muss ich den export-Path in meinem .bash_profile anpassen, da dieser noch auf die alte Versionsnummer zeigt:

Beim ersten Start von MAMP3 geht es erstmal direkt in die Settings:

  • Ports auf Default stellen (sonst nervt es mich einfach nur)
  • PHP-Version geändert auf 5.4.25 (es wird scheinbar immer nur die höchste und die niedrigste Version im php-Verzeichnis angezeigt – einfach alle anderen löschen)

Fertig! Unter http://localhost/MAMP/index.php?language=English&page=phpinfo (Der Link geht natürlich nur, wenn ihr MAMP am laufen habt) seht ihr dann auch, ob xDebug läuft.