【发布时间】:2020-03-22 02:31:21
【问题描述】:
我为 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() 函数,但仅在第一次调用时。
有什么想法吗?
【问题讨论】:
-
这只是一个字符串比较,它几乎不会改变性能
-
你的问题没有意义。如果 if 语句从未运行过,那么你怎么知道你是要调用 __ 还是 trans?
-
如果您不想每次都检查源代码,请将有效的函数名称存储在缓存、会话等中,或者创建一个类并使用 __construct。但是,除非您进行数百万次翻译,否则任何解决方案都不会为您带来任何性能。
标签: php laravel function laravel-5 lumen