PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Archiv für PHP (Allgemein)

iCal-Dateien generieren mit PHP

Komfort bemerkt man nicht. Er ist einfach da oder eben nicht. Wenn man Ihn nicht mehr hat, vermisst man ihn schmerzlich - Wikipedia definiert Komfort unter anderem damit, das bestimmte Geräte oder Funktionen die Arbeit vereinfachen…

Alles nix neues? Genau - obwohl jeder weiß, was Komfort ist, werden viel zu wenig Websites komfortabel gestaltet oder mit schlanken, schnellen und vor allem komfortabelen Funktionen ausgestattet. Schnell werden feine Funktionen als Luxus deklariert und ins dunkle Entwickler-Kämmerlein eingesperrt: Die Usability leidet.

Eine Möglichkeit, seinen Benutzern die Usability zu erleichten, kann bedeuten, Events aus einem Terminkalender downloadbar zu machen. So ziemlich jedes aktive Unternehmen, das sich zeitgemäß im Internet präsentiert, stellt seinen Benutzern eine Terminliste bereit.

Den kompletten Artikel lesen »


PHP hasst mich

;) Okay, kleines Wortspiel. Nils verzeiht mir hoffentlich, dass ich seinen Blog-Namen missbrauche. Aber eigentlich bin ich ganz im Sinn der Sache unterwegs. Gerade wurde mir ein Bug reported, von dem ich dachte “Sowas gibts doch gar nicht!”. Oh doch, gibt es.

Es handelt sich um die PHP-Funktion “ucwords“: Die soll (eigentlich) in einzelnen Worten in einem String den Anfangsbuchstaben in Grossbuchstaben und alle restlichen Buchstaben in Kleinbuchstaben umwandeln. Funktioniert prima, so lange es sich um einen String in Kleinbuchstaben handelt. Wer einen String mit Grossbuchstaben übergibt, wird enttäuscht: Nix passiert.

Den kompletten Artikel lesen »


PHPUnit - Wo soll man anfangen

Nachdem es ja in meinem letzten Beitrag doch zahlreiche gute Beiträge in den Kommentaren gab und mich das Thema nicht losgelassen hat, will ich mal versuchen meine Erkenntnisse zusammenzufassen und eine neue Diskussion anzustoßen. Ich denke, dass ich meinen Prozess während ich mich mit Unit-Testing weiter auseinandersetze in einigen Beiträgen festhalten werden. Deshalb jetzt die ersten Gedanken zum Thema, bevor ich noch einen Test geschrieben habe.

Bisher war es für mich immer schwer das Konzept von Unit-Tests zu verstehen, weil ich das Gefühl habe, dass ich die Konzepte, die einem nahe gelegt werden nicht auf meinen bestehenden Code übertragen kann. Dazu ist zu sagen, dass man zuerst liest, dass es sowieso sehr schwer ist Tests nachträglich für bestehenden Code zu bauen, aber das sollte mich jetzt nicht davon abhalten es zu probieren, oder?

Unit-Tests sind dafür da Einheiten des Codes zu testen. Eben die Units oder Methoden oder Funktionen oder auch ganze Klassen, aber dann ebenfalls auf Methoden-Ebene. Ein Unit-Test soll sicherstellen, dass eine Methode mit gegebenen Parametern auch das entsprechende Verhalten zeigt. Und ist dann besonders nützlich, wenn man den Code oft verändert oder eben viele Leute an dem Code arbeiten.

Den kompletten Artikel lesen »


Silben trennen mit PHP

Wisst ihr, warum ich diesen Blog liebe? Es ist eine hervorragende Sache, dazuzulernen. Ich schaue mich immer genau um. In den Kommentaren, in der Webstatistik, sogar auf die interne Blogsuche habe ich immer ein Auge. Wenn Leser die interne Blogsuche bemühen, ist das in der Regel ein Zeichen, das etwas nicht stimmt… Oder sie suchen eben etwas aussergewöhnliches.

