Файл строковых литералов PHP ... хорошая практика? - PullRequest
3 голосов
/ 02 мая 2011

Я пытался создать файл строковых литералов для PHP, чтобы я мог хранить все свои строки в одном файле.

Мне было интересно, будет ли хорошей практикой делать что-то вроде:

class Literals
{
    const String1 = "Hello";
    const String2 = "World!";
    //... (up to 100+ literals)...
}

А потом где-нибудь в моем коде я мог бы назвать это как:

$hello = Literals::String1;

Это хорошая практика?

Ответы [ 2 ]

3 голосов
/ 02 мая 2011

Это зависит от того, что вы собираетесь делать со строками.Если вы собираетесь показывать их пользователю, то, конечно же, это простой способ интернационализации, хотя вам захочется взглянуть на что-то более продвинутое, если вы собираетесь многое сделать.Если вы просто собираетесь использовать их для ключей ассоциативных массивов, имен столбцов базы данных или других внутренних вещей, то нет, просто держите их встроенными.

1 голос
/ 02 мая 2011

Надеюсь, вы на самом деле не называли их String1 ... StringN:)

Если бы для локализации я лично предпочел бы этот (используемый Apple):

В коде используйте что-то вроде:

<h1><?php localize("Homepage","String for the homepage") ?></h1>

.

function localize($key,$help='') {
   //do a lookup of the key and if not found use the key itself
}

Затем вы можете использовать парсер, чтобы найти все строки и создать справочный перевод:

$strings = array(
 /** String for the homepage */
 'Homepage' => 'Homepage'
);

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

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