向PHP核心添加功能

时间:2008-12-22 04:08:01

标签: php deployment pear pecl

我有几个函数是我写的,我经常在我的服务器上使用,有没有办法将它们添加到核心,所以我不必将它们包含在外部文件中?

我正在运行PHP5

5 个答案:

答案 0 :(得分:6)

您可以将您的库添加为PEAR扩展名。然后,您可以将其添加到local PEAR repository。 Pear被添加到php.ini中的默认包含路径中。然后你可以在机器上使用“pear install myextension”。

如果这些是你在php(php扩展)中连接的C函数,那么你可以用PECL做类似的事情。

答案 1 :(得分:2)

我之前已经这样做了..这是一个相当复杂的过程,但也不是太糟糕。 zend.com上的这篇文章应该告诉你需要知道的一切:

http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/

编辑:我应该补充说,有更好的方法来实现你想要做的事情的本质。请记住,这样做会进一步混乱PHP(已经非常混乱)的命名空间。您可能最好只创建一个全局包含文件,其中包含您所需的所有最常用功能。

edit2:在重新阅读原始问题时,你说你不想这样做,但我仍然认为这可能是最好的方法。但是对于你的扩展路线,祝你好运。

答案 2 :(得分:2)

如果您希望您的功能始终可用,而不包括它,请执行以下操作:

在php文件中创建你的函数。

在你的php.ini中搜索选项" auto_prepend_file"并将您的php文件添加到该行,如下所示:auto_prepend_file =" /path/to/my_superglobal_function.php"

或者如果你没有这样的路径写:auto_prepend_file =" my_superglobal_function.php"它将在php.ini中的include_path中查找文件。

答案 3 :(得分:0)

为什么要将文件包含在您需要的文件中这么难?

我认为auto_prepend_file PHP.ini指令可以正常工作。但它并不是真的值得推荐。

答案 4 :(得分:0)

如果你得到autoload,你可以将这些函数作为My_Functions这类的静态方法。

或者,为了将其分成更多文件,您可以使用My_Functions_Math。然后,您只需要加载所需的功能。使用自动加载功能,您无需担心包含文件。

您无法自动加载命名空间函数,因此如果您想使用自动加载,则函数必须是类中的静态方法。但是你可以使用命名空间来更容易在将来替换类和/或缩短长类名。例如:

use My\Functions\Math as Math;
Math::calcThis($i);