phpundmysql.de

Archiv für Juli, 2011

Modernizr nach dem Baukastenprinzip

Dienstag, Juli 12th, 2011

Die Entwickler von Modernizr machen sich überhaupt nicht mehr die Mühe, vorgefertigte Versionen auf der Webseite zum Download zur Verfügung zu stellen. Stattdessen existiert lediglich eine Art Baukasten zum Zusammenklicken aller nötigen Features, wie man ihn mittlerweile auch von der HTML5 Boilerplate gewohnt ist. Überraschend ist das nicht, immerhin haben bei Framework und Library jeweils dieselben Entwickler die Finger im Spiel.

Als geneigter Anwender kommt man jedoch nicht umhin, sich mit der Materie auszukennen, um sich das passende Build zu erschaffen. Immerhin gilt es, aus über 50 Möglichkeiten aus den Bereichen HTML5, CSS3, Misc (Geolocation API, SVG, WebGL...) und Extras (Modernizr API, Media Queries...) genau das heraus zu finden, was man auf seiner Webseite einzusetzen gedenkt. Das ist zugegeben nicht immer einfach, denn manche Optionen haben auf gewöhnlichen Webseiten Seltenheitscharakter - schon mal SVG Clip Paths oder SMIL eingesetzt?

Allzu akribisch muss man aber nicht werden. Bei einer mittleren Anzahl von Optionen kommt man allerdings schnell unter 10 Kilobyte und hat seine Webseite damit wieder ein Stück bandbreitenschonender gemacht. Gerade die wachsende Gemeinde mobiler Surfer wird einem das danken.

Das sind die neuen Features von PHP 5.4

Samstag, Juli 2nd, 2011

Auf der Habenseite verbuchen wir:

Traits
PHP unterstützt für Objektorientierte Programmierung direkte Vererbung. Eine Klasse erbt von genau einer Oberklasse, eine Vererbung aus mehreren Quellen kann nicht erfolgen. Das führt im Zweifel wieder zu Codeduplizierung, was man mit der Objektorientierung prinzipiell zu verringern versucht. Über Traits lassen sich Codeteile in einer Klasse aus mehreren Quellen beziehen (das Beispiel liefert die Ausgabe 112):

trait A {
	public static function abc(){
		echo 1;
	}
}
 
trait B {
	public static function def(){
		echo 2;
	}
}
 
class X {
	use A;
}
 
class Y {
	use A;
	use B;
}
 
X::abc();
Y::abc();
Y::def();

Array Dereferencing
Was für Objekte schon länger funktioniert, kommt nun auch für Arrays. Gibt eine Methode ein Array zurück, lässt sich der Methodenaufruf mit einer Feldselektion vereinen - eine einfache Form des Syntax Chaining (das Beispiel gibt den buchstaben c aus):

function func() {
    return array('a', 'b', 'c');
}
echo func()[2];

Traversable MySQLi Resultsets
Die Klasse MySQLi Result implementiert nun das Interface Traversable. Praktischer Inhalt dieses technischen Einzeilers ist, dass man das Ergebnis einer MySQLi Abfrage direkt mit foreach durchlaufen kann:

$m = new mysqli('localhost', 'user', 'pass', 'datenbank');
if($result = $m->query("SELECT * FROM tabelle;")){
	foreach($result as $row){
		print_r($row);
	}
	$result->close();
}
$m->close();

Auf der Sollseite steht allerdings auch noch einiges, was für für den künftigen Entwicklungsstand erwarten - immerhin gibt es bislang nur die Alphaversionen:

Instance Method calling:
https://wiki.php.net/rfc/instance-method-call

Session Handler Class:
https://wiki.php.net/rfc/session-oo

Built-in Web Server - PHP ohne Apache:
https://wiki.php.net/rfc/builtinwebserver

Natürlich ist das nicht alles, was die Entwickler in den PHP 5.3 Nachfolger einbauen wollen. Die Liste ist lang und wer Interesse an den umgesetzten Details hat, findet das aktuelle Changelog unter NEWS auf php.net. Die Todo Liste findet sich im Wiki.

Kategorien

Unser Buch bei Amazon

PHP 5.4 und MySQL 5.5

Social Bookmarks

Archiv