我想知道扩展MAMP PHP核心本身的最佳方式是什么,以便全局可以使用自定义函数而无需导入库。
我想要做的一个很好的例子是在我所有的本地项目中都有一个dd
函数(var_dump()
+ die()
,灵感来自Laravel)。
这些方法只能在我的本地环境(安装我的MAMP版本)上使用,并且仅用于调试目的,因此不必担心在终端服务器上破坏PHP功能。
感谢您的帮助。
答案 0 :(得分:1)
有两种方法:
将模块添加到php,像所有其他模块一样加载。数据库连接器,数学库,翻译功能等模块。所有这些功能都是不的一部分" php核心"。核心只实现语言本身。您可以使用函数phpinfo()
在PHP设置中查看当前加载的模块及其配置。
实现模块是可能的,你需要知道c或c ++ langauge。一个有趣的项目,你会学到很多东西。但这对你正在寻找的东西来说也是一个巨大的开销。
在正常项目文件夹之外的某个普通php文件中实现您的功能。然后在http服务器php配置中注册该文件为"为每个执行的脚本加载#34;。这正是" auto_prepend_file"功能呢。这样,您可以轻松添加本地系统上所有脚本中始终可用的全局功能。
相信我,你想尝试第二种方法: - )
答案 1 :(得分:1)
如果不编译自己的PHP扩展,可能无法创建一个自动可用于框中所有脚本而不导入任何内容的全局函数。
您可以创建一个包含dd
函数定义的“tools.php”文件,并在应用程序中执行require "tools.php"
之类的调用。将tools.php
的开发版本放在仅在开发服务器上可用的目录中,在include_path中具有最高优先级的路径中。
然后在代码库中创建一个镜像tools.php
,include_path中的优先级较低,只包含开发方法的存根。因此,在开发框中,将包含tools.php的开发版本。但在生产方面,将包括tools.php的生产版本。