Задача: Нужно создать language файл размером в несколько сотен (потенциально тысяч) фраз. Сейчас рассматриваю две возмодности для этого: Первая (константы): Код (Text): <?php define('LN_TEXT_WHATEVER', 'whatever'); define('LN_TEXT_BLA_BLA_BLA', 'bla bla bla'); ... ?> Вторая (массив): Код (Text): <?php global $ln_text_array; $ln_text_array = array('whatever' => 'whatever', 'bla bla bla' => 'bla bla bla', ...); ?> Вопрос: Какая из этих возможностей более рациональна с точки зрения скорости доступа к фразам и использования памяти? Встречал разные мнения по этому вопросу. А что вы думаете?
с точки зрения использования памяти - это абсолютно безразлично. Это не есть категория качества для кода локализации.
Насколько я помню, при достаточно большом количестве языковых констант массив занимает в 1,5 раза меньше памяти чем константы. Плюс массив удобнее перебирать. Плюс иногда возникает ситуация, когда нужно подключать несколько языковых файлов. Поэтому лично я юзаю массив(который наполняется в языковых файлах) и приаттачиваю его по ссылке к шаблонизатору.