PHP prestanda, funcion vs include + lite andra optimeringar, tips?
Tjenare!
Trots att jag använt mig av PHP ett bra tag nu så är det fortfarande lite nybörjarfrågor som jag undrar över:
(ursäkta att det blev så mycket text, hoppas ni har ork )
Mina hobbyprojekt är i ständig utveckling, gör dom endast för skojs skull, brukar gå i cykler: designa - koda - optimera kod - optimera kod ännu mer - minska antalet http request - minska css:en med 20% - släng allt - gör om samma sida med samma funktioner från scratch med allt man lärt sig med föregående version osv osv så går det runt så i all evighet.
Men nu tänkte jag böka lite mer med PHP, allt jag kodar med PHP känns som haffsverk och har säkerligen urdålig prestanda (med tanke på att PHP redan är slött = ) så jag tänkte använda best practice redan från början nu och tänkte kolla prestandan i dom absolut enklaste koderna. (svårt att prestandatesta på storskalig nivå på sin egna lilla inaktiva server så svårt att sätta upp en egen mätmiljö)
Har läst tips från dom lite större företagen om vad dom anser om optimeringar, tex yahoo, google och facebook men har inte sett det jag efterfrågar vara dokumenterat någonstans i större utsträckning, visst står det endel i PHP:s dokumentation men nja.
Ignorera simpelheten i koden och syntaxfelen och ooptimerad html, det är själva principen jag frågar efter.
1) Är det någon som helst prestandaskillnad på include och att skapa en funktion?
Låt säga att man skall ha en meny som är likadan på varenda sida, då kör man allt som oftast med include:
Från index.php och alla andra sidor:
<?php 'menu.php'; ?>
menu.php:
<div id="main-menu">
<ul>
<li><a href="index.php">Hem</a></li>
<li><a href="recensioner.php">Recensioner</a></li>
</ul>
</div>
Men om man gör en funktion av det istället, samlar alla simpla funktioner i en fil osv osv:
<?php menu() ?>
function.php
function menu() {
echo '<div id="main-menu">
<ul>
<li><a href="index.php">Hem</a></li>
<li><a href="recensioner.php">Recensioner</a></li>
</ul>
</div>'
;}
Vilket sätt är lämpligast i prestandasynpunkt, skiljer antalet request osv? Vore kul med era synpunkter på det. Jag tänkte mest på att om man gör en funktion av det och lägger in i en gemensam fil så kan man dels köra scriptet och sen cacha resultatet, men det kan man ju med include med så ja...
2) "Nestlade" funktioner?
Vet ärligt talat inte om man kallar det för nestlade funktioner men iaf, låt säga att man på ett smart sätt återanvänder element och funktioner på flera ställen på en sida och istället för att separera skiten såhär:
<?php header() ?>
<?php menu() ?>
<?php submenu() ?>
Så kör man istället:
<?php header() . menu() . submenu() ?>
Tjänar man något på att göra det sistnämnda? Färre request? Loopas koden mm? (ja, i mitt exempel är det onödigt att inte bara lägga allt i header() men som sagt, det är principen som efterfrågas)
3) Includera fil från en annan server?
Säg att din nuvarande server går ner på knäna, du har redan gjort allt vad du kunnat genom att optimera alla koder sidan använder sig om, du har separat server för dina bilder och filmer, du har en annan server som hostar dina bilder (som sidan i sig använder sig av), script och css, en annan server för databas. Trots dina försök är sidan extremt trög och tyvärr har du inte tillgång till någon lastbalanserare, inte ens RR så du försöker dela upp sidan i ännu mer separata bitar.
Hur gör man då med PHP? Såvitt jag förstår så kan man använda sig av en separat url vid include, require osv MEN det verkar som om scriptet körs på den där servern, vilket kan vara bra så lite av loaden görs av en annan server, MEN eftersom den först kör scriptet på den separata servern och sedan skickar resultatet till huvud webbservern då betyder väl det att det är svårt att lägga över funktioner som är beroende av andra funktioner som INTE ligger på servern scriptet körs på? Vilken typ av funktioner eller delar av PHP kan man tjäna på att lägga över och köra på en separat server för att sedan använda svaret på huvudservern?
(Ja jag vet, en lastbalanserare eller någon annan lösning är ju vettigast men som sagt igen, för sakens skulls bara)
Extremt tacksam för svar och tips.
Hur kan syltkakor överleva i det vilda utan ögon?