smart | Webentwicklung
Alles rund um HTML5, PHP, WordPress & Co.

Kategorie: PHP

PHPUnit: Dateisystem mocken mit vfsStream

3. September 2013
Stephan
PHPUnit: Dateisystem mithilfe von vfsStream mocken

Beim Unit-Testing möchte man gerne die zu testenden Units, wie z.B. einzelne Klassen isoliert vom Gesamtsystem und somit ohne äußere Einflüsse bzw. Abhängigkeiten testen. Dazu lassen sich Pseudo-Objekte, sogenannte Mocks, erstellen und verwenden.

Testet ihr z.B. eine Klasse A, die abhängig von Klasse B ist, so könnt ihr Klasse B mocken, damit Klasse A unabhängig von Klasse B getestet werden kann.

Das Mocken von Klassen bzw. konkreten Objekten unterstützt PHPUnit bereits „out of the box“. Schwieriger hingegen ist das Mocken des Dateisystems. Hierfür gibt es aber mit vfsStream eine einfache Lösung. Dabei handelt es sich um einen Stream-Wrapper, welcher Zugriff auf ein virtuelles Dateisystem ermöglicht und innerhalb von PHPUnit-Tests als Mock für das reale Dateisystem genutzt werden kann.

In diesem Artikel zeige ich euch an einem einfachen Beispiel, wie ihr vfsStream in euren PHPUnit-Tests einsetzen könnt.

Weiterlesen

Kategorie: PHP, TDD & BDD

PHP: DateTime, DateInterval & DatePeriod verwenden

14. März 2013
Stephan
PHP: DateTime, DateInterval & DatePeriod verwenden

Für PHP gibt es viele hilfreiche Funktionen zum Arbeiten mit Datums- & Uhrzeitangaben. Bekannte Vertreter sind hier z.B. die Funktionen date und strtotime.

Seit Einzug der objektorientierten Programmierung in PHP gibt es hierfür aber auch spezielle Klassen, die einem Arbeit mit Zeitangaben enorm erleichtern.

In diesem Artikel erfahrt ihr die grundlegende Verwendung der DateTime-Klasse.

Weiterlesen

Kategorie: PHP

PHP: API-Doku mit PHPDocumentor & PHPStorm generieren

9. Januar 2013
Stephan
PHP-Projekt-Dokumentation (mittels PHPDocumentor) mit PHPStorm generieren

Sowohl bei größeren Projekten an denen mehrere Entwickler arbeiten als auch bei kleineren Projekten, ist es ratsam Code zu dokumentieren und eine API-Dokumentation zu erzeugen.

Für meine PHP-Pojekte bevorzuge ich hierfür PHPDocumentor. Da es doch sehr lästig ist, immer über einen Befehl in der Konsole PHPDocumentor auszuführen, zeige ich euch, wie ihr PHPDocumentor in PHPStorm integrieren könnt. Hat einfach den Vorteil, dass ich so direkt aus meiner IDE heraus die Doku für meine PHP-Projekte erzeugen kann.

Weiterlesen

Kategorie: PHP

PHP: Klassen nachladen via Namespaces & Autoloader

15. November 2012
Stephan
PHP: Klassen automatisch nachladen mit Autoloader & Namespaces

In diesem Artikel möchte ich euch zeigen, wie ihr in PHP mithilfe der SPL (Standard PHP Library) eine eigene kleine Autoloader-Klasse implementieren könnt.

Eine Autoloader-Klasse dient dazu Klassen zu laden, die zur Laufzeit nicht gefunden wurden. Das hat den Vorteil, dass ihr nicht in jeder Datei jede benötigte Klasse, um genauer zu sein, die entsprechende Datei, per include oder require laden müsst.

Die Autoloader-Klasse, die euch hier vorstelle, verwendet zudem beim Laden von Klassen deren Namespaces, um den richtigen Dateipfad zu ermitteln.

Weiterlesen

Kategorie: PHP

Performance-Profiling in PHP mit XHProf

26. April 2012
Stephan
PHP

Ein entscheidenes Qualitätsmerkmal und somit wichtiges Kriterium für Webapplikationen ist im Allgemeinen die Performance.

Um Performance-Bremsen im Code bzw. in einer Software zu finden, haben sich sogenannte Profiler als nützlich erwiesen, welche den Code zur Laufzeit analysieren. Hierdurch kann festgestellt werden, welche Teile des Codes z.B. wie viel Zeit und Speicher benötigen und performancelastige Codestellen können basierend auf den gewonnen Daten optimiert werden.

Im PHP-Bereich gibt es z.B. das bekannte PHP-Profiling- und Debugger-Tool XDebug. In diesem Artikel möchte ich euch jedoch das PHP-Profiling-Tool XHProf vorstellen.

Weiterlesen

Kategorie: PHP