|
| Krævende site?? Fra : Thomas Rokamp |
Dato : 23-11-03 23:08 |
|
Hejsa!
Jeg står foran at skulle lave et site, som kan håndtere mange brugere
(100-150 samtidige).
Mit kendskab til PHP er begrænset, men min viden for programmering generelt
er rimelig stor.
Valget af platform ligger ikke nødvendigvis fast, men PHP foretrækkes...
Jeg har foreløbigt sporet mig ind på, at brug af templates er godt, da sitet
skal være vedligeholdelsesvenligt. Derudover har jeg fundet et DB
abstraktions lag, som ser ud til at gøre hverdagen nemmere.
Delene hedder ADOdb og Smarty.
Jeg har ikke lavet så frygtelig meget web-baseret udvikling, så jeg har et
par spørgsmål som nogen måske kan hjælpe med?
Jeg kan regne ud, at jeg med templates (eller php generelt) ikke behøver
bygge hver side op fra bunden, men kan inkludere filer rundt omkring.
Hvad er smartest? At lave en slags "dispatcher", som kontrollerer flowet
mellem de enkelte sider, og indlæser templates efter behov? Eller lave hver
enkelt fil, og inkludere eksempelvis top og bund fra dem?
Jeg vil gerne lave en forside, hvor der elementer på. F.eks. et søgefelt, et
login felt, et tilmeld-nyhedsbrev-felt, og andre foskellige felter, som
kræver hver sin forberedende data og hver sin action form.
Men jeg vil gerne lave det både hurtigt (performance) og overskueligt. Hvad
er normalt?
Alt det jeg lige har skrevet lyder med garanti besværligt, og er det sikker
også. Jeg er jo som nævnt nybegynder udi både PHP og web
Så stil endelig dybdegående spørgsmål!
Mvh.
Thomas Rokamp
| |
Morten Winkler Jørge~ (24-11-2003)
| Kommentar Fra : Morten Winkler Jørge~ |
Dato : 24-11-03 09:08 |
|
Hvad er det for en funktionalitet du forsøger at lave? Et
"gamle-klassekammerater-mødested"? Et turneringssted for den lokale
dart-division? Eller Hvad? Jeg ville syntes det var lettere at svare hvis
jeg vidste lidt mere om opgaven.
Måske skulle du starte med noget mindre hvis du ikke har udviklet til web
før? Det lyder som en større opgave af den første at være. Derudover er
100-200 brugere ikke alverden. De er sjældent på allesammen samtidig
alligevel.
Morten
| |
Thomas Rokamp (24-11-2003)
| Kommentar Fra : Thomas Rokamp |
Dato : 24-11-03 15:10 |
|
"Morten Winkler Jørgensen" <mwj@nospam.mip.sdu.dk> skrev i en meddelelse
news:bpsa7j$689$2@news.net.uni-c.dk...
> Hvad er det for en funktionalitet du forsøger at lave? Et
> "gamle-klassekammerater-mødested"? Et turneringssted for den lokale
> dart-division? Eller Hvad? Jeg ville syntes det var lettere at svare hvis
> jeg vidste lidt mere om opgaven.
Jeg kan ikke umiddelbart fortælle hvad opgaven er, men antag at det er et
forum med mange brugere.
> Måske skulle du starte med noget mindre hvis du ikke har udviklet til web
> før? Det lyder som en større opgave af den første at være. Derudover er
> 100-200 brugere ikke alverden. De er sjældent på allesammen samtidig
> alligevel.
Jeg mente ikke 100-200 brugere i alt, men samtidigt. Det forventes, at sitet
kommer til at håndtere op i mod 100.000 brugere i alt, og at der samtidigt
vil være 100-200 brugere på.
Hvad sitet gør og skal er ligemeget. Jeg er mere interesseret i at vide
hvordan man normalt ville kode et site af den kaliber. Om der er noget man
skal være specielt opmærksom på - faldgruber - som man ligeså godt kan være
forberedt på med det samme.
Jeg har udviklet web før - men ikke i den størrelse. Og slet ikke i PHP. Men
som sagt - min programmeringsmæssige baggrund er i orden, så PHP skulle vel
være til at lære også
Mvh.
Thomas Rokamp
| |
Thomas Lindgaard (24-11-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 24-11-03 21:04 |
|
On Sun, 23 Nov 2003 23:07:51 +0100, Thomas Rokamp wrote:
> Jeg kan regne ud, at jeg med templates (eller php generelt) ikke behøver
> bygge hver side op fra bunden, men kan inkludere filer rundt omkring.
> Hvad er smartest? At lave en slags "dispatcher", som kontrollerer flowet
> mellem de enkelte sider, og indlæser templates efter behov? Eller lave hver
> enkelt fil, og inkludere eksempelvis top og bund fra dem?
Jeg bruger selv noget template-halløj som er bikset sammen af min
php-karriere. Ideen er følgende:
1) Jeg har en html-skabelon med al layout mv. og i denne er der definere
nogle "huller" som sidenhen fyldes ud med output fra php.
<html>
<head>
<[head]>
</head>
<body>
<[body]>
</body>
</html>
2) Under udførelsen af php-scriptet samles outputtet op i en instans af
min template-klasse:
$template->Plug(
'head',
'<link rel="stylesheet" type="text/css" href="style.css" />'
);
$template->Plug('body', 'Der var engang en rød hund med blå ben');
3) ... og outputtet bliver naturligvis:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
Der var engang en rød hund med blå ben
</body>
</html>
Grunden hertil er at jeg ikke er den store fan af
html/php-blandingsprodukter - jeg kan bedre lide når man roder i ren php.
Bagsider af medaljen er til gengæld at man måske kommer til at kalde en
hel del funktioner samt at der skal laves noget string-replace for at
sætte skidtet sammen. Men det er meget nemt at skifte udseendet - bare den
nye html-skabelon har de samme huller.
Alternativt kunne man inkludere html-stumper på stategiske steder i sine
php-scripts, men det synes jeg lyder til hurtigt at kunne blive
uoverskueligt (hvis man ikke kan nøjes med header og footer men osse skal
have stumper nede midt i koden).
Men jeg er osse meget interesseret i andre fremgangsmåder, så hvis der
lige skulle være en derude med alle de rigtige ideer så skyd løs!
Mvh.
/Thomas
| |
Ulrik Nielsen (24-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 24-11-03 21:37 |
|
Thomas Lindgaard wrote:
>>Jeg kan regne ud, at jeg med templates (eller php generelt) ikke behøver
>>bygge hver side op fra bunden, men kan inkludere filer rundt omkring.
>>Hvad er smartest? At lave en slags "dispatcher", som kontrollerer flowet
>>mellem de enkelte sider, og indlæser templates efter behov? Eller lave hver
>>enkelt fil, og inkludere eksempelvis top og bund fra dem?
>
>
> Jeg bruger selv noget template-halløj som er bikset sammen af min
> php-karriere. Ideen er følgende:
Jeg kan kun sige "smarty" http://smarty.php.net - og brug caching, så
skulle du kunne sove trygt om natten...
--
>> ulrik - ulrik(@)lazy.dk
excuse of the day : global warming
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Thomas Rokamp (24-11-2003)
| Kommentar Fra : Thomas Rokamp |
Dato : 24-11-03 21:46 |
|
>
> Jeg kan kun sige "smarty" http://smarty.php.net - og brug caching, så
> skulle du kunne sove trygt om natten...
>
Jeg har også svoret til smarty, men jeg har slået caching fra. Det skyldes
mest uvidenhed (tror jeg), for jeg har følgende problem:
Jeg har en side der lister nyeste tråde i en debat. Hvis denne side caches,
vises samme side hver gang, også selv om der kommer nye indlæg i debatten.
Jeg vil med andre ord gerne kunne tvinge siden "genindlæst". Andre sider må
naturligvis gerne caches, da de er mere eller mindre statiske.
Hvad er det jeg overser? Jeg læste noget med brug af funktionen "insert" i
smarty til at løse problemet, men jeg har ikke rigtig forstået den...
/Rokamp
| |
Ulrik Nielsen (25-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 25-11-03 08:28 |
|
Thomas Rokamp wrote:
> Jeg har en side der lister nyeste tråde i en debat. Hvis denne side caches,
> vises samme side hver gang, også selv om der kommer nye indlæg i debatten.
> Jeg vil med andre ord gerne kunne tvinge siden "genindlæst". Andre sider må
> naturligvis gerne caches, da de er mere eller mindre statiske.
>
> Hvad er det jeg overser? Jeg læste noget med brug af funktionen "insert" i
> smarty til at løse problemet, men jeg har ikke rigtig forstået den...
Du kan dele dine sider op i cachede og ikke cachede elementer, samlet
giver det stadig bedere preformance.
( se http://smarty.php.net/manual/en/caching.cacheable.php nederst )
Ellers skal du cache en side pr. uniq url ex:
http://eksample.com/?loc=12 => en side
http://eksample.com/?loc=321 => en ny side
dette kan du gøre ved selv at generere dine smarty cache id'er.
( se http://smarty.php.net/manual/en/caching.multiple.caches.php )
--
>> ulrik nielsen
excuse of the day : Of course it doesn't work. We've performed a
: software upgrade.
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Jacob Atzen (24-11-2003)
| Kommentar Fra : Jacob Atzen |
Dato : 24-11-03 21:52 |
|
Ulrik Nielsen <un.spam@tiscali.dk> writes:
> Jeg kan kun sige "smarty" http://smarty.php.net - og brug caching, så
> skulle du kunne sove trygt om natten...
Og jeg har stadig ikke forstået pointen i at bruge et template
sprog (smarty) skrevet i et template sprog (php) istedet for bare at
bruge det oprindelige template sprog (php). Men måske har jeg overset
noget?
--
Med venlig hilsen
- Jacob Atzen
| |
Thomas Rokamp (24-11-2003)
| Kommentar Fra : Thomas Rokamp |
Dato : 24-11-03 22:17 |
|
> Og jeg har stadig ikke forstået pointen i at bruge et template
> sprog (smarty) skrevet i et template sprog (php) istedet for bare at
> bruge det oprindelige template sprog (php). Men måske har jeg overset
> noget?
Muligheden for at adskille logik fra præsentation?
Hader personligt kode der er sovset ind i html og omvendt...
/Rokamp
| |
Jacob Atzen (25-11-2003)
| Kommentar Fra : Jacob Atzen |
Dato : 25-11-03 01:25 |
|
"Thomas Rokamp" <no_spam@crax.dk> writes:
> Muligheden for at adskille logik fra præsentation?
Det eneste argument jeg kan se for, at Smarty skulle være mere
hensigtsmæssig end PHP til dette er, at man med Smarty tvinges til at
skrive sine templates med den delmængde af funktionalitet fra PHP som
Smarty tilbyder. Men det er stadig ikke noget der kræver en adskilt
template engine, det kan ligesåvel gøres med ren PHP. Smarty
oversættes jo svjv til PHP alligevel.
--
Med venlig hilsen
- Jacob Atzen
| |
Ulrik Nielsen (25-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 25-11-03 08:19 |
|
Jacob Atzen wrote:
> "Thomas Rokamp" <no_spam@crax.dk> writes:
>>Muligheden for at adskille logik fra præsentation?
>
> Det eneste argument jeg kan se for, at Smarty skulle være mere
> hensigtsmæssig end PHP til dette er, at man med Smarty tvinges til at
> skrive sine templates med den delmængde af funktionalitet fra PHP som
> Smarty tilbyder. Men det er stadig ikke noget der kræver en adskilt
> template engine, det kan ligesåvel gøres med ren PHP. Smarty
> oversættes jo svjv til PHP alligevel.
>
Det er stadig et meget godt argument. Du som udvikler kan sikkert
abstrahere fra at der er php tags i din kode, men det er ikke sikkert at
designeren der sidder og skal rette design, lave nye templates osv. er
af samme overbevisning.
- Det er i hvert fald min erfaring at designere er ret glade for smarty
og andre former for template systemer.
Det er rigtigt at det lægger endnu et logik lag ind, da man kan scripte
i sine smarty templates, men fordelen overskriver langt ulemperne.
- og argumentet med at smarty oversætter til ren php holder ikke, da det
aldrig er kode som man som udvikler / designer ser.. Netop det at
templates oversættes til php gør at siderne genereres meget hurtigt.
se evt:
http://www.phpinsider.com/benchmarks_phemplate/tpl_bench_1.php
http://www.phpinsider.com/benchmarks_phemplate/tpl_bench_2.php
over and out :)
--
>> ulrik nielsen
excuse of the day : Of course it doesn't work. We've performed a
: software upgrade.
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 08:41 |
| | |
Ulrik Nielsen (25-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 25-11-03 09:56 |
|
Lars Olesen wrote:
> Nu har jeg ikke læst hele tråden, men der er en god diskussion her om at
> Smarty er den der kommer tættest på at få det rigtigt, men at der ikke
> er nogen grund til at have andre tags i template engines end php-tags og
> så stadig opnå faktisk samme funktionalitet:
>
> http://www.sitepoint.com/article/1218/4
heh, ja det er jo svært at agumentere mod overbevisning.. :)
- jeg lider jo nok under det samme, bare med modsat fortegn..
Men for at summere op tror jeg godt vi kan blive enige om at lige meget
hvilken metode man bruger er det altid en god ide at adskille logik og
design.
- og hvis man gør det rigtigt kan man faktisk ende med et produkt der er
let at ændre design på, samt er hurtigt for serveren at processe..
--
>> ulrik nielsen
excuse of the day : YOU HAVE AN I/O ERROR -> Incompetent Operator
: error
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 11:39 |
|
>> http://www.sitepoint.com/article/1218/4
> heh, ja det er jo svært at agumentere mod overbevisning.. :)
> - jeg lider jo nok under det samme, bare med modsat fortegn..
Jeg snakker nu ikke af overbevisning, men det forfatteren kommer frem
til er vel langt hen ad vejen det samme som opnås med template engines,
for han bruger kun nogle print sætninger til nogle variable og måske en
enkelt foreach-løkke. Ellers er det egentlig også en template engine han
har lavet, blot uden nødvendigheden af at lave replaces?
Jeg bruger i øjeblikket ingen templates, men har da tænkt mig, at det
skal jeg i fremtiden. Derfor blev jeg ret inspirereret af ovenstående.
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Thomas Lindgaard (25-11-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 25-11-03 14:19 |
|
> Jeg bruger i øjeblikket ingen templates, men har da tænkt mig, at det
> skal jeg i fremtiden. Derfor blev jeg ret inspirereret af ovenstående.
Uhh ja - den template-klasse har nu et par gode pointer. Ret smart at måde
at undgå str_replace() m.fl.
Hyggehej
/Thomas
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 20:42 |
|
> Uhh ja - den template-klasse har nu et par gode pointer. Ret smart at måde
> at undgå str_replace() m.fl.
Ja, det vil jeg også sige, så den skal i hvert fald overvejes grundigt,
inden man kaster sig ud i andet. Er der nogen der kan gennemskue nogle
ulemper ved denne klasse?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 21:36 |
|
> Uhh ja - den template-klasse har nu et par gode pointer. Ret smart at måde
> at undgå str_replace() m.fl.
Hvad gør man egentlig i et template system med tekst, som fx skal stå
over en liste, som man har lavet et 'inner' template til? Vi vil jo
gerne adskille indhold og design?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Ulrik Nielsen (25-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 25-11-03 22:46 |
|
Lars Olesen wrote:
> Hvad gør man egentlig i et template system med tekst, som fx skal stå
> over en liste, som man har lavet et 'inner' template til? Vi vil jo
> gerne adskille indhold og design?
Jeg er sikkert bare træt, men jeg forstår ikke helt hvad du mener her.
--
>> ulrik nielsen
excuse of the day : system needs to be rebooted
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 23:29 |
|
>> Hvad gør man egentlig i et template system med tekst, som fx skal stå
>> over en liste, som man har lavet et 'inner' template til? Vi vil jo
>> gerne adskille indhold og design?
>
> Jeg er sikkert bare træt, men jeg forstår ikke helt hvad du mener her.
En template engine har ofte et 'outer' template, som indeholder fx head,
menu og bottom.
Så har den en 'inner' template, som fx indeholder layoutet til en tabel,
som typisk vil hentes fra en database.
Men hvad med det statiske tekst man har på forskellige sider - lad mig
tage et eksempel: På www.vih.dk/kortekurser/ er der en liste med kurser.
Disse hentes dynamisk og kunne med fordel formateres vha. et template,
som indeholder html-koder til tabellen og dens udseende.
I hvilke filer bør man have den indledende tekst på siden. De bør vel
ikke være i templatet, hvor kun layoutet bør være, så designeren rigtigt
kan boltre sig? Håber det giver mere mening!
/lars
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Ulrik Nielsen (26-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 26-11-03 09:18 |
|
Lars Olesen wrote:
> En template engine har ofte et 'outer' template, som indeholder fx head,
> menu og bottom.
>
> Så har den en 'inner' template, som fx indeholder layoutet til en tabel,
> som typisk vil hentes fra en database.
>
> Men hvad med det statiske tekst man har på forskellige sider - lad mig
> tage et eksempel: På www.vih.dk/kortekurser/ er der en liste med kurser.
> Disse hentes dynamisk og kunne med fordel formateres vha. et template,
> som indeholder html-koder til tabellen og dens udseende.
>
> I hvilke filer bør man have den indledende tekst på siden. De bør vel
> ikke være i templatet, hvor kun layoutet bør være, så designeren rigtigt
> kan boltre sig? Håber det giver mere mening!
tak, det hjalp - det var en laaaang dag igår...
personligt ville jeg (hvis vi tar udgangspunkt ovenstående side) klippe
listen ud, så den var en 'inner' template og lade den indledende tekst
være en del af den yderste template.
to grunde:
1: hvis liste templaten laves rigtigt kan den briges til mange
forskellige sammenhænge.
2: den yderste template vil være "fri" til at vise normale sider uden at
man skal ændre i den.
- så den inderste template self. kun inkluderes hvis der er brug for den...
--
>> ulrik nielsen
excuse of the day : Well fix that in the next (upgrade, update, patch
: release, service pack).
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Ulrik Nielsen (25-11-2003)
| Kommentar Fra : Ulrik Nielsen |
Dato : 25-11-03 23:33 |
|
Ulrik Nielsen wrote:
> Lars Olesen wrote:
> Jeg er sikkert bare træt, men jeg forstår ikke helt hvad du mener her.
>
btw. så faldt jeg over en ret god diskution om brugen af template
systemer eller ej. den er ret lang, men der er ret mange gode
synspunkter i den.
http://phppatterns.com/index.php/article/articleview/4/1/1/
- hvis jeg skal slå et slag mere for brugen af smarty, så er det at;
jo, der er logik i templaten som skal str/ereg_replaces _men_ det bliver
kun gjort hvis der er foretaget ændrigner i selve templaten, ellers
ligger templaten compilet om til ren php (og cachet som ren html, hvis
det er slået til) dette gør at templaten ikke parses mere end det er
nødvendigt.
man kan så sige at vi så er til bage ved "hvorfor så bruge et template
system"... fem ord, "det gør mit liv lettere"
- og så har jeg forøvrigt glade designere i den anden ende, så det er jo
hele to ting på én gang ;)
men nok om det for idag, jeg vil i seng...
--
>> ulrik nielsen
excuse of the day : Plate voltage too low on demodulator tube
from bofh : http://www.cs.wisc.edu/~ballard/bofh/
| |
Lars Olesen (25-11-2003)
| Kommentar Fra : Lars Olesen |
Dato : 25-11-03 23:44 |
|
> http://phppatterns.com/index.php/article/articleview/4/1/1/
Ja, har godt set den også. Den er også ret god :)
> - hvis jeg skal slå et slag mere for brugen af smarty, så er det at;
> jo, der er logik i templaten som skal str/ereg_replaces _men_ det bliver
> kun gjort hvis der er foretaget ændrigner i selve templaten, ellers
> ligger templaten compilet om til ren php (og cachet som ren html, hvis
> det er slået til) dette gør at templaten ikke parses mere end det er
> nødvendigt.
Ja, men det sker så vidt jeg kan se også i den omtalte klasse? Og det er
også en template engine, men den bruger bare php i stedet for str_replace :)
> man kan så sige at vi så er til bage ved "hvorfor så bruge et template
> system"... fem ord, "det gør mit liv lettere"
Det ville den vist også. Det er altså ikke en diskussion OM vi skal
bruge templates, men om den skitserede metode ikke er noget smartere end
en almindelig template engine, som vel ofte er overkill?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Thomas Lindgaard (26-11-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 26-11-03 01:15 |
|
[snip]
> Det er altså ikke en diskussion OM vi skal
> bruge templates, men om den skitserede metode ikke er noget smartere end
> en almindelig template engine, som vel ofte er overkill?
Man kan vel regne det ud som følger:
Med cache)
Begge metoder (Smarty og den skitserede) bruger så vidt muligt sin cache
(naturligvis) så det er kun hvert x. minut der skal foretages en
genskrivning af cachen. Denne genskrivning vil muligvis gå hurtigere i den
skitserede metode, idet der kun parses PHP-kode (og ikke PHP-kode som skal
parse noget template-halløj). Så alt andet lige vil der vel ikke være den
store forskel at mærke i daglig brug...
Spørgsmålet reducerer dermed til om man ønsker den ekstra funktionalitet og
brugervenlighed(?) som Smarty tilbyder overfor designeren.
Uden cache)
Her skal der parses hver gang, så der vil der være en større
performance-mæssig gevinst ved ikke at skulle parse et ekstra lag template
engine.
Bare et par strøtanker
/Thomas
| |
Troels Arvin (24-11-2003)
| Kommentar Fra : Troels Arvin |
Dato : 24-11-03 22:50 |
|
On Sun, 23 Nov 2003 23:07:51 +0100, Thomas Rokamp wrote:
> Jeg vil gerne lave en forside, hvor der elementer på. F.eks. et søgefelt, et
> login felt, et tilmeld-nyhedsbrev-felt, og andre foskellige felter, som
> kræver hver sin forberedende data og hver sin action form.
Du skriver, at folk kan logge ind. Hvilken konsekvens har det, når folk
logger ind? - Bliver siden da helt anderledes, eller vil de
personificerede elementer kunne holdes som del-elementer (separate URLs),
der hentes ind på siden via javascript-inkluderinger?
Grunden til at jeg spørger, er for at søge at forstå potentialet for
HTTP-caching. Hvis I kan holde de tungeste og/eller mest benyttede dele af
sitet i hvertfald lidt cache-bare, så er der interessante muligheder for
at håndtere mange samtidige brugere vha. en omvendt proxy, altså caching
på HTTP-niveau[1]. I den forbindelse:
http://troels.arvin.dk/linuxforum2003/
Når du taler PHP og høj performance, så overvej også at give PHP
mulighed for at genbruge parsede og kompilerede sider - altså "caching"
af kompileret kode. Til det formål er Zend acceleratoren[2] det "sikre"
men ret dyre valg, mens den gratis Turck MMCache[3] lyder spændende (uden
at jeg dog kender til folk med personlige erfaringer dermed).
Du nævner et template-system, og du har fået anbefalet Smarty. Den
tilbyder caching på helt tredie led i kæden, som en side-afvikling
består af, hvilket er interessant. Om den fortsat giver
performance-forøgelse af betydning, hvis du benytter en af ovenstående
værktøjer (Zend eller Turck MMCache).
Jo mere du kan cache (ovenfor er nævnt eksempler på tre forskellige
caching-metoder, der principielt godt kan tages i anvendelse samtidigt),
desto højere antal samtidige brugere kan du få.
En anden, meget betydende faktor, er fornuftig brug af database. Fokusér
særligt på, om jeres databasetabeller har relevante indekser.
Afslutningsvis - et interessant link, der generelt handler om
PHP-benyttelse i et højtydende miljø (Yahoo):
http://public.yahoo.com/~radwin/talks/yahoo-phpcon2002.htm
Noter:
1:
Et eksempel på, hvordan det _ikke_ skal gøres så man i dag på
www.php.net: En kodefejl gjorde, at PHPs forside i en periode havde en
grim, grim fejlmeddelelse. Men tilsyneladende var fejlmeddelelsen ikke
ledsaget af en anti-caching HTTP-header eller en passende HTTP fejlkode,
så siden med den grimme fejl blev - i hvertfald set her fra min maskine -
cachet længere end nødvendigt. (Dette skyldes nok til dels, at PHP
generelt fejler ved ikke at udsende en HTTP fejl 500 ved parsefejl.)
2:
http://zend.com/store/products/zend-performance-suite.php
3:
http://turck-mmcache.sourceforge.net/
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
|
|