Google+ Followers

woensdag 11 november 2015

PHP forums, worden ze ooit volwassen?

PHPHulp.nl:

Iemand stelt een vraag: "Als ik een selectbox maak met de namen van mijn gebruikers erin dan worden de spaties vervangen door underscores, waardoor ik na het submitten de namen niet meer kan terugvinden in de database. Hoe komt dat?"

De oplossing die het PHP forum voorstelt: "dan moet je het id gebruiken, niet de naam".

Huh? Als spaties niet goed doorkomen moet je iets gebruiken dat geen spaties bevat? Waarom niet gewoon uitzoeken naar waarom die spaties worden vervangen? Want dat is blijkbaar niet verwacht en niet gewenst. *Dat* is dus het probleem.


Maar moet je opletten wat er wordt gezegd als ik dat voorstel: "dankzij de tips die hij van ons heeft gekregen is hij nu wel een stuk verder".

Ja, een stuk verder in de problemen want de data wordt nog steeds verkeerd doorgegeven en de enige indicatie die hij had dat het *fout gaat* is door jullie brilliante voorstel nu onzichtbaar geworden. Goed werk hoor!


Dit oogkleppen, kop in het zand, als ik het niet zie dan is het er niet, gedrag is kenmerkend voor de PHP community. Nadenken lijkt verboden, oorzaken mogen niet worden aangepakt, elk probleem moet worden opgelost via een vorm van symptoombestrijding. Heb je een undefined-variable warning? Dan zet je gewoon je error_reporting lager, want wat voor kwaad kan een undefined variable nou helemaal? Kan je datase iets niet? Dan doe je het gewoon in een scriptje, dat is toch sneller.


"Werken met het id is de netste manier".

Nee, het is de manier die jij hebt aangeleerd gekregen van iemand anders die het zo deed. Een natural-primary-key is het netst en dat deed de poster ook; hij werkte een gebruiker bij aan de hand van zijn gebruikersnaam, zodat je altijd zeker weet dat je de juiste gebruiker aanspreekt. Een surrogate primary key kan op elk moment veranderen, zie de boeken van Joe Celko. Ik heb dat zelf ook meegemaakt bij webshop waarvan een van de leveranciers die een dump/restore had gedaan van zijn database, en bij de restore  de id kolom van de producttabel had overgeslagen zodat alle producten een nieuw id kregen. Gelukkig synchroniseerde de webshop op EAN code plus SKU, maar blijkbaar hebben andere webshops dagenlang de producten verkocht tegen verkeerde prijzen.


Natuurlijk, een surrogate primary key heeft zo z'n voordelen en in de alledaagse praktijk van de gemiddelde website zul je er geen last van hebben, maar *dat was het probleem niet*.

Als je auto niet wil starten als het koud is dan ga je toch ook niet met de fiets tot het weer zomer is?

Klinkt dit gefrustreerd? Vastwel, want ik wordt kenttergek van die houding.

Tuurlijk PHP is bij uitstek een taal voor beginners, maar als je constant wordt omringd door mensen die het zelf ook niet begrijpen en je voorzien van de domste adviezen, dan kom je ook nooit ergens.