FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Har WN som tidsfördriv
|
Hejsan, hade svårt att sätta rubrik så ursäkta det dåliga valet.
Har lite funderingar gällande import av filer i php (require, include osv). Jag brukar bygga en "core" fil där jag har alla funktioner och klasser. Denna filen importeras i index.php oftast. Men vore det inte bättre om man gjorde en fil/funktion eller klass? så man slipper importera onödiga funktioner som inte kommer till användning alltid. Exempel: (denna filen ska skicka ett email genom en egengjord funktion) PHP-kod:
PHP-kod:
![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Administratör
|
Mitt första tips är att titta på OOP. Chansen att send_mail()-funktionen går att återanvända till ditt nästa projekt utan att skriva om den och få underhålla den i två projekt är liten om den ser ut som nu. Nästa gång vill du ha andra headers, gå direkt mot smtp osv. Sen 5 projekt in märker du att din mail inte alltid kommer in, så du vill logga alla mail som skickas. Då har du 5 ställen att gå in och ändra på. Detta löser en bra OOP-struktur åt dig.
Och det är även det enkla svaret på din fråga. Använd autoloading och lägg dina funktioner i klasser. För en snabb övergång kan du skapa klasser som Mail och bara ha en statisk funktion sendMail() i den. Så fort du försöker anropa Mail::sendMail() så kommer filen med klassen Mail att laddas och du slipper både manuellt inkludera filerna innan anropet och du laddar mer än du behöver (efter du läst på om cohesion och coupling). Normalt sett brukar man också döpa filerna och därmed klasserna på ett sätt som gör att katalogträdet blir lite lättare att hitta filerna i också, liksom du får förklarande klassnamn. T ex kan du använda _ för att dela in det som t ex Mail_Transport_Smtp som hämtas från include/Mail/Transport/Smtp.php. Eller så lägger du Smtp-klassen i namespacet Vendor-name/Mail/Transport och får ungefär samma sökväg. Titta gärna på standarden PSR-0 om du ska börja använda autoloading (https://github.com/php-fig/fig-stand...epted/PSR-0.md).
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
|
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Ett generellt tips är att du inte vill ha för många require / includes i PHP eftersom det faktiskt stjäl tid. Försök hålla nere antalet, men kapsla gärna samtidigt in liknande funktioner i olika enheter (filer kan vara rätt för dig denna gång, i ett nytt projekt bör du ta Clarences råd och kika på OOP).
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Administratör
|
Citat:
However, utvecklartid är dyrare än några procentenheter prestanda. Så att strukturera koden så att den ger färre buggar, är lättare att underhålla och arbeta vidare med (läs high cohesion, loose coupling) är viktigare än hur filerna laddas.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Om man väl använder require() så använd då require_once() i stället så laddas filen bara en gång....
Men annars tycker jag du helt ska glömma allt vad imperativa programspråk heter och göra som Clarence skriver att omedelbart gå över till Objektorienterad programmering (dvs OOP). |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
Är varje prestandaförbättring viktig så är require bättre.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Mer än 90-99 procent av datorns tid står den och väntar på att användaren ska utföra något, så att optimera användargränssnitt för hastighet är i normalfallet mindre viktigt (lägre prioriterat), det som däremot är viktigt att fokusera på är: 1) enkelhet att använda 2) eliminera felkällor vid utveckling 3) underlätta uppdatering/underhåll 4) Underlätta drift/administration Punkt 3 och 4 ovan står normalt för 5/6 av totala kostnaden under ett systems livslängd. Först om man upplever problem med prestanda kan man lägga ner tid på att optimera för hastighet. Optast behövs det inte alls hastightsoptimeras vid denna typ av applikationer. Det är viktigt att man har en plan för vad man lägger ner kostnaden på för ett system. |
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Bara ett inlägg till!
|
Citat:
Det stämmer säkert när det gäller vanliga windowsapplikationer, men detta är en webbapplikation och där har du helt andra krav. Tar något mer än 2 sekunder så kan du räkna med att användaren laddar om sidan ELLER tröttnar - båda är rätt dåliga scenarion. Du riskerar dessutom att bli straffade i SERP:en om din webbplats snurrar långsamt. Utvecklar du webbapplikationer skall du ha ett högt fokus på just prestanda. |
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|