Archiv für Februar 2008
11. Februar 2008 um 17:33 · Gehört zu PHP (Allgemein)
Über die Lesbarkeit von Code wird viel geschrieben. Aber trotzdem nie genug. Der PHP Blogger gibt nun sein Quentchen Weisheit dazu und hofft der Welt einen Gefallen zu tun. Nachfolgend ein paar Tipps, um Code lesbarer zu gestalten:
Gibt Bedingungen einen Namen
Jeder kennt die riesen if($prozent < $max_prozent && $prozent > $min_prozent && abs($durchschnitt_prozent - $prozent) < $durchschnitt_prozent_abweichung) - Dinger. Nach einer Woche hat man keine Ahnung mehr, was man mit diesem Code sagen wollte. Obwohl keine kryptischen Bezeichner verwendet wurden. Abhilfe? Ein Kommentar. Naja. Ich schlage mal was neues vor:
// Prozentzahl im zulässigen Bereich und keine
// größere Abweichung zum Durchschnittswert
$prozentzahl_im_zulaessigen_bereich= (
$prozent < $max_prozent
&& $prozent > $min_prozent
&& abs($durchschnitt_prozent - $prozent)
< $durchschnitt_prozent_abweichung
);
if($prozentzahl_im_zulaessigen_bereich)
{
// Mach was...
}
Cool, oder? Wenn man die selbe Bedingung oder eine erweiterte Version davon an verschiedenen Stellen benötigt, kann man es auch so machen. Und Kommentare müssen nur in speziellen Fällen überflogen werden… Ps: Schreibe auch Abbruchbedingungen für Schleifen aus! while($weitere_datenssatze_vorhanden) {}
Nutze Konstanten so oft wie möglich
Jedes Framework bietet sie an. PHP bietet sie an. Konstanten benennen Zustände oder feste Werte. Cool! Ein paar interessante Konstanten: DIRECTORY_SEPARATOR, CURRENCY_SYMBOL und THOUSANDS_SEP - Wenn das mal nicht lesbar ist…
Ein Ding ist ein Ding ist ein Ding
Benenne Objekte und Variablen nach Dingen und Zuständen und gibt Funktionen und Methoden Namen, die sich auf eine Aktion beziehen. Ein Beispiel:
define("FIRST_KEY", 1);
$haus->oeffneHaustuer(
$schluesselbund->nimmSchluessel(FIRST_KEY)
);
Organisiere globale Funktionen…
…obwohl sie eigenständig sind trotzdem in Hilfs-Objekten und mache sie statisch verfügbar. Ein Aufruf könnte so aussehen:
GraphicsHelper::generateThumbnail($fullsize_image);
Jedes Hilfsobjekt kommt in eine eigene Datei, die wie das Hilfsobjekt benannt ist: So findest Du Funktionsdefinitionen schneller und hast nicht eine riesige unsortierte Datei voll mit globalen Hilfsfunktionen.
Update: Verkette Funktionsaufrufe
Ein sehr mächtiges Feature ab PHP 5 ist Method-Chaining. Objekte, die von Funktionen zurückgeliefert werden, können direkt angesprochen werden: Das Ergebnis ist eine gut lesbare Funktionskette:
$app->actions(APP_CONTENT)->execute();
Method-Chaining ist nicht limitiert - wer seine Funktionen geschickt anordnet, kann fast grammatikalisch korrekte Sätze formulieren ;)
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
11. Februar 2008 um 15:56 · Gehört zu PHP (Allgemein), Quick Hacks
Letzte Woche war ich mal wieder auf Bugsuche - eine Datei wurde nicht gefunden, obwohl sie an Ort und Stelle war: Das Problem lag bei der Variable $_SERVER['PATH_TRANSLATED'] - die wurde nämlich mit Version 4.3.2 per Default abgeschaltet.
Als Alternative bietet sich $_SERVER['SCRIPT_FILENAME'] an. Der Inhalt ist genau der selbe.
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
11. Februar 2008 um 15:07 · Gehört zu PHP (Allgemein)
Jeder weiß es: Die sichersten Passworte sind länger als 6 Zeichen, beinhalten keine sinnvollen Worte und sind zusammengestückelt aus Groß- und Kleinbuchstaben, Sonderzeichen und Zahlen. Aber wer kann sich die merken? Und erst ausdenken?
Bei Projekten kommt es immer mal wieder vor, das man Benutzer generieren muss. Die brauchen auch ein Default-Passwort. Gut, wenn man eine Idee hat, wie man das generieren kann.
GoodPHPTutorials stellt genau das in einem ausführlichen Artikel zum Thema Passworte generieren vor.
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
8. Februar 2008 um 19:49 · Gehört zu Javascript, Update-Notizen
Die Entwickler von jQuery haben sich ins Zeug gelegt und präsentieren uns kurz vor dem Wochenende noch ein neues jQuery Release: 1.2.3 - meins ;-) Hoffentlich hagelt’s wegen dem Wortspiel jetzt keine Klagen…
Neben ein paar Bugs wurden auch neue Features hinzugefügt:
- Daten-Container mit Namespaces (praktisch für Plugins)
- Events mit Namespaces: ebenfalls praktisch für Plugins, beim Plugin entfernen können mit einem Befehl (unbind) alle Event-Catcher entfernt werden.
- Der Event-Trigger greift nur noch bei Events ohne Namespace
Download (unkomprimiert): http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.3.js
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
8. Februar 2008 um 19:29 · Gehört zu PHP (Allgemein), Update-Notizen
Und wieder grüßt das Murmeltier. Es ist schon fast nervig, aber als Bug-Vernichter tut man halt sein Bestes. Der flinke und im Codezeilen/Feature Verhältnis gut bestückte PHP Mailer miniMail ist einen Revisionssprung höher gerutscht.
Dank Renes Hinweis konnte ich einen Bug, der mehrere Attachments betrifft, beheben. Nicht vorhandene Unit-Tests werden eben immer sofort bestraft.
Download: http://www.phpblogger.net/download/minimail.zip
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
7. Februar 2008 um 09:13 · Gehört zu Allgemein
Staffel 1, Bewerber 2. Meine Güte, ich hab jetzt schon Hunger – wie auch nicht, bei diesem Gericht. Klingt teuer, aber schmackhaft und ist trotz der super Zutaten relativ günstig und schnell zubereitet. Wer seine Mutti beeindrucken will, ist mit dieser Speise auf der sicheren Seite.
Wannabe-Chefkoch 2 ist diesmal Börge. Börge selbst kann von seinem Gericht nicht genug bekommen – nach eigenen Angaben hat er es selbst schon etwa 30 Mal gespachtelt. Ich hoffe, es geht ihm nicht wie dem Michel aus Lönneberga; ihr wisst schon, der in der Suppenschüssel…
Was macht Börge denn sonst so? Er arbeitet als Projektleiter und bereitet seinen Blog unter http://www.boerge.net/ vor. Zu sehen ist noch nix, aber ich bin mir sicher, dass da bald was Schickes zu bewundern sein wird. Er hat auch ne Tante in Wuppertal, die er grüßen möchte. Ich nehme mal, die liest (wie sein Onkel Fritz, Vater Bertram und Mutter Gunzhilde) immer schön PHP Blogger, wenn sie morgens aufsteht und eine Tasse Kaffee in der Hand hat :-)
Den kompletten Artikel lesen »
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
4. Februar 2008 um 10:23 · Gehört zu PHP (Allgemein)
Manuel Lemos von den PHP Classes zeigt einige schöne Beispiele mit Streams. Man kann damit sehr transparent entfernte oder lokale Daten ansprechen, auslesen und verändern. Eigene Protokolle sind damit schnell implementiert.
Hintergründe gibt es dabei im offiziellen PHP Handbuch, leider unvollständig auf deutsch übersetzt - aber für den Anfang tut’s… Um das PHP Killer Feature “Streams” verständlich an den Mann zu bringen, zeigt er die Implementierung eines POP3 Handlers - sehr lesenswert. Ich spare mir einen Abklatsch und empfehle da englische Original :)
Oben drauf gibt es zudem noch die besten Stream-Implementierungen aus dem PHP Classes Archiv. Ein bunter Blumenstraus an Services: also nix wie zugreifen!
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
4. Februar 2008 um 10:13 · Gehört zu MySQL, PHP (Allgemein), Performance
Endlich seit langem mal wieder ein sehr interessanter Artikel vom PHP Performance Blog. Diesmal wurde untersucht, mit welcher Methode man am schnellsten Daten aus einem MySQL Result-Set laden kann.
Als Sieger benennt er mysql_fetch_row (Platz 1) und mysql_fetch_assoc (knapp dahinter auf Platz 2). Diesmal gibt es zwei Sieger, obwohl eine Funktion eindeutig schneller ist :) Der Grund ist ganz einfach: mysql_fetch_assoc ist schlichtweg übersichtlicher und zukunftsicherer als ein numerisch aufgezogenes Array (Man denke an neue Tabellenspalten).
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
4. Februar 2008 um 09:42 · Gehört zu PHP (Allgemein), Update-Notizen
Für das Mainrelease des miniMailers ist ein reines Bugfix-Update erhältlich. Version 1.3.1 behebt einen Bug in der UTF-8 Kodierung des Betreffs.
Zur Klasse: Der beliebte schlanke PHP Mailer erlaubt das Versenden von HTML Mails mit UTF-8 kodiertem Text. Das Ziel des PHP Mailers? Eine schlanke Klasse mit flinkem Interface anbieten, die das schnelle und unkomplizierte Versenden von mehrsprachigen HTML Mails mit Attachments erlaubt. Alle Features im Überblick:
- UTF-8 Kodierung
- HTML Mails
- Datei-Anhänge
- Newsletter Modus (via BCC Header)
- Mail Prioritäten
- Lesebestätigung
- Empfangsbestätigung
- Static-Modus (Direktes Aufrufen der Sende-Funktionen)
Der kleine PHP Mailer ist ein excellenter Wrapper für die native PHP mail-Funktion: Für die meisten Anwendungen gibt es bereits eine eigene Sendefunktion und eigene Header-Implementierungen sind damit auch möglich.
Download:
http://www.phpblogger.net/download/minimail.zip
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.