向 MAMP 添加自定义 PHP 函数

Add a custom PHP function to MAMP

我想知道扩展 MAMP PHP 核心本身的最佳方式是什么,这样自定义函数将在全球范围内可用,而无需导入库。

我想做的一个很好的例子是有一个 dd 函数(即 var_dump() + die(),灵感来自 Laravel)我的本地项目。

这些方法只需要在我的本地环境(安装了我的 MAMP 版本的地方)上可用并且仅用于调试目的,因此不用担心会破坏终端服务器上的 PHP 功能。

感谢您的帮助。

有两种方法:

  1. 向 php 添加一个模块,它像所有其他模块一样加载。数据库连接器、数学库、翻译函数等模块。所有这些功能都是 而不是 "the php core" 的一部分。核心仅实现语言本身。您可以使用函数 phpinfo() 在 php 设置中查看当前加载了哪些模块及其配置。 实现模块是可能的,为此您需要了解 c 或 c++ 语言。一个有趣的项目,你会学到很多东西。但这对于您正在寻找的东西来说也是一个巨大的开销。

  2. 在普通项目文件夹之外的某个地方的普通 php 文件中实现您的功能。然后在您的 http 服务器 php 配置中将该文件注册为 "to be loaded for every executed script"。这正是 "auto_prepend_file" 功能的作用。这样您就可以轻松地添加全局函数,该函数在您本地系统的所有脚本中始终可用。

相信我,您想试试第二种方法:-)

如果不将您自己的扩展编译为 PHP,创建一个全局函数自动供所有脚本使用而无需导入任何内容可能是不可能的。

您可以创建一个类似 "tools.php" 的文件,其中包含 dd 函数定义,然后在您的应用程序中执行类似 require "tools.php" 的调用。将 tools.php 的开发版本放在仅在开发服务器上可用的目录中,在 include_path 中优先级最高的路径中。

然后在代码库中创建一个镜像 tools.php,在 include_path 中具有较低的优先级,它只包含您的开发方法的存根。因此,在开发盒上,将包含 tools.php 的开发版本。但在生产中,tools.php 的生产版本将被包括在内。