Archiv der Kategorie ‘Programmierung’

Include Path zur Laufzeit setzen

Heute gibt es mal wieder einen kurzen Beitrag, wie man in PHP “include Pathes” zur Laufzeit setzen oder entfernen kann. Das ganze erspart einem in größeren Projekten viel Arbeit, weil man bei der Verwendung von require und include nur noch den Dateinamen angeben muss. Ein weiterer Vorteil ist, dass man viel flexibler bezüglich seiner Verzeichnisstruktur wird. Muss diese aus irgendwelchen Gründen angepasst werden, müssen hierzu nur ein paar Zeilen Code in der entsprechenden PHP Datei geändert werden. Damit das ganze funtkioniert, muss das setzen der .ini Option ‘include_path’ natürlich ganz am Anfang der Bootsrap Datei passieren. Im folgenden ein kurzer Beispielcode der das ganze illustriert.

Dateizugriff im PHP Destruktor

Beim proggen heute morgen bin ich auf folgendes Problem in der PHP Destruktor Funktion gestoßen. Ich weiss nicht ob es sich hierbei um einen Bug handelt auf jeden Fall hat es mich unnötig viel Zeit gekostet. Aber nun zum Problem. Wenn man im Destruktor einer PHP Klasse eine Funktion aufruft, die auf das Dateisystem zugreift, z.B file_get_contents(), muss der Pfad der Datei immer absolut bezüglich des Server Root angegeben werden und nicht relativ zum Wurzelverzeichnis des Servers!! Dies ist in sofern sehr verwirrend, weil es innerhalb eines PHP Skriptes keine Probleme beim aufrufen von file_get_contents() mit einem relativen Pfad gibt. Um das ganze zu illustrieren ein kurzes Code Snippet:

PHP Entwurfsmuster :: Singleton 2

Vor kurzem haben wir das Entwurfsmuster Singleton an einem PHP Beispiel vorgestellt. Das Singletonmuster gewährleistet, dass immer nur eine Instanz einer Klasse zur Laufzeit existiert. Wir hatten als Beispiel ein Datenbankobjekt genannt, welches eine Datenbankverbindung kapselt und sinnvollerweise nicht jedes mal im Lauf des Scriptes neu instanziert werden sollte.

Zend Framework für PHP

Soeben habe ich entdeckt(PHP-Bibliothek in stabiler Version zum Download), dass Zend sein bereits 2005 angekündigtes Framework für PHP nun in der Version 1.0 freigegeben hat. Downloaden kann man es unter http://framework.zend.com/

Bemerkenswert ist, dass dies endlich ein freies, rein Objektorientiertes Framework von professionellen Entwicklern ist. Es ist sauber programmiert und auf Benutzerfreunlichkeit geachtet worden und stellt als einzigstes mir bekanntes Framework wirklich das bereit, was eine moderne professionell programmierte Webaplikation braucht. Und, wie auf anty.at erwähnt wurde, haben die Zend Entwickler natürlich sowieso allgemein sehr viel Ahnung von PHP. Außerdem ist eine Deutsche API Dokumentation verfügbar.

PHP Exceptions Formatieren

Ein Webdesigner, der gelegentlich mit PHP arbeitet und z.B. die in PHP 5 neu hinzugekommenen Erweiterungen wie MYSQLi nutzt oder vielleicht sogar komplett Objektorientiert programmiert, bekommt hin und wieder mal eine Exception um die Ohren geworfen. (Mehr über PHP Exceptions)
Auf den ersten Blick sind diese relativ unübersichtlich und kaum leserlich – mit einem einfachen “Trick” lassen sich diese Fehlermeldungen aber leicht formatieren. PHP stellt dafür den Befehl set_exception_handler() bereit. diesem Befehl übergibt man einen beliebigen Funktionsnamen. PHP wird somit angewiesen im Falle einer nicht anderweitig gefangenen Exception diese Funktion aufzurufen.
In dieser Funktion kann man nun ganz normal auf die Exception zugreifen, Daten auslesen und ausgeben. Mit ein paar einfach HTML Tags lassen sie sich relativ komfortabel gestalten, sodass sie etwas übersichtlicher sind. Folgender Beispielcode kann einfach in die Hauptdatei (z.B. index.php) integriert werden und schon werden nicht gefangenen Exceptions schön formatiert ausgegeben.

