Archive for the ‘PHP 5.4’ tag
PHP 5.4: Die neue Funktion header_register_callback()
Neben den vielen größeren Änderungen und neuen Features in PHP 5.4 gibt es auch eine kleine, aber vielleicht nützliche Funktion, mit der man noch an den HTTP-Headern rumpfuschen kann bevor sie an den Browser geschickt werden: header_register_callback().
Gerade bei älteren Applikationen, bei denen die Header mittels header() an x-beliebigen Stellen manipuliert werden, kann man mittels dieser Funktion an einer zentralen Stelle noch welche hinzufügen, ändern oder entfernen.
Der Callback, der an die Funktion übergeben wird, wird genau dann aufgerufen wenn die Header an den Browser geschickt würden, also bei der ersten Ausgabe des Skripts. Ich kopiere mal als Beispiel schnell den Code aus dem Manual, daran ist ersichtlich was die Funktion machen kann:
PHP 5.4.0 released! Neue Funktionen
Soeben wurde PHP 5.4.0 released! Nach 8 Release Candidates ist nun die finale Version erschienen und kann auf php.net heruntergeladen werden. Ich habe 2 meiner größeren Applikationen bereits mit der neuen Version getestet (mit dem RC8, der gleich der finalen Version ist). Sobald DotDeb die neue Version released wird der Server upgedated.
So, hier eine Übersicht der wichtigsten Änderungen:
- Das wohl größte Feature: Traits (auch „Horizontal Reuse“ renannt). Hier im Blog gibt es auch schon einen sehr ausführlichen Artikel über Traits.
<? class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello();
Weitere Details und Beispiele zu Traits gibt es in diesen Blogartikeln.
Der eingebaute Webserver in PHP 5.4
Mit PHP 5.4 kommt ein kleiner eingebauter Webserver mitgeliefert, der allerdings nur für Testzwecke genutzt werden soll, auf Produktionsmaschienen soll man ihn nicht einsetzen, die Performance ist nicht so der Hit (single threaded) und auch Features wie .htaccess Support (mod_rewrite etc.) und einiges andere fehlen.
Falls bei der Entwicklung oder auf einer Testmachine „mal eben schnell“ ein Script via Webserver getestet werden soll kann man sich die Installation eines „richtigen“ Webservers sparen, und einfach PHP selbst nutzen:
PHP 5.4.0 Beta1 Performance!
Ich bin zufällig auf eine Präsentation über die kommende PHP 5.4.0 Version gestossen, mit einer Liste aller entfernten Features, neuer Features, aber auch interessanten Performance- und Speicherverbrauchdaten. Informationen über Features sind ja schon etwas länger bekannt, und im Changelog findet man auch viele Informationen, aber ehrlich gesagt konnte ich es nicht glauben was da bei den Performance-Tests steht, das mußte ich selbst ausprobieren.
Hier Beispiel 1 aus der Präsentation:
/php537/php micro_bench.php Max memory usage 1048576 bytes. Running 27.608 s. /php540/php micro_bench.php Max memory usage 524288 bytes. Running 13.254 s.
Hier Beispiel 2 aus der Präsentation:
/php537/php NewObjectClassTest.php Running 0.20629 s , 640616 bytes. /php537/php StaticClassTest.php Running 0.35047 s, 640616 bytes. /php540/php NewObjectClassTest.php Running 0.12018 s, 227808 bytes. /php540/php StaticClassTest.php Running 0.10803 s, 227880 bytes.
Hier Beispiel 3 aus der Präsentation:
Der Klasse neue Kleider: Traits
Gastartikel von Thomas Worm.
Ich bin 23 Jahre alt und Verbundstudent bei der DATEV eG. Bereits seit Schulzeiten befasse ich mich intensiv mit der Webentwicklung in PHP. Der Erfahrungsschwerpunkt hierbei liegt auf der Programmierung barrierefreier Portalsysteme, die auf Typo3 aufsetzen (wie z.B. huerdenlos.de).
Einführung
Mit der bald erscheinenden PHP-Version 5.4 wird ein neues Sprachkonstrukt in die PHP-Welt Einzug halten, die Traits. Grob gesagt lässt sich mit diesen eine Methodengruppe definieren, die in verschiedenen Klassen durch eine use-Anweisung eingefügt werden kann. Sicherlich stoßen da nun Einige auf die gleiche Frage wie ich: „Wofür brauch ich das denn bitte? Vererbung ist doch durchaus ausreichend!“
Jain. Mit Vererbung lässt sich viel machen, doch Vererbung ist nicht immer das beste Mittel für wiederverwendbaren Code. Auch folgt PHP dem Java-OOP-Modell, bei dem nur einfache Klassenableitung (single inheritance) möglich ist. Wir können also nur von einer einzigen Vaterklasse erben.