Archive for the ‘PHP’ tag
Meine Ideen um qualitativen Code zu schreiben
Schon seit längerem denke ich über ein Thema für einen neuen Blogeintrag zum Thema Softwarequalität nach. Schlussendlich fiel mir der folgende Kommentar zum Thema “Wie schreibt man guten Code?” in’s Auge, welcher mich dazu brachte, mir ein paar Gedanken über guten Code (vor allem im Team) zu machen. Eins vorweg: dieser Artikel ist gerade in der Entstehungsphase – und wird noch das eine oder andere Update erhalten. Er soll für mich eine Art “Leitfaden” darstellen, in welchem ich meine neuesten Erfahrungen und Best-Practices einfließen lasse.
Dadurch, dass das Thema Softwarequalität auch eine starke Verknüpfung mit strukturiertem, gut wartbarem Code eingeht, spielt dieses Thema eine große Rolle – gerade im Umgang mit der Scriptsprache PHP.
An vielen Stellen in den PHP-Projekten meines aktuellen Arbeitgebers werden sogar in den Controllerklassen und den darin enthaltenen Action-Methoden (wir setzen auf das Zend-Framework) diverse Abfragen und Konstrukte eingebunden, welche sich in einem eigens erstelltem Model-Objekt genauso lösen ließen. Auch werden viele Controller mit verschiedenen Methoden überladen, welche ebenso in andere Controller-Dateien ausgelagert werden könnten.
Doch wie genau bringe ich mein Team dazu, einen hochwertigen und strukturieren PHP-Quelltext zu schreiben?
Read the rest of this entry »
PHP 5.4.0 Released
Nachdem ich bereits vor einigen Tagen über die Neuerungen von PHP 5.4 gebloggt habe, war es dann gestern soweit: das finale Release von PHP 5.4 stand an.
Auf php.net ist bereits eine offizielle News zum Release geschrieben worden. In dieser News sind auch weitere Unterseiten verlinkt – unter anderem ein “Migration-Guide”, eine Befehlsübersicht zum neuen (in PHP integrierten) Webserver, das Release-Announcement (in welchem noch einmal grob alle Neuerungen zusammengefasst sind) und auch das komplette Changelog der neuen Version von PHP.
Zum Download der neuen Version von PHP geht es hier entlang:
http://php.net/downloads.php#v5.4.0
Und zusammenfassend noch einmal eine Liste aller Neuerungen (Zitat von php.net):
The key features of PHP 5.4.0 include:
- New language syntax including Traits, shortened array syntax and more
- Improved performance and reduced memory consumption
- Support for multibyte languages now available in all builds of PHP at the flip of a runtime switch
- Built-in webserver in CLI mode to simplify development workflows and testing
- Cleaner code base thanks to the removal of multiple deprecated language features
- Many more improvements and fixes
Changes that affect compatibility:
- Register globals, magic quotes and safe mode were removed
- The break/continue $var syntax was removed
- The ini option allow_call_time_pass_reference was removed
- The PHP default_charset is now “UTF-8″ within the distributed php.ini files, but still defaults to “”
Extensions moved to PECL:
- ext/sqlite (ext/sqlite3 and ext/pdo_sqlite are not affected)
PHP 5.4 – die Neuerungen im Überblick
Nachdem vor wenigen Tagen, am 24.02.2012, der RC8 von PHP 5.4 veröffentlicht wurde, rückt das eigentliche Releasedatum der neuen PHP-Version immer näher. Grund genug, mich einmal durch die Tiefen des Internets zu suchen um nähere Informationen zu der kommenden Version von PHP zusammen zu suchen.
Auf php.net wurden bereits ein Changelog vorbereitet, welches die aktuellen Änderungen explizit aufführt.
Zu den wichtigsten Neuerungen für PHP 5.4 zählen unter anderem:
- Einführung von Traits
- Array Dereferencing Support
- Umstellung von ISO-8859-1 auf UTF-8
- Entfernen von <?= aus den short_open_tags
- Hinzufügen der http_response_code() Methode um für diese Funktionalität nicht mehr auf header() zugreifen zu müssen
- Entfernen verschiedener Funktionen
- Kurzsschreibweise für Arrays
Im Folgenden Text möchte ich ein paar der vielen Änderungen näher Erläutern.
Internetforen – ein Relikt aus alten Zeiten?
Zum Webmaster-Friday kam die Frage auf: “Nutzt ihr noch Internet-Foren?“.
Da ich meinerseits sehr aktiv in Internetforen bin, möchte ich die Frage erst einmal grundlegend mit “Ja, was sonst?” beantworten. In meinen Augen bieten Internetforen einen einfachen, schnellen, effektiven Kommunikationsweg und lassen sich für verschiedene Problemstellungen sogar besser nutzen, als jedes Blog. Natürlich bieten Blogs ihre eigenen Möglichkeiten, ein Thema zu diskutieren – für ernsthaftere und gezielte Beratung jedoch sind sie nicht wirklich zu gebrauchen – jedoch erhebt eine Blogsoftware (zumindest keine mir bekannte) Anspruch darauf.
Aus diesem Grunde habe ich mir einmal die Mühe gemacht, einen Beitrag zum Thema zu verfassen. Dabei möchte ich vor allem auf Aspekte eingehen, welche für Internetforen sprechen – andererseits aber auch einige technische Dinge zum Thema aufgreifen und dem Leser die Möglichkeit bieten, eventuell etwas neues zu lernen.
Ich hoffe, dass dieser Artikel mir einigermaßen gelungen ist und hoffe auf eine rege Diskussion zum Diskussionsthema. Gerne könnt ihr auch Verbesserungsvorschläge und Kritik einbringen.
Um es mit Bodo Wartke zu sagen: “Genug der Worte – Taten warten!”:
Read the rest of this entry »
PHP-Benchmarking: Strings anhand von Leerzeichen trennen
Ausgangssituation
Vor kurzem hatten wir in der Firma das Problem, dass auf der Budgetmap unseres Portals ein String, bestehend aus Leerzeichen und einem Ampersand, einen AJAX-Request und die weiterführende Verarbeitung via PHP nicht überstand. Unsere Frontend-Entwickler saßen somit vor ihren Bildschirmen und überlegten, wie das Problem behoben werden kann. Die Lösung: im PHP-Controller wird einfach nur das erste übergebene Wort ausgewertet. Die Tür ging auf, ein Frontend’ler kam herein und warf eine Frage in den Raum: “Wie muss ich einen Regulären Ausdruck formulieren, damit ich die erste Zeichenkette vor einem Leerzeichen zurückbekomme?” - Total verwirrt und entsetzt warfen wir die Hände über den Kopf: “RegEx? Bloß nicht!”
Problemstellung
Wie die meisten von euch sicherlich wissen, sind Reguläre Ausdrück (vor allem unter PHP) eine der schlimmsten Programmierlösungen, die man einem (nach Performance ächzenden) Webserver nur antun kann – zumindest wenn implementierbare Alternativen existieren. Umgehend schossen mir natürlich unzählige Möglichkeiten durch den Kopf, welche das Problem genauso einfach und performanter lösen können. Zwei von diesen möchte ich euch einmal kurz Vorstellen.
Read the rest of this entry »