PHP字符串文本文件…良好实践?

PHP字符串文本文件…良好实践?,php,string,Php,String,我一直在尝试为PHP创建一个字符串文本文件,这样我就可以将所有字符串保存在一个文件中 我想知道这样做是否是一种良好的做法: class Literals { const String1 = "Hello"; const String2 = "World!"; //... (up to 100+ literals)... } <h1><?php localize("Homepage","String for the homepage") ?><

我一直在尝试为PHP创建一个字符串文本文件,这样我就可以将所有字符串保存在一个文件中

我想知道这样做是否是一种良好的做法:

class Literals
{
    const String1 = "Hello";
    const String2 = "World!";
    //... (up to 100+ literals)...
}
<h1><?php localize("Homepage","String for the homepage") ?></h1>
在我的代码中,我可以这样称呼它:

$hello = Literals::String1;

这是一种好的做法吗?

这取决于您将如何处理字符串。如果你想向用户展示它们,那么当然,这是一种简单的国际化方法,尽管如果你想做很多事情,你会想看一些更高级的东西。如果您只是想将它们用于关联数组键、数据库列名或其他内部内容,那么不,只需将它们保持在内联状态。

希望您没有真正将它们称为String1…StringN:)

如果对于本地化,我个人更喜欢这个(苹果使用的):

在代码中,请使用以下内容:

class Literals
{
    const String1 = "Hello";
    const String2 = "World!";
    //... (up to 100+ literals)...
}
<h1><?php localize("Homepage","String for the homepage") ?></h1>
然后,您可以使用解析器查找所有字符串并创建引用转换:

$strings = array(
 /** String for the homepage */
 'Homepage' => 'Homepage'
);
这样做的好处是,主语言版本将始终有效,并且可以在需要时添加其他翻译。
它的缺点是需要一个解析器来查找所有字符串。

这与普通的旧文本常量没有太大区别,只是语法更麻烦。以后翻译这些字符串的目的是什么?(如果是这样的话:避免。使用gettext或任何没有助记符字符串ID的解决方案。)我也做过类似的事情,但总是调用较短的函数名,因为我厌倦了键入它。例如l($key,$help='');如果一个键丢失了,有办法强迫它显示错误,而不是总是默认为键本身,这也是很好的,因为有时一个小的打字错误会导致文本无法翻译,而且发现错误也不是那么容易