将自定义 PHP 函数添加到 MAMP


Add a custom PHP function to MAMP

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

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

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

感谢您的帮助。

有两种方法可以做到这一点:

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

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

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

如果不编译自己的 PHP 扩展,创建一个自动可用于盒子上所有脚本的全局函数而不导入任何内容可能是不可能的。

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

然后在代码库中创建一个镜像tools.php,include_path中的优先级较低,该镜像仅包含开发方法的存根。因此,在开发框中,将包含工具的开发版本.php。但在生产中,将包括工具的生产版本.php。