Att smyga in funktioner
En enda liten skillnad i en uppgradering från PHP 5.3.0 till 5.3.1 gjorde att Creeper inte längre fungerade. Jag fick ett meddelande om att Creeper inte längre visade några resultat, och det tog en stund att komma på vad felet var, och varför det hade uppstått.
De finurliga människorna bakom PHP tycker att det är en bra idé att föra in nya reserverade ord lite då och då. I Creeper har (numera hade) jag en funktion som heter getHostname som hämtade hostnamn-delen av HTTP-referern som jag vidarebehandlar. Om man lusläser changeloggen för PHP release 5.3.1 hittar man denna obetydliga rad:
Added gethostname() to return the current system host name. (Ilia)
Maken till featurecreep har jag sällan skådat. Kan man inte hålla sig till major-releaser innan man inför sådana här galenskaper? Hur gör folk för att hålla sina PHP-applikationer stabila över tid, när marken under dem gungar så här?




March 1st, 2010 at 10:28
Jag säger inget om huruvida det är rätt eller fel att lägga in nya funktionsnamn/reserverade ord i en punktrelease för det vet jag för lite om, men det här, tillsammans med andra orsaker som externa libs, inkluderade funktionsfiler, etc är anledningen till att jag nästan alltid namnger mina funktioner mer unikt.
I ditt fall hade jag nog från början döpt min funktion till creeper_getHostname().
March 1st, 2010 at 10:35
Bra att du upptäckte det, du borde skriva en variant av din post på engelska för de som har samma problem och söker information kring det.
Tackar!
March 1st, 2010 at 12:40
Hålla PHP-applikationer stabila? Nu förstår jag inte riktigt frågan. Det finns nog en anledning att i stort sett alla webhotell ligger kvar på stenåldersversioner av PHP med kända säkerhetsproblem.
March 1st, 2010 at 13:46
Det där är ett av skälen till att jag föredrar mer omsorgsfullt konstruerade språk.
March 1st, 2010 at 13:52
Enklaste sättet att hålla sin PHP applikation stabil och utom räckhåll för PHPs dumheter är att sluta använda PHP
March 1st, 2010 at 15:44
Denna typ av idioti är en av anledningarna till att jag valt Ruby on Rails i.s.t.f. PHP :)
March 1st, 2010 at 18:32
har inte php namespaces?
March 1st, 2010 at 19:47
Jo, men vad hjälper det om man spammar den globala namnrymden med junk och genererar fel?
Dessutom upptäckte jag nu en hel drös andra problem. I mina arrayer har jag variabler som heter min och max. Nu fylls min error-log med klagomål om dessa, så under det senaste dygnet har jag fått cirka 100GB felmeddelanden i min /var-katalog. ARGH!
March 2nd, 2010 at 15:43
Deja vu! Sånt där tycker jag man hör från PHP-utvecklare hela tiden, tyvärr.
March 14th, 2010 at 20:17
en helt annan fråga hur kan jag se vilka myndigheter som besöker min sida har lagt in koden på min sida men den visar bara det senaste från massa olika bloggar inte min när jag klickar på logotypen
March 14th, 2010 at 20:30
Den ska visa alla. Men om du vill länka till just dina träffar så länkar du till http://gnuheter.com/creeper/site/sajtnamn, där du byter ut det sista “sajtnamn” mot adressen till din webbsida.