Alte Bekannte und ihr PHP-​Code

Ich gebe zu: Ich mag PHP nicht. Es ist eine unstruk­tu­riere Dad­delspra­che, mit der man zwar schnell vie­les machen kann, aber nur weni­ges rich­tig struk­tu­riert desi­gnen. Jeder halb­wegs kom­plexe Code, der dann auch noch struk­tu­riert und — wich­tig — sicher sein soll, ver­liert sich in viel­fa­chen Indi­rek­tio­nen von einem mehr­di­men­sio­na­len Array zum nächs­ten. PHP ist was für Bast­ler und Tüft­ler, aber wer wart– und wie­der­ver­wert­ba­ren Code schrei­ben will, der sollte sich lie­ber eine andere Spra­che suchen.

Vor kur­zem unter­hielt ich mich mit einem Bekann­ten über einen gemein­sa­men drit­ten Bekann­ten, mit dem wir beide die­selbe nega­tive Erfah­rung gemacht hat­ten: Unzu­ver­läs­sig, nach­läs­si­ger Pro­gram­mier­stil, kaum wart­bar. Wir beide hat­ten ihn schon mal jeweils im Laufe eines Pro­jek­tes „ver­lo­ren” und anschlie­ßend sei­nen Teil weg­ge­wor­fen und neu geschrie­ben. War einfacher.

Was mir ent­gan­gen war: In einem Modul unse­res Sys­tem kreuchte der fünf Jahre alte Ori­gi­nal­code noch herum. Und natür­lich ist genau die­ser Teil Amok gelau­fen, als ich jetzt eine Por­tie­rung von PHP 4 auf PHP 5 vor­ge­nom­men habe. Höhe­punkt pro­gram­mier­tech­ni­scher Meis­ter­leis­tun­gen: Eine hier­ar­chi­sche Daten­struk­tur wird rekur­siv geparst. „((a b)(c d))” wird also zu „Array([0]=>Array([0]=>"a" [1]=>"b") [1]=>Array([0]=>"c" [1]=>"d"))”, wobei jedes Klam­mer­paar von einer neuen Instanz der­sel­ben Par­s­er­klasse aus­ein­an­der­ge­pflückt wird.

Dumm nur, wenn man statt neuer Instan­zen immer den­sel­ben Par­ser nimmt, der zudem nur einen Satz inter­ner Varia­blen hat. Dann geht die ganze Baum­struk­tur über den Jor­dan und das Par­sin­ger­geb­nis sieht so aus: „Array([0]=>"a" [1]=>"b" [2]=>Array([0]=>"a" [1]=>"b") [3]=>"c" [4]=>"d" [5]=>Array([0]=>"c" [1]=>"d"))”. Urks. Zwei Stun­den habe ich die PHP-​Spaghetti umge­baut, bis der Code das machte, was er soll.

Was ich daran jetzt PHP ankreide? Ganz ein­fach: Das hätte nie funk­tio­nie­ren dür­fen! Ich will lie­ber gar nicht wis­sen, wel­ches pro­gram­mier­tech­ni­sche Kabi­nett­stü­cken dazu geführt hat, dass diese völ­lig ver­hunz­ten Par­ser­kon­strukte fünf Jahre klag­los unter PHP 4 gelau­fen sind…

0 Antworten to “Alte Bekannte und ihr PHP-​Code”


  • Keine Kommentare

Hinterlasse eine Nachricht

Mit dem Absenden des Kommentars willigen Sie ein, dass der angegebene Name, Ihre E-Mail-Adresse und die IP-Adresse Ihres Zugangs im Zusammenhang mit Ihrem Kommentar gespeichert werden. E-Mail- und IP-Adresse werden nicht veröffentlicht oder weitergegeben. Siehe Datenschutzhinweise.