PHP Entwurfsmuster :: Singleton

Wie schon in unserem Artikel vom Niemand zum Hacker geschrieben, arbeiten wir seit geraumer Zeit mit Entwurfsmustern. Seit der Version 5, bietet PHP nahezu alle OO-Fähigkeiten, wie die etablierten Objekorientiereten Sprachen Java oder C++. Der Anwendung von Entwurfsmustern steht so also nichts mehr im Wege. Ich werde hier nicht darauf eingehen was Entwurfsmuster sind, dass werden wir in kürze in einem eigenen Blogbeitrag nachholen.

Das Singleton. Das Singletonmuster gewährleistet, dass immer nur eine Instanz einer Klasse zur Laufzeit existiert.

Vom Niemand zum Hacker?

… oder die Geschichte vom Programmieren lernen.

Wie wird man eigentlich professioneller Programmierer, ab wann darf man sich einen Hacker nennen und was ist auf diesem Weg alles zu beachten?

In den letzten Wochen musste ich feststellen, dass programmieren nicht gleich programmieren ist. Meine Anschauung hat sich da etwas geändert. Ich möchte zunächst meinen Weg beschreiben, wie ich Programmierer wurde.

Webdesign Entwicklungsumgebung

Dank eines Festplattencrash musste ich mal wieder mein System neu installieren, also nutze ich hier die Gelegenheit einmal zu notieren, wie meiner Ansicht nach eine gute Entwicklungsumgebung, kurz IDE, für Webdesigner, auf Basis von Eclipse aussehen kann, wie man die Entwicklungsumgebung einrichtet und was eine Eclipse IDE so alles bieten kann…
Denn, letztendlich finde ich Eclipse zwar lange noch nicht perfekt, aber es ist meiner Ansicht nach der beste php Editor am Markt und kostenlos, individuell anpassbar und rein theoretisch dank Open Source sogar “umprogrammierbar”. Da es in Java programmiet ist läufts natürlich auch unter Linux!
Bei Interesse, stelle ich außerdem im Lauf der Woche einfach mal vor, welche Tools ich sonst noch so im Einsatz habe für die Homepage Entwicklung und dem Alltag im Internet.

XHTML Entities vs. Zeichensatz

Wer kennt das nicht, valides XHTML als auch XML verlangen die Angabe eines Zeichensatzes. Wir haben diese Angaben auf unseren Homepages auch immer fleißig gemacht. Seit kurzem haben wir begriffen, was so ein Zeichensatz alles beeinflusst. Ums vorweg zu nehmen, der korrekte Zeichensatz erspart es Umlaute durch Entities (z.B. ä) zu ersetzen (escapen),… ok, wie das? Bei falschem Zeichensatz könnte in etwa folgendes Problem auftreten, statt deutschen Umlauten sieht man nur Fragezeichen, Quadrate oder sonsitge komische Zeichen, wie in diesem Bild:

Einheitliches CSS Design in IE, FF,…

Wie schreibt man CSS Dateien so, dass die zugehörige Homepage in allen gängigen Browser gleich dargestellt wird? Braucht man für jeden Browser eine eigene CSS Datei? Muss man ständig irgendwelche CSS Hacks anwenden? Macht es überhaupt Sinn seine Homepage an alle möglichen Browser anzupassen oder verlässt man sich einfach auf den Firefox?

Nun, eins vorweg… eine Homepage sollte in allen Browsern gleich angezeigt werden laut Google Analytics wird dieser Blog folgendermaßen besucht:

www.ilimitado.de/blog/ – Browser-Versionen 04.05.2007 – 10.05.2007
Browser-Versionen Besucher Anteil