кэширование этой таблицы MySQL - PullRequest
0 голосов
/ 01 марта 2012

у меня есть эта таблица:

+----+-------+-----+-------+
| id | clave | lan | texto |
+====+=======+=====+=======+
|  1 | hi    | 1   | Hello |
|  3 | hi    | 2   | Hola  |

с помощью этого метода

function get_texto_clave($clave){
    /* Checks the session language, finds and returns texto for the given clave*/

    $clave = htmlspecialchars($clave);
    $lan = detectarIdioma();
    $temporal = new texto($clave, $lan);
    if($temporal->exists()==true){
        return $temporal->get_texto();
    }else{
        return $clave;
    }
}

ИСПОЛЬЗОВАНИЕ:

допустим, мы хотим напечатать форму:

<form>
    <?php echo get_texto_clave('form_enter_login'); ?>
    <input type="text" />
    <?php echo get_texto_clave('form_enter_password'); ?>
    <input type="password" />
    <input type="submit" value="<?php echo get_texto_clave('form_enter_login'); ?>" />
</form>

Как видите, для этой простой формы мы уже выполнили 3 запроса ....

вопрос: как я могу кешировать эти результаты? Вы предлагаете другую реализацию?

1 Ответ

0 голосов
/ 01 марта 2012

Если у вас есть индекс на (клаве, локальной сети), я бы не сильно волновался. MySQL почти наверняка займет таблицу в памяти. Альтернатива, имеющая $t[lan][clave] не обязательно лучше. Но у вас всегда есть возможность с помощью SQL генерировать источник php, определяющий этот массив.

В качестве альтернативы вы могли бы рассмотреть Gettext для интернационализации, используя файл .po для каждого языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...