2

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

我正在运行 PHP5

4

5 回答 5

6

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

如果这些是您在 php(php 扩展)中使用的 C 函数,那么您可以使用PECL执行类似的操作。

于 2008-12-22T04:11:19.250 回答
2

我以前做过这个。这是一个相当复杂的过程,但还不错。zend.com 上的这篇文章应该会告诉您您需要知道的一切:

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

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

编辑2:重读你原来的问题后,你说你不想那样做,但我仍然认为这可能是最好的方法。但祝你在扩展路线上好运。

于 2008-12-22T04:11:28.517 回答
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 中查找文件。

于 2015-06-15T08:26:04.863 回答
0

为什么在您需要的地方包含文件如此困难?

我想auto_prepend_file PHP.ini 指令可以工作。但是真的不推荐。

于 2008-12-22T04:46:10.507 回答
0

如果你有autoload,你可以将函数作为类的静态方法移动,比如 My_Functions。

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

你不能自动加载命名空间函数,所以如果你想使用自动加载函数必须是类中的静态方法。但是您可以使用命名空间来更轻松地在将来替换类和/或缩短长类名。例子:

use My\Functions\Math as Math;
Math::calcThis($i);
于 2008-12-22T07:07:54.980 回答