我有一个配置文件,除其他外,它定义了一大堆值和callables。我正在编写一个需要更新此文件中某些定义的开发工具。我无法想出一种方法来做到这一点,它不仅仅是读取文件并在文件中的注释定义的某个点上写我的字符串。
想象一下,我的文件如下所示:
<?php
$things = [
'a_thing' => 'some value',
'callable_thing' => function() {
return SomeClass();
}
// END THINGS
];
我想按字母顺序将新数组键插入此数组(其值可能是任何有效选项)。这有可能,使用反射可能吗?第二好的方法是将特殊格式的评论(即&#34; // END THINGS
&#34;评论)作为&#34;目标&#34;并且在它之前插入,但我不能帮助,但觉得它非常hacky,并且不满足字母顺序要求。
我意识到自我变异代码的含义。这是一个开发人员工具,只能在本地用于在设置新项目时自动执行常见的文件 - >创建 - >更新任务。
答案 0 :(得分:1)
您可以使用var_export()
函数以可评估的方式打印变量的值。因此,您将使用include($filename);
加载文件,并修改$things
的内容。然后,您可以使用以下命令更新文件:
$contents = '$things = ' . var_export($things, true) . ';';
file_put_contents($filename, $contents);