Entwurfsmuster – Sinn und Unsinn des Singleton

In einer kleinen Reihe von Blogbeiträgen möchte ich die nächste Zeit auf verschiedene Entwurfsmuster eingehen, die uns als Programmierer immer wieder begegnen und uns die Arbeit erleichtern.

Es geht los mit einem der einfacheren Muster: Dem Singleton. Ich will verdeutlichen wozu es verwendet wird, welche Probleme es bereiten kann und natürlich gibt es auch ein Codebeispiel. Außerdem werde ich noch auf das Multiton als Weiterführung der Singleton-Idee eingehen. Entwurfsmuster – Sinn und Unsinn des Singleton weiterlesen

Objektorientierung (OOP) – Verwalten der Dienste (Dependency Injection)

Klassen in PHP haben immer wieder Abhängigkeiten zu anderen Klassen – sogenannten Diensten (Service). Um diese möglichst flexibel und einfach verwalten zu können wird ein Service-Container benötigt. In diesem Blogbeitrag erläutere ich euch die Vorteile eines solchen Containers und gebe ein Beispiel wie er aussehen könnte. Objektorientierung (OOP) – Verwalten der Dienste (Dependency Injection) weiterlesen

PHP Unittests: Wie kann ich eine final Methode mocken?

Damit Mock-Objekte die instanceof Prüfungen im zu testenden Code passieren können, müssen sie Kinder der simulierten Klasse sein. Aber als ebendiese Kindklassen können sie keine finalen Methoden überschreiben. In diesem Blogbeitrag werde ich euch zeigen, wie ihr trotzdem sauber testen könnt. PHP Unittests: Wie kann ich eine final Methode mocken? weiterlesen

MVC – Einführung durch ein eigenes kleines „Framework“

PHP-Code für Webanwendungen folgt für gewöhnlich einem Muster. Früher war das gerne mal „Spaghetti-Code“, heute folgen viele dem Prinzip des MVC – eine Abkürzung für Model-View-Controller. In diesem Artikel werde ich mit euch ein eigenes kleines „Framework“ entwickeln, dass dieses Prinzip veranschaulicht. MVC – Einführung durch ein eigenes kleines „Framework“ weiterlesen

PHP Unittests: Wie teste ich mit Singletons?

Das Problem mit Singletons ist, dass sie eine statische Variable enthalten, die über verschiedene Tests hinweg erhalten bleibt. Dazu kommt, dass sie protected/private ist und somit nicht einfach zurück gesetzt werden kann. In diesem Beitrag werden wir sehen, wie wir der Sache beikommen können.

PHP Unittests: Wie teste ich mit Singletons? weiterlesen