2008-12-22 57 views
2

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

我运行PHP5

+0

你可以更具体。你的意思是用PHP编写的函数或用C语言编写的函数(PHP扩展)? – grepsedawk 2008-12-22 04:14:25

+0

是用PHP编写的 – UnkwnTech 2008-12-22 04:32:31

+0

是指PHP 5.2.x还是PHP 5.3? – Tom 2008-12-22 12:55:07

回答

6

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

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

+0

只是为了阐述PEAR--你不必将你的代码提交给PEAR,但你仍然可以创建自己的PEAR风格的包。你甚至可以设置一个私人频道进行分配。 – Till 2008-12-22 12:37:43

2

我以前做过这个..这是一个相当复杂的过程,但不是太糟糕。本文在zend.com应该告诉你一切你需要知道:

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

编辑:我要补充一点,有更好的方法来达到你想要做什么的本质。请记住,这样做会使PHP(已经非常混乱)的命名空间更加混乱。制作一个全球包含文件可能会更好,该文件具有您所需的所有最常用功能。

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

0

为什么在你需要的地方包含文件这么难?我想PHP.ini指令可以工作。但它不是真的推荐。

0

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

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

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

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

如果你希望你的功能始终可用,而不包括它,这样做:

在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中查找文件。