mboost-dp1

Ka man få for mange includes..?


Gå til bund
Gravatar #1 - KarmicMind
11. okt. 2005 17:33
Hejsa alle I kloge hoveder.. :)

Jeg har en idé om at lave mig en toolbox til PHP, altså en mappe med alle de funktioner jeg har lavet igennem tiden.. Idéen består i at lægge funktionerne i hver sin fil sammen med referencer til evt andre funktioner der kræves for at få funktionen til at virke.. Altså at hver fil indeholder require_once linjer til de evt andre funktioner den pågældende funktion gør brug af - og så selve funktionen..

Fidusen, håber jeg, er den at PHP ikke ska spilde tid og hukommelse på at indlæse funktioner den ikke skal bruge..
Spørgmålet er bare om det så gør PHP langsommere at skulle gennemgå funktionernes indenbyrdes afhængigheder hver gang..

Alternativt kunne man jo bare smide alle funktionerne i samme fil, så der kun var én fil at inkludere.. Men så kunne man jo risikere at indlæse funktioner man aldrig får brugt..

Hvordan finder man en ballance, hvor PHP kører optimalt..?
Gravatar #2 - mrmorris
11. okt. 2005 17:47
Det kommer jo i høj grad an på hvor meget kode du har. Alt andet lige, er jeg tilhænger af første metode men det forudsætter et nøje gennemtænkt library hieraki. Jeg har desværre set alt for mange der laver noget generelt functions.php uden rigtig at dele det op i real-world entiteter (queries.php, dateutils.php etc.). Hvorfor prøver du ikke begge dele og ser hvad der er at vinde?
Gravatar #3 - KarmicMind
11. okt. 2005 17:52
Alt andet lige, er jeg tilhænger af første metode men det forudsætter et nøje gennemtænkt library hieraki.

Hvor gennemtænkt behøver det at være..? Er det ikke bare at tilføje en require_once linje per ekstern funktion der kræves af den pågældende funktion i starten af hver fil..?

BTW.. med funktioner mener jeg også klasser og lignende..
Gravatar #4 - mrmorris
11. okt. 2005 18:49
#3 Fremtidig udvidelse og vedligeholdelse afhjælpes betydeligt af et godt hieraki. PHP bliver nemt noget frygteligt spaghetti-kode med redundans og hacks her og der.

Bruger du derudover Zend Accelerator, PEAR Cache eller en anden cache, skal dine .php includes ikke parses hver gang hvorfor det giver endnu mere mening at opdele dit framework korrekt fra start af.

Men der er kun EN måde at se om det gavner din situation/miljø og det er at profilere din kode. Har du ikke profileringsværktøj til rådighed, så gør f.eks. noget i stil med dette:

------------------------
function getTime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$time = getTime();
# Indsæt din test kode her...
echo "Script took: ",getTime() - $time, " seconds";
------------------------
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login