Jag funderar lite på hur jag skall bygga upp en sidan som jag jobbar med för tillfället. Jag tittade på https://www.mediamarkt.se och såg hur dom gjort.
Om jag inte minns fel, var som sagt många år sedan jag höll på med php. Hursomhelst jag har för mig att /?blah=bah fulla adress är /default.php?blah=bah. Man behöver inte ange det.
Jag funderar lite på hur jag skall bygga upp en sidan som jag jobbar med för tillfället. Jag tittade på https://www.mediamarkt.se och såg hur dom gjort.
Strängarna skickas till den sida som anropas när man går in på https://www.mediamarkt.se, så det behöver inte nödvändigtvis vara default.php - beror alltså på vilken som är standardsidan.
Jag vet inte hur man specifikt gör i PHP, men hade jag gjort det på Windows hade det nog blivit 1) ett ISAPI-filter i IIS som fångar HTTP-requests och processar dem eller 2) en 404-sida som hanterar anropen och skickar vidare till "rätt" sidor, beroende lite på vilken plattform man har.
Omskrivningsreglerna sköter du sedan i Apache, närmare bestämt med filen .htaccess.
Då kan du, om du vill, ha ett dokument som processar allt, eller lägga ut det över ett par dokument - category.php, product.php och page.php.
Kan inte se att det skulle bli någon större skillnad, förutom att man måste lista ut vad det är man ska visa. Skulle gissa att index.php någonstans har en mappning som säger nåt i stil med "om categoryID har ett värde, visa den kategorin; annars, om productID har ett värde, visa produktinfo; annars, om pageID har ett värde, visa specialsida; etc".
Det blir väl en viss extrakostnad när man listar ut vad som ska synas, men mest i form av några få extra CPU-cykler vilket jag misstänker att de flesta webbservrar har råd med. Tycker man att man får en bättre systemdesign av att göra på det här viset, kör på. Själv tycker jag det tenderar att bli bökigare med att göra en massa if-satser och drösar med includes, men det är bara jag, och det kanske finns något smidigt sätt att fixa med ett ramverk.
Som vanligt så har spango helt rätt i det han säger, ett ramverk skulle vara att föredra - som t.ex. Zend Framework.
Så länge det enbart handlar om att läsa information från filer och databas så kommer prestandan inte att försämras. Om du däremot skriver till filer eller gör insert's till databasen kan det i så fall påverka negativt.
När jag körde med en index.php som fick ta hand om all trafik sökte jag igenom filsystemet för att avgöra vilka url som skulle resultera i någon aktivitet. Fel url ---> till startsidan. På så vis blir administratören fri att lägga upp nya undersidor, samt man kan lägga in skydd emot elaka saker url - $_GET['elak_sträng'].
Själv har jag aldrig funderat så mycket på prestandaskillnader, mcv vs en fil. Jag tror att sidans innehåll och laddningstider alltjämt avgör hur sega sidor blir.
Skulle gissa att index.php någonstans har en mappning som säger nåt i stil med "om categoryID har ett värde, visa den kategorin; annars, om productID har ett värde, visa produktinfo; annars, om pageID har ett värde, visa specialsida; etc".
Jag testade att göra precis så och det blev ganska smidigt tycker jag. Tre stycken if/else-satser och man vet vilken information man skall visa. :)
SPiN skrev:
Så länge det enbart handlar om att läsa information från filer och databas så kommer prestandan inte att försämras. Om du däremot skriver till filer eller gör insert's till databasen kan det i så fall påverka negativt.
Då tror jag att det är lugnt. Vad jag kan se så kommer jag bara att ha en enda INSERT på hela sidan och det är när köpet gått igenom (och lagras i databasen). All annan aktivitet lagras i sessioner.
268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e