Früher oder später geht es in jeder Webapplikation darum Daten zu speichern. In einer nach dem MVC-Prinzip orientierten Anwendung wird die ein oder andere Form eines ORM zum Einsatz kommen. Solche ORM (z. B. Doctrine, Eloquent) folgen entweder dem Paradigma des Active Record oder das dem Data Mapper. In diesem Artikel wird es um die Unterschiede dieser beiden gehen. Was ist der Unterschied zwischen Active Record und Data Mapper? weiterlesen
Kategorie: OOP
Entwurfsmuster – Komplexe Klassen bändigen mit dem Builder
Klassenstrukturen können manchmal recht komplex werden. Dann wird alleine schon die Instanzierung ein Verstoß gegen das DRY-Prinzip, oder soll dem Anwender nicht zugemutet werden. Hier kann ein Builder aushelfen.
Entwurfsmuster – Komplexe Klassen bändigen mit dem Builder weiterlesen
Restrukturierungen vereinfachen mit ::class
PHP 5.5 hat eine neue dynamische Klassenkonstante ::class
eingeführt, die die Wartbarkeit des Codes deutlich verbessern kann. Restrukturierungen vereinfachen mit ::class weiterlesen
Entwurfsmuster – Module vereinheitlichen mit einem Adapter
In PHP sind wir bereits von vielen Plugins und Modulen umgeben, die unsere Probleme vollständig lösen und eigentlich gar keiner Erweiterung bedürfen. Da aber deren Entwickler natürlich nicht unsere Interfaces kennen und es auch keine allgemein gültigen Spezifikationen dafür gibt, müssen sie noch vereinheitlicht werden – dazu wird ein sogenannter Adapter verwendet. Entwurfsmuster – Module vereinheitlichen mit einem Adapter weiterlesen
Entwurfsmuster – Viele Kindklassen verwalten mit der Factory
Wenn in einem Modul so viele Arbeiter (Kindklassen) vorhanden sind, dass es aussieht wie eine Fabrik, dann könnte die Factory das Entwurfsmuster sein mit dem die Verwaltung wieder einfach wird.
Aber Spaß beiseite: In diesem Beitrag wird es darum gehen verschiedene Typen in Form von Kindklassen effizient zu instanzieren. Entwurfsmuster – Viele Kindklassen verwalten mit der Factory weiterlesen
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
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
Objektorientierung (OOP) – Abstract, Interface, Trait
Nachdem ich kürzlich ein Beispiel zu OOP gegeben habe, möchte ich nun ein paar Konzepte weiter ausführen. Zum Beispiel wann man ein Interface oder eine abstrakte Klasse verwenden sollte. „Neumodisches Zeug“ wie Traits werden auch berücksichtigt. Objektorientierung (OOP) – Abstract, Interface, Trait weiterlesen
Ein Beispiel zur Objektorientierung
Artikel zur Objektorientierung gibt es schon genügend (Wikipedia). Ich möchte hier anhand eines Beispiels die Unterschiede zur prozeduralen Programmierung verdeutlichen. Ein Beispiel zur Objektorientierung weiterlesen