Diese Woche hat jemand nach Silbentrennung gesucht. Ein echt schwieriges Thema. Vor ein paar Jahren hat mich genau dieses Thema nicht losgelassen und ich habe mich richtig reingekniet, einen guten Silbentrenner zu bauen. Der Code, der dabei rausgekommen ist, war leider nicht der übersichtlichste (keine Kommentare, keine Erläuterungen, dafür aber viele Schleifen und Bedingungen und viiiiiel zu kurze Variablennamen.

Jetzt habe ich mich nochmal hingesetzt, Duden, Wikipedia und Deutsch-Howtos gelesen und einen kompletten Rewrite des Silbentrenners begonnen. Ich möchte Euch mein Zwischenergebnis hier vorstellen - es ist sicherlich nicht komplett und hat einige Macken, aber prinzipiell funktionierts (dazu mehr weiter unten).

Wie gesagt, Silbentrennen hört sich einfach an. Wer halbwegs früher in der Schule aufgepasst hat, schaut sich ein Wort kurz an und kann so ziemlich sofort die Silben bestimmen. Damit ist der Mensch einem Automatismus weit voraus… So, und los gehts:

Den kompletten Artikel lesen »


Debugging sucks, Testing rocks!

Nachdem ich diese Woche gelernt habe wie Google das Testen von Applikationen verbessert, dachte ich, dass ist ein guter Anlass, um sich zum Thema zu äußern. Google hat damit angefangen kleine Snippets über das Testen auf den Toiletten aufzuhängen. Da kann man nicht nur notwendige Körperliche Funktionen erledigen, sondern auch gleich noch was über das Programmieren lernen. So nötig haben wir das noch nicht, aber das Thema kommt immer wieder hoch.

Bisher habe ich Frameworks wie PHP-Unit immer noch nicht richtig verstanden. Zum einen, weil mir nie jemand richtig erklären konnte, wie ich sinnvolle Testcases schreibe, die beachten, dass Funktionen unter Umständen Datenbankeinträge machen und Daten verändern und vor allem, wenn ich eine Funktion ändere, einen Test ausführe und dieser scheitert, woher weiß ich, dass der Test durch meine Änderung nicht falsch geworden ist. Dann weiß ich zwar, dass irgendwas nicht stimmt, aber vielleicht ist ja mein Testfall nicht mehr korrekt.

Also habe ich immer manuell getestet. Das könnte sich jetzt ändern! Denn ich habe Selenium entdeckt.

Den kompletten Artikel lesen »


Hook- und Callback-Funktionen (Teil 3)

Vor ziemlich genau 100 Jahren hat der PHP Blogger mit einer Serie begonnen, die leider nie zum Ende gekommen ist: Es geht im Hook- und Callback Implementierungen. Teil 1 hat die eine Vererbungstechnik vorgestellt, in Teil 2 haben wir uns einen Callback-Stack angeschaut und weil mich ständig Fragen via Mail zu dem Thema erreichen, habe ich mich entschieden, den 3. Teil doch noch fertig zu stellen ;)

Im Teil 3 werfen wir also einen Blick auf die Listener-Objekte, wie sie in Actionscript zum Einsatz kommen. Die Actionscript-Götter haben mit den Listenern im Prinzip Callback-Pakete geschnürt: Alle zusammengehörigen Callback-Funktionen sind in einem Objekt untergebracht.

Den kompletten Artikel lesen »


Wer braucht noch PHP?

Mir wurde die Existenz eines sehr interessaten Projektes nahegebracht. Denn wie entwickelt man mittlerweile eine Web-Applikation? Datenbank -> SQL -> PHP -> HTML -> Javascript und das Ganze auch am Besten dank AJAX etc. auch wieder in die andere Richtung. Kein Wunder, das man sich fragen muss, auf welchem Layer hat man denn eigentlich eine Funktionalität implementiert?

Warum sollte man sich also nicht ein wenig ausruhen auf der Couch.

Den kompletten Artikel lesen »


Sichere Software entwickeln

Joe Stagner postet seit Neustem ein bis zweimal die Woche in seinem “Secure Developer“-Blog, was man beim Entwickeln richtig machen sollte. Leider auf englisch, aber um diese Weltsprache kommt in unserem Business ohnehin niemand drumherum.

Die Themen sind zwar stark Microsoft lastig, richten sich trotzdem an Webentwickler. Vor Security Bugs ist niemand gefeit - egal ob Ruby, ASP oder PHP Entwickler. Also lasst uns seinen Worten lauschen ;)

Code is Combat!


Mobile Webseiten mit PHP

.mobi Logo

Zur Zeit wird irgendwie alles mobil. Die Email auf dem Handy, das Internet auf dem iPhone - dass meine Oma mit 80 noch Auto fährt ist da nix besonderes mehr… Aber wie geht das eigentlich? Was ist so magisch an dem Wörtchen “mobil”? Braucht es etwas besonderes, um eine Webseite mobil zu machen?

Eieiei, Fragen über Fragen. Aber dem werden wir mal auf den Grund gehen. In Anbetracht der Tatsache, das das Kundenvolk immer lauter nach mobilen Webseiten schreit, ist es eigentlich auch höchste Zeit, hier mal einzuhaken.

Den kompletten Artikel lesen »


Ext 2.0 mit PHP Backend

“Ui, das sieht ja aus wie eine echte Applikation!” Mag der eine oder andere denken… Und da liegt er noch nicht einmal so falsch, wenn man sich Ext 2.0 anschaut.

Aber wie kommen die Streifen in die Zahnpasta oder die Marmelade in den Berliner? Mit anderen Worten: Wie werden starre Ext Oberflächen mit Daten zum dynamischen Web 2.0 Leben erweckt?

PHP Ext ist ein Versuch, der statischen Oberfläche Leben einzuhauchen. Schick objektorientiert gehalten, können mühelos Ext Oberflächen generiert werden. Leider sind noch lange nicht alle Ext Komponenten über das Framework generierbar, wie die PHP-Ext Beispiele zeigen.

Den kompletten Artikel lesen »


Ältere Artikel »