Avatar billede claushelth Nybegynder
13. juni 2003 - 02:40 Der er 8 kommentarer og
1 løsning

ressourceforbrug ved inkludering

Jeg er gået i gang med at lave noget objektorienteret struktureret php-kode med model-view-control.

Jeg har hørt at man skal helst passe på med at inkludere filer da serveren skal læse "hele" filen igennem hver gang.

Men ER det virkelig hele filen??

Hvis jeg nu inkludere:
require_once 'lib/DataAccess.php');
denne fil, som er en klassefil, er det så alle funktioner og data der bliver læst igennem?? Jeg kalder ikke nogle funktioner på nuværende tidspunk, og så er serveren vel ligeglad med at kigge inde i funktionskaldene...eller hvad??

Hvis serveren læser alt hver gang så er det sku svært at lave objektorienteret php, uden at serveren skal arbejde hård hver gang en side loades!!

Håber der er nogle der kan hjælpe :-)
claus
Avatar billede claushelth Nybegynder
13. juni 2003 - 02:47 #1
Nu har jeg forsøgt at lave en fejl i en funktion som bliver inkluderet i min index.php, men ikke brugt, og den fejler.

Det vil vel sige at ALT bliver læst af serveren!!!

Hvis der er nogle her der har forstand på objektorienteret php programereing, må de meget gerne give deres stemme til kende.

Umiddelbart vil jeg jo syntes at det vil kræve at en bruger henter HELE web-sitet hver gang han/hun brugersiden (klikker på domænet), og det vil da være ekstremt resourcekvævende, især for de store sites??
Avatar billede technodance.dk Nybegynder
13. juni 2003 - 04:22 #2
så hvidt jeg har forstået på php så skulle php kun læse de liner der er php og komme ud med en html skrevet

/rene/
Avatar billede myplacedk Nybegynder
13. juni 2003 - 07:27 #3
Når en fil bliver inkludered læses hele filen, ellers ved PHP jo ikke hvad der er i den. Det er dog ikke noget problem, medmindre du har nogle ekstremt store filer, med en hel masse kode du ikke bruger. I så fald, del filerne op, og inkluder kun det, du rent faktisk bruger.

Når du snakker OOP vil jeg gætte på at dit problem er, at du har lagt al logik til dit site i en stor klasse. I så fald, så del klassen op i mindre klasser, som du lægger i forskellige filer, og inkluder kun det, du skal bruge.
Avatar billede Slettet bruger
13. juni 2003 - 08:28 #4
For at optimere så kør include_once i stedet for include!
En klasse per fil.
Inkluder de klasser/filer i toppen af de enkelte klasser i forholdet til afhængigheden indbyrdes.
De fleste servere kører en eller anden form for optimering (ZEND Accellerator mm.) hvor kildekoden kompiles første gang scriptet køres. Dette begrænser også problemet med fil inkludering.
Avatar billede claushelth Nybegynder
13. juni 2003 - 09:43 #5
regin -> ja jeg bruger heller ikke include. Hvis du kigger i toppen skriver jeg require_once ;-). Hvis man benytter dem uden include kan man få fejl hvis man åbner flere filer med databaseforbindelse på en side!!
Avatar billede claushelth Nybegynder
13. juni 2003 - 09:51 #6
myplace (eller andre) ->
Ja du har ret i at logiken skal deles op. Jeg studere Design Patterns og og fundet nogle MVC filer konverteret til php på http://www.phppatterns.com .

Jeg kan bare ikke forstå om man skal fordele alt sin data til siden på de 3 (4 (DataAccess)) filer, eller man vil lave en Model, en Controler og en View for hver side man vil vise. Det er omfanget jeg er i tvivl om.
Min pointe er her at hvis man ligger det hele i de 3 (4) filer så bliver det jo rimelig overskueligt, men så skal alt data indlæsses hver gang en side loades.

Hvis det der er nogle her med erfaringer med MVC må de meget gerne skrive :-)
Avatar billede claushelth Nybegynder
13. juni 2003 - 09:55 #7
min påstand vil være at man har en Model og en DataAccess(DB-klasse) til hele sittet (altså med relevant data for hele sittet), og hver side på sittet har så hver sin Controller og View, giver det ikke menning?

claus
Avatar billede claushelth Nybegynder
25. januar 2004 - 23:15 #8
nå jeg fik ikke rigtig svar på mit ?, så jeg går videre...jeg er nu startet på c# istedet :-)
Avatar billede claushelth Nybegynder
25. januar 2004 - 23:15 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester