Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 16. 3. 2016, 18:06:06
Pracuji na aplikaci která by měla pracovat s více jazyky. Aktuálně to mám uděláno tak že popisky/hlášky apod. jsou rozděleny do několika polí a pomocí funkce se zpřístupní to správné pole a popisek, to se nastaví konstantě potřebnou pro danou stránku, např. pro formulář a konstanta se pak použije v šabloně na zobrazení html kódu. Problém tohoto systému je v tom že s počtem přibývajících modulů, stránek apod. narůstá i množství* té části kódu kde se uvádí konkrétní indexy na zpřístupnění té správné hlášky. * - Množstvím myslím duplikaci. Prostě že např. getMsg(65) se opakuje ve více scriptech a člověk si přirozeně nepamatuje všechny hlášky takže pokud se rozhodnu změnit pořadí nebo přidat hlášku do pole, znamenalo by to 1) přečíslovat spoustu scriptů nebo 2) pořád otevírat soubory a porovnávat nebo hledat hlášky
Takže mě napadlo, do tříd(y) umístit konstanty, které budou odkazovat na jednotlivé hlášky. Každý člen třídy pak bude mít přiřazené číslo a odkazovat se bude např. takto: M::FORUM::POST_EXISTS ... M je třída se vzkazy, FORUM je sekce a ten zbytek je index. Pokud tedy takto nadefinuju např. 800 hlášek a rozdělím do tříd, nezpomalí to významně chod programu? |
||
Fisir Profil |
#2 · Zasláno: 16. 3. 2016, 20:33:54
Reaguji na testera:
Na tvojí původní otázku ti neumím odpovědět, ale i tak podotknu, že něco jako M::FORUM::POST_EXISTS v PHP nelze udělat. Naopak se zeptám, co tě přivedlo k tomu, řešit to takto? Proč si neuděláš jednu třídu, která bude mít na starosti repozitář s překlady, a pak budeš prostě volat jednu její funkci, přičemž ona si daný překlad vytáhne odněkud ze souboru nebo z databáze?
|
||
Joker Profil |
#3 · Zasláno: 16. 3. 2016, 22:28:37
tester:
„Pokud tedy takto nadefinuju např. 800 hlášek a rozdělím do tříd, nezpomalí to významně chod programu?“ Ne. (Resp. určitě by to šlo implementovat způsobem, který bude pomalý, ale rozumně napsané to pro 800 hlášek podle mě pomalé být nemůže.) Ale taky mi přijde lepší řešení, které popisuje Fisir. |
||
Časová prodleva: 9 let
|
0