在PHP中引导所有函数

时间:2009-01-04 11:12:16

标签: php

这是一个疯狂的想法,但是有没有办法在不使用辅助函数调用函数的情况下引导php拥有的所有函数。

我的意思是在每次基本函数调用之前和之后调用一些代码或函数。

示例:

<?php
echo "Hello";
?>

但是这些函数将在echo之前和echo之后调用:

<?php
function pre_echo()
{
  do_something();
}

function post_echo()
{
  do_something_else();
}
?>

5 个答案:

答案 0 :(得分:5)

“Bootstrapping”在这里不是正确的术语 - 您想要做的是Aspect-oriented Programmingyes, it can be done in PHP。但是,它似乎需要对您通常使用PHP的方式进行重大更改。

答案 1 :(得分:1)

正如一个FYI,你的例子选择的东西实际上并不是最严格意义上的函数,echo是一种语言结构,并由PHP内部处理不同。

我认为只有两种方法可以实现你的目标:

  • 预处理您的PHP代码以进行扩充 它覆盖了函数调用
  • 或者,修改PHP内部 支持挂钩所有函数调用

答案 2 :(得分:1)

你为什么要这样做?如果您想要分析您的代码,请使用Xdebug

等分析器

答案 3 :(得分:0)

这就是为什么你编写自己的类并为那个特定情况封装你想要的功能。为什么让另一个程序员更难理解你的东西?

答案 4 :(得分:0)

你可以这样做。 你需要改变php.ini文件

指令

auto_prepend_file
auto_append_file

例如

auto_prepend_file=/home/php/run_before.php
auto_prepend_file=/home/php/run_after.php

然后

<?php echo('hi'); ?>

输出将是:

# something before
hi
# something after