Archiv für März 2007
21. März 2007 um 19:04 · Gehört zu Allgemein, PHP (Allgemein)
Die meisten Versuche, mit PHP Thumbnails von PDF Dateien zu erzeugen, beginnen meistens mit dem convert Tool aus der ImageMagick Bibliothek. Dummerweise stellt jeder das selbe fest: Das Ding erzeugt von allen Seiten des PDF Dokuments Thumbnails.
Praktischerweise benötigt man für ein PDF Thumbnail jedoch nur eine Grafik, nämlich die von der ersten Seite. Es gibt leider keine Option von convert, mit der man die gewünschte Seite angeben kann (Zumindest ich hab dazu nix herausgefunden). Also bleiben nur zwei Möglichkeiten: Entweder man löscht die überflüssigen Images (sehr unelegant) oder man sucht sich einen PDF2JPEG Ersatz.
Den kompletten Artikel lesen »
21. März 2007 um 16:40 · Gehört zu Allgemein
Kostenlose Tester für Reguläre Ausdrücke im Netz gibt es einige. In einem Forum bin ich allerdings über einen deutschen Regex-Evaluator gestolpert.
Der Server ist so lahm wie meine Oma, aber wenn man mal ne Seite sieht, kann man aus vielen Optionen seine persönliche Regex-Testumgebung zusammenklicken. Damits mit der Regex insgesamt klappt, gibts hier bei Amazon meine Geheimwaffe…

21. März 2007 um 11:38 · Gehört zu Best-Of, PHP (Allgemein), Sicherheit
Den Fehler macht jeder Entwickler nur einmal: Sich darauf verlassen, das die User einer Applikation keinen Mist bauen. Sobald man den ersten Vollidiot auf seiner Applikation hat, stellt sich heraus: Alles was keine Validierung hat, wird gnadenlos beim ersten Test plattgemacht.
Wenn man eine Web-Applikation ohne Sessions aufzieht, muss man oft Metainformationen (die man zum Darstellen eines Dialogs benötigt) quer durch alle Formulare schleifen. Da nimmt das Unheil schon seinen Lauf - meist ist man zu faul, um die Daten aus Hiddenfeldern nochmal zu validieren. Und die Rache folgt direkt hinterher, da kannst Du sicher sein.
Den kompletten Artikel lesen »
20. März 2007 um 21:36 · Gehört zu Design Pattern, OOP, PHP (Allgemein)
Im ersten Teil dieser kleinen Serie hab ich einen Blick auf vererbte oder abstrakte Klassen geworfen - jetzt ist erst einmal der Callback-Stack dran. Ich denke, das ganze Thema in zwei Teilen abzufackeln, ist ein Ding der Unmöglichkeit. Dafür gibt es einfach zu viele Varianten. In den ersten beiden Teilen stelle ich mal die Basisvarianten vor, in Teil 3 und 4 gehe ich auf mögliche Erweiterungen ein.
Ich hatte bereits erwähnt, das ein Callback-Stack dem Observer-Muster sehr ähnelt. Wie funktioniert das Observer-Muster nun genau? Wer das gepeilt hat, schnallt auch schnell das Callback-Stack-Prinzip:
Den kompletten Artikel lesen »
20. März 2007 um 20:52 · Gehört zu Allgemein, Editor, PHP (Allgemein)
Beim Surfen durchs Web bin ich auf diesen kleinen Editor gestossen. Das erklärte Ziel der Entwickler ist es, einen flinken, intuitiven Editor zu schaffen der Coden in beliebigen Skript- und Programmiersprachen ermöglicht.
Ohne viel Overhead besticht der Editor durch schnelles Laden und eine einfache Oberfläche. Das Prinzip ist schnell erklärt: Durch die Eingabe von festgelegten Kürzeln werden vordefinierte Snippets eingefügt. Durch diese Codefragmente kann man per Tab vor und zurück navigieren und so Tag-Parameter oder festgelegte Snippet-Bestandteile schnell und einfach anpassen.

