包括在PHP配置文件
有倒闭的能力代码是相当新的,所以我不知道是否有一个“标准的方式”来做到这一点还没有,但...包括在PHP配置文件
有没有好办法在PHP配置文件中包含一个函数?现在,我正在使用的项目使用JSON作为配置文件,但是我看不到任何包含PHP函数的方法。
我希望能够做这样的事情(使用JSON语法)
的conf文件:
{
myFunc: function($arg) {
return $arg . ' is an argument';
}
}
应用:
json_with_func_literal_decode(...);
它不一定要使用JSON语法,尽管那会是b很好。只要合理,速度并不是一个问题。我想避免使用eval()
,这是解决这个问题的明显方法。
你可以简单地使用PHP文件,而无需解析JSON/YAML的配置,像这样的开销:
<?php
return array(
'foo' => 'bar',
'myFunc' => function()
{
// ...
}
);
和检索像这样配置:
$config = include 'config.php';
您是否可以解释“返回”是如何工作的?但除此之外,这真的很酷。 – 2012-02-19 17:30:32
“如果当前脚本文件是include()ed,则返回[],那么给予return()的值将作为include()调用的值返回” - http://php.net/manual /en/function.return.php – Vitamin 2012-02-19 17:34:09
我这个纠结问题和**恕我直言**封闭是最好的东西,离开了实际的配置文件。实际上,我认为你的配置指令应该只包含原始字符串/ ints/float。使用lambda等新的语言功能来完成简单的任务是很时髦的,但是如果你坚持基本的(例如字符串类名),那么像你的应用程序配置这样的东西将更具可移植性(和可读性)。当您使用只能通过PHP配置文件实现的功能时,您将无法将您的指令存储在YAML/XML/JSON等中。 – rdlowrey 2012-02-19 17:57:50