HipHop für PHP

Der Schleier wurde gelüftet: Facebook hat mit »HipHop« einen Source Code Umwandler veröffentlicht, der PHP-Code in höchst-optimierten C++ Code konvertiert. Dieser wiederum wird dann mit g++ kompiliert um maximale Performance zu erreichen.

Bei Facebook brachte der Einsatz von HipHop eine durchschnittliche Reduzierung der CPU-Auslastung um 50% – natürlich abhängig von der jeweiligen Seite. Für Facebook bedeutet weniger CPU-Last weniger Server – und damit weniger Kosten. Aber natürlich bedeutet weniger Auslastung auch weniger Energieverbrauch.

In seinem Blog-Beitrag schreibt Haiping Zhao »We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop, all only six months after deployment.

How HipHop Works
The main challenge of the project was bridging the gap between PHP and C++. PHP is a scripting language with dynamic, weak typing. C++ is a compiled language with static typing. While PHP allows you to write magical dynamic features, most PHP is relatively straightforward. It’s more likely that you see if (…) {…} else {..} than it is to see function foo($x) { include $x; }. This is where we gain in performance. Whenever possible our generated code uses static binding for functions and variables. We also use type inference to pick the most specific type possible for our variables and thus save memory.

[…]

Overall HipHop allows us to keep the best aspects of PHP while taking advantage of the performance benefits of C++. In total, we have written over 300,000 lines of code and more than 5,000 unit tests. All of this will be released this evening on GitHub under the open source PHP license.

Der ganze Artikel (englisch) im Facebook Blog: http://developers.facebook.com/news.php?blog=1&story=358

Quality Assurance in PHP Projects

Derzeit entsteht ein viel versprechendes Buch mit dem Titel »Quality Assurance in PHP Projects« in Deutsch und Englisch, geplante Veröffentlichung im vierten Quartal. Im Buch soll umfassendes Fachwissen und Erfahrungen zur Qualitätssicherung in Web-Projekten vermittelt werden.

Wenn die Hütte brennt, werden Überstunden gemacht und Urlaube abgesagt, aber trotzdem meist Termine und Qualitätskriterien verfehlt. Da aber Software viel länger lebt als ursprünglich geplant, gehen die Probleme erst dann richtig los, wenn später weitere Änderungen und Erweiterungen notwendig werden.

Die Autoren: Diplom-Informatiker Sebastian Bergmann, Autor von PHPUnit, und Stefan Priebsch, Spezialist für PHP-basierte Software im Unternehmenseinsatz.

Zend Framework in Version 1.8 erschienen / Tutorials

Am ersten Mai-Wochenende ist das Zend Framework in Version 1.8 erschienen. Neu ist, neben Zend_Application, Zend_Navigation und Zend_Tag_Cloud zum Beispiel auch das Zend_Tool:

1.8.0 marks the first public release of Zend_Tool. At its simplest, Zend_Tool provides a command-line script that can be used to ease many common project-related tasks

Passend dazu hat Kim auf Designpicks seine »Top 5 Zend Tutorials« gelistet:

Ich beschäftige mich zurzeit intensiv mit dem Zend Framework und habe festgestellt, dass es gar nicht so leicht ist, gute Tutorials dafür zu finden. Nach langen Recherchen möchte ich euch hier die (meiner Meinung nach) besten fünf mitteilen.

PHP-Intrusion Detection System

PHPIDS (PHP-Intrusion Detection System) is a simple to use, well structured, fast and state-of-the-art security layer for your PHP based web application. The IDS neither strips, sanitizes nor filters any malicious input, it simply recognizes when an attacker tries to break your site and reacts in exactly the way you want it to. Based on a set of approved and heavily tested filter rules any attack is given a numerical impact rating which makes it easy to decide what kind of action should follow the hacking attempt. This could range from simple logging to sending out an emergency mail to the development team, displaying a warning message for the attacker or even ending the user’s session.

http://php-ids.org/

10 Useful PHP Tips Revisited (Smashing Magazine)

10 Useful PHP Tips Revisited (Smashing Magazine): „Last November Smashing Magazine posted an article titled ’10 Advanced PHP Tips to Improve Your Programming’, which was met with many negative comments. It seems that many of the tips were either incomplete, or directly giving bad advice. To remedy this, they have asked Chris Shiflett and Sean Coates to write a rebuttal article which they have done. This new article goes into detail of each of the previous 10 points, explains the issues with the previous suggestions, and then gives solid advice on what should be done.

(Via Zend Developer Zone.)

PHP Deployment mit Phing

Über die Zend Developer Site bin ich auf einen interessanten Artikel gestoßen. Das Thema »Deployment« ist für jeden Entwickler interessant, insbesondere immer wiederkehrende Updates. Währen ich hier schon mit Ant, SVN und PEAR experimentiert habe, wird in diesem Artikel von Nabeel Shahzad Phing ins Spiel gebracht:

This weekend, I started my server migration, over to Slicehost. It went well, now I’m running on a lean ‘n mean nginx install. As I was moving my Subversion repositories, I was dreading having to move all my shell scripts, which I used to build and deploy some of my applications (outlined in this post). I was thinking there had to be a better way, after all, Ruby has Capistrano, and though it can be used with PHP, I didn’t want to have to install Ruby, etc etc. After some searching (not much), I found Phing, which looked like exactly what I needed. Sweet!

Ganzer Artikel im Blog von Nabeel Shahzad.

Zend Framework 1.6 mit Dojo veröffentlicht

Zend Framework 1.6 mit Dojo veröffentlicht: „Die neue Version der Codebibliothek Zend Framework enthält unter anderem zwei neue, stabile Komponenten für die Integration von Dojo und SOAP, dazu kommen kleinere Ergänzungen bestehender Komponenten und Bugfixes. Das Highlight der neuen Version ist aber eine frühe Version der experimentellen Zend_Tool – Zends Antwort auf Ruby-on-Rails und CakePHP. (JavaScript, IBM)“

(Via Golem.de.)

T3Cast zu DEV3: Eclipse basierte FLOW3- und TYPO3-Entwicklung

T3Cast zu DEV3: Eclipse basierte FLOW3- und TYPO3-Entwicklung: „David Brühlmeier ist Robert Lemke per Skype aus einem Park in Zürich zugeschaltet. In knapp 20 Minuten zeigt Brühlmeier Robert Lemke beispielhaft, wie die von ihm im Rahmen seiner Masterarbeit geschaffene Entwicklungsumgebung DEV3 zu bedienen ist.

Gezeigt werden alle für die Arbeit notwendigen Schritte: Nach der eigentlichen Installation des Plugins wird die weitere Einrichtung gezeigt. Darüber hinaus geben Robert Lemke und David Brühlmeier einen Einblick in die Arbeit mit DEV3.

Das Projekt DEV3 verfolgt das Ziel, Entwicklern eine auf Eclipse und den PHP Development Tools (PDT) basierende Entwicklungsumgebung für TYPO3 zur Verfügung zu stellen.

Entstanden ist DEV3 aus den zuvor unabhängig gestarteten Projekten tyClipse von Sebastian Böttger und Eckhard M. Jäger sowie FLOW3DE von David Brühlmeier. Auf Anraten von TYPO3 5.0– und FLOW3-Entwicklungsleiter Robert Lemke haben sich die Projekte zur gemeinsamen Arbeit entschlossen.“

(Via t3n.yeebase.com – Open Source, Web & TYPO3.)