Dave M G wrote:
PHP General, I have a site where I will set the interface up to be multilingual. This means that all the snippets of text which make up the menu and other elements of navigation common to most pages will be stored as variables. In most web site set ups that I have seen, especially on forums, the text is stored in a PHP script which is just a long list of variables. I wondered if there was any downside to storing the list of interface texts in a MySQL database, then calling them as an array when the page loads? This would have one minor advantage, which is that as I expand to new languages, I could build a simple web interface where people could input new languages into a form.
true - rather than trying to writing an interface thats _properly_ capable tf editing phpb-like language files - which although not impossible is a lot more difficult to make fool-proof than one first imagines (I have very ingenious 'fools' who want to edit stuff like that!)
However, is it a drag on a server to have to reach into the MySQL database to retrieve the array of texts each time the page loads? Note that the texts will be something like 20 to 30 small one to four word phrases like "contact" and "previous page" and that sort of thing.
using var_export() you can write the array to a file on a TMPFS filesystem (e.g. /dev/shm) as a cache and have a cmdline script or something that you run whenever you want the lang itmes to be updated - reading a single small file in off disk (which in the case of TMPFS is in RAM - bonus!!!) will be faster in general than querying MySQL and building the array. essentially this gives you the best of both world - with the added bonus of begin able to easily control publication of updates to the lang items.
On the surface, it doesn't seem like this would be much different than accessing a PHP script with a list of variables. But then, I figured there might be a reason why I've never seen it done this way.
basically unless you have some killer site thats taking a beating and needs to take performance very seriously in order to stay in the air then either way will do fine. a DB call on every request is somewhat wasteful but a low traffic site won't mind one little bit.
Opinions would be much appreciated. -- Dave M G
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php