Den kompletten Artikel lesen »
20. März 2007 um 20:13 · Gehört zu Framework, PHP 5
Bei dem Riesenangebot von Frameworks für PHP verliert man schnell den Überblick. Ein ganz besonderes Framework ist Picora von LivePipe. Auf den ersten Blick stellen sich mir zwei Fragen:
- Wie mini ist der Funktionsumfang bei einem Micro-Framework?
- Ist es überhaupt praktisch mit einer derart abgespeckten Bibliothek zu arbeiten?
Zum Funktionsumfang: Es bildet eine einfache Grundlage für MVC Anwendungen. Basisklassen für Autoloader, Controller, View und Dispatcher stehen bereit. Warum für eine kleine Applikation auf OOP Eleganz verzichten? Ein ausgewachsenes Framework wie Cake oder Rails wäre oft der Overkill.
Den kompletten Artikel lesen »
20. März 2007 um 15:29 · Gehört zu PHP (Allgemein), Sicherheit
Um Header-Injection Angriffen vorzubeugen wurde in PHP Versionen 4.4.2 und 5.1.2 der Funktion zum Senden der Header überarbeitet. Seit diesen Versionen ist es nicht mehr möglich, mehrere Header gleichzeitig zu senden.
Das kann schnell zu Problemen führen - wenn z.B. Binärdaten wie Bilder über HTTP gesendet werden sollen. Sollen konkret in diesem Fall mehrere Header gleichzeitig übertragen werden, wie Dateigröße und Cache-Header, kommen auf einmal wichtige Informationen nicht mehr beim Client-Browser an. Und PHP wirft folgende Warnung:
Warning: Header may not contain more than a single header, new line detected
Den kompletten Artikel lesen »
18. März 2007 um 13:46 · Gehört zu Best-Of, MySQL
MySQL Optimierung, Part II: Mit Indizes richtig umgehen… Und immer noch beschäftigt mich das Thema, wie weit man seine MySQL Datenbank optimieren kann. Mittlerweile bin ich auf den Trichter gekommen, das sinnvolle Indizes was bringen könnten.
Wie funktioniert ein Index? Da könnte man natürlich bücherweise drüber referieren - ich beschränke mich einfach auf ein banales Beispiel. Ein Index ist vergleichbar mit einer Inhaltseingabe (grob granulierter Index / Kapitel) und einem Stichwortverzeichnis am Ende eines Buches (fein granulierter Index).
- Wenn man grob weiß, was man sucht sollte man zunächst ganz hinten im Stichwortverzeichnis suchen, das ist alphabetisch und man findet schnell, was man sucht.
- Wenn noch die Kapitelnummer weiß, is das Inhaltsverzeichnis eine gute Adresse.
Den kompletten Artikel lesen »
17. März 2007 um 16:37 · Gehört zu Design Pattern, OOP, PHP (Allgemein)
Um eine Applikation schnell und einfach dynamisch um Funktionen zu erweitern kommen oft Hook- oder Callback-Funktionen zum Einsatz. Typo3 macht davon Gebrauch, die WordPress Entwickler lieben sie und auch bei Cake oder RubyOnRails kommen sie zum Einsatz.
Genau genommen sind Hook-Funktionen und Callback-Funktionen ein und das selbe. Sie werden aufgerufen, wenn eine bestimmte Aktion durchgeführt wird, wurde oder werden soll. Die zwei beliebtesten Typen von Hook-Funktionen sind folgende:
- Vererbte oder Abstrakte Funktionen: Eine gängige OOP Technik, bei der eine Funktion abstrakt oder mit einem Default-Verhalten definiert wird, das von einer Kind-Klasse übernommen oder überschrieben wird.
- Callback-Stack: Bei dieser Art registrieren sich Objekte bei einem Objekt, das den Callback-Funktionen-Stack verwaltet. Wird ein Ereignis ausgelöst, werden die zu dem Ereignis registrierten Objektfunktionen der Reihe nach aufgerufen.
Den kompletten Artikel lesen »
17. März 2007 um 15:25 · Gehört zu Best-Of, MySQL
Was ist besser? MyISAM oder InnoDB? Früher war die vorgegebene Standard-Storage-Engine von MySql MyISAM. Mittlerweile ist es InnoDB. Aus aktuellem Anlass musste ich mir Gedanken machen, welche Storage-Engine die bessere Wahl ist.
Bislang war InnoDB konfiguriert, aber der Server geht wegen der aufwendigen Speicherung von InnoDB tierisch in die Knie. Zeit, sich mal auf die Vorzüge und Nachteile der jeweiligen Engine zu konzentieren:
Was InnoDB bietet:
- Transaktionen
- Locking auf Zeilen Ebene
- Speicherung in Tablespaces
- Referenzielle Integrität
- Primärschlüssel
- Datensatz-Cache
Jetzt kommt MyISAM:
- Locking auf Tabellenebene
- Speicherung in getrennten Dateien (eine pro Tabelle)
- Volltextindizierung
- Daten-Komprimierung
Den kompletten Artikel lesen »
« Neuere Artikel