JavaScript Coding Patterns: Objekt-Vererbung mit Prototypen

In den vorangegangenen Teilen der Reihe JavaScript Coding Patterns (Teil I, Teil II und Teil III) wurde immer wieder betont, dass JavaScript eine funktionale und zugleich objektorientierte Skriptsprache ist. Funktionen sind hier selbst Objekte die in JavaScript nicht auf Klassen beruhen, sondern ihre Attribute und Methoden von bereits existierenden Objekten erben. Es handelt sich dabei um eine prototypenbasierte Art der Vererbung.

In diesem vierten Teil der Reihe wird es darum gehen sich die Rolle, die Prototypen in JavaScript spielen, etwas genauer anzuschauen.

Weiterlesen

JavaScript Coding Patterns: Objekte & Objekt-Literale

Beim Programmieren mit JavaScript steht einem nicht immer ein Framework zur Verfügung. Auch lohnt sich der Einsatz eines solchen Hilfsmittels nicht immer, da schließlich auch viel Kleinkram mit JavaScript zu programmieren ist. Also macht es doch Sinn, sich ein paar Gedanken zum Thema JavaScript Coding Patterns zu machen.

In einer objektorientierten und funktionalen Programmiersprache wie JavaScript sie ist, spielen selbstverständlich ObjekteFunktionen und Vererbung die Hauptrolle bei der effizienten und sinnvollen Strukturierung von Code. Entlang dieser zentralen Sprachelemente haben sich Coding Patterns herausgebildet, von denen ich in diesem ersten Teil einer Artikel-Serie den Einsatz des Objekt-Literals als Mittel zur Code-Organisation vorstellen werde.

Weiterlesen

17.12. Zend Framework (1) vs. Symfony2

In this article, I want to highlight some differences between the two PHP frameworks that have been the most popular ones at the time of writing.
Zend Framework (ZF) is currently a quasi-standard in many PHP companies and Symony2’s popularity is constantly increasing. Symfony2 is pretty new now and many developers are thinking about if and when to make the switch from ZF to Symfony2 which is why I think we should spend time looking at the frameworks‘ differences.

I selected three topics that are implemented differently in these frameworks and will describe how each of them does it.

Weiterlesen

06.12. Doctrine 2 – Zend Framework Integration

In yesterday’s article of our advent calendar, we explained the concepts underlying Doctrine 2. In today’s article, we want to use that knowledge and create a simple Zend Framework (ZF) application that uses Doctrine 2 to persist its business objects.

While explaining how to integrate Doctrine 2 into Zend Framework, we will create a generic sandbox that can be used for future projects building up on these technologies.

Weiterlesen

05.12. Doctrine 2

Object-relational mapping (ORM) frameworks have been around for several years now and for some people, ORM is already outdated by now. As we have seen with other technologies and concepts before, PHP is not exactly what we call an early adopter among the programming languages. Thus it took some time for ORM to grow up in the PHP context.

There have been some frameworks before Doctrine 2 that implement ORM (remember e.g. Propel) specific tasks but most of them lack the required maturity to be used in large projects. With Doctrine 2, PHP takes a huge step into the right direction – Doctrine 2 is fast, extensible and easy to use.

This article will take you on a tour through the main concepts of Doctrine 2 in the first part and then explain how to use it in a real world application in the second part. Since at the time of writing Zend Framework 1.11.xx (ZF) is very popular, we will integrate Doctrine 2 into a ZF project.

Weiterlesen

Traits in PHP 5.4

Seit PHP die Objekt-Orientierung in genügendem Umfang unterstützt, gab es in Hinsicht auf die Code-Qualität von PHP-Applikationen große Fortschritte. Früher galten PHP-Entwickler als die Vandalen unter den Programmierern, da die Sprache – und dies ändert sich leider nur sehr langsam – sehr viele Möglichkeiten bot, undurchsichtigen und schlecht wartbaren Quellcode zu produzieren. Mit PHP 5 wurde ein großer Schritt in die richtige Richtung gemacht und heute ähnelt die Objekt-Orientierung von PHP der von Java sehr stark. Ende Juni 2011 wurde auf dieser Basis dann ein weiterer Schritt gewagt, der allerdings nicht von Java sondern von der aktuell immer stärker an Popularität gewinnenden Sprache Scala inspiriert wurde. Das neue Sprachfeature nennt sich Traits und ermöglicht Klassen-übergreifenden Code-Reuse ohne vertikale Vererbung. Was sich hier hochgestochen anhört, ist grundsätzlich ein relativ einfacher Mechanismus, der im Folgenden anhand eines simplen Beispiels erläutert wird.

Weiterlesen