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?

01
Mar 2010
POSTED BY
DISCUSSION 11 Comments
TAGS

11 Responses to : Att smyga in funktioner

  1. 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().

  2. Veidit says:

    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!

  3. Jonas B. says:

    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.

  4. Björn Persson says:

    Det där är ett av skälen till att jag föredrar mer omsorgsfullt konstruerade språk.

  5. claes says:

    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

  6. Martin says:

    Denna typ av idioti är en av anledningarna till att jag valt Ruby on Rails i.s.t.f. PHP :)

  7. blippe says:

    har inte php namespaces?

    • pawal says:

      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!

  8. DK says:

    Deja vu! Sånt där tycker jag man hör från PHP-utvecklare hela tiden, tyvärr.

  9. 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