Avatar billede kennith Nybegynder
27. februar 2015 - 06:06 Der er 10 kommentarer

Skal jeg bruge define eller gemme i databasen

Hej jeg skal i gang med at kode et større system om og lave en lang række nye funktioner. Men jeg vil gerne lige have lidt ekspertråd :)

Som det er i dag bruges define i vid udstrækning til at lave sprogunderstøttelse f.eks:

define('EN_KONSTANT', 'En værdi');

Alle defines er samlet i sprogfiler der inkluderes på de relevante sider. Jeg har hørt noget om at defines er ressourcekrævende, og tænkte derfor ville det være bedre at placere alle disse tekststrenge i databasen og så loade dem derfra? Det vil give lagt større brugervenlighed men jeg vil gerne have siden til at køre så bedst muligt. Så hvad mener i vil være den bedste løsning?
Avatar billede jakobdo Ekspert
27. februar 2015 - 08:26 #1
Kommer vel lidt an på hvad du vil opnå.
Jeg ville nok kigge på denne: http://php.net/manual/en/book.gettext.php
Avatar billede kennith Nybegynder
27. februar 2015 - 10:05 #2
Jeg vil have den bedste performance med den mindst mulige belastning af serveren.

Som skrevet så er der en masse sprogfiler som indeholder alle de tekststrenge der benyttes. når man besøger en side så inkluderes den relevante sprogfil. Det man kunne gør i stedet var at ligge det hele (altså tekststrengene) i databasen og så loade de relevante tekster derfra i stedet for fra sprogfilerne.

Det ville give meget bedre funktionalitet for mine brugere men jeg vil ikke gøre det hvis det påvirker sidernes performance negativt.

Det drejer sig om alt fra få ord til et par tusinde tegn der skal hentes ved hvert side skift.
Avatar billede jakobdo Ekspert
27. februar 2015 - 10:23 #3
Uden at have en performance test af hænge det op på, så vil jeg mene filsystem er hurtigere end database.
Så hvis du skal have virkelig hurtig opslag, så kunne noget memcache måske være en løsning.
Avatar billede arne_v Ekspert
27. februar 2015 - 20:40 #4
Gettext extension seems to be the most popular wau to do i18n in PHP.

One alternative is intl extension.
Avatar billede arne_v Ekspert
27. februar 2015 - 20:42 #5
Undskyld det blev paa udenbysk.
Avatar billede arne_v Ekspert
27. februar 2015 - 20:44 #6
Jeg ville ikke bekymre mig om performance DB vs PHP file vs resource file.

Det er ret smaa datamaengder som ved hoej load vil forblive i cache.

Jeg betragter det som usandsynligt at det vil paavirke applikationens overordnede performance.
Avatar billede kennith Nybegynder
27. februar 2015 - 21:54 #7
Ohh det var lige det jeg gerne ville høre Arne ;) og i sær fra dig, du har altså lige en ekstra stjerne i min bog.

Det vil være en stor forbedring for brugerne af mit system hvis jeg kan ligge det i Databasen :)
Avatar billede arne_v Ekspert
27. februar 2015 - 22:45 #8
Jeg ved faktisk ikke saa meget om PHP.

Hvorfor vil det vaere en forbedring for brugerne hvis det er i databasen?
Avatar billede kennith Nybegynder
28. februar 2015 - 08:38 #9
Jeg har lavet en dansk klon af webshopsystemstmet osCommerce. Den distribueres gratis og de fleste brugere har ingen teknisk forståelse. Derfor er det for en del af dem meget avanceret at logge ind via FTP og hente en sprogfil og rette i define. Hvis jeg ligger det i databasen så kan jeg lave en side i kontrolpanelet hvor man kan søge efter specifikke tekststrenge som man ønsker at ændre, man kan få listet alle tekst strenge eller man kan få vist tekster fra en specifik side. Hvis jeg lige tænker mig lidt om så tror jeg opå jeg kna lave det så nemt at alle kan finde ud af det. Det betyder også at folk nemt vil kunne tilføje et sprog mere.

Jeg er også ved at fjerne de grafiske knapper i shoppen og erstatte dem med CSS det betyder at jeg kan lave et punkt på sprog siden hvor man kan skifte tekst på alle knapper i shoppen så de også matcher ens sprog :)

Men jeg tjekker lige gettext inden jeg går igang det er en ret stor opgave at flytte alt tekst over i databasen.
Avatar billede kennith Nybegynder
28. februar 2015 - 08:38 #10
Gider i ikke lige ligge svar begge to så får i nogle point
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

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