[我为Laravel编写了一个自定义转换函数,该函数首先检查配置变量以查看是否使用Laravel的默认__()
函数或我的自定义trans()
函数。
这是我的职能:
function t($key, $replace = [], $locale = null)
{
$source = Config::get('translate.source');
if ($source == 'database') {
return trans($key, $replace, $locale);
} else {
return __($key, $replace, $locale);
}
}
但是,出于速度目的,我不希望if
条件运行达到我调用t()
函数的时间,而只在第一次调用时才出现。
有什么想法吗?
您想在类中设置一个变量并引用它。因此,创建一个变量databaseSource:
private $databaseSource = false;
然后您需要一个将更改布尔值的方法:
function updateSource()
{
$source = Config::get('translate.source');
if ($source == 'database') {
$this->databaseSource = true;
}
$this->databaseSource = false;
}
然后您可以通过访问变量来一遍又一遍地使用此功能,而不是每次需要时都获取源。
例如if ($databaseSource) { ... }