编译完成php.ini的配置后,我们就成功安装了一个PHP扩展。不过PHP也为我们提供了两个函数,可以在动态运行时查看扩展状态,加载php.ini中没有配置的扩展。接下来,让我们看看它们的使用。查看扩展是否已经加载echoextension_loaded("redis");一个很简单的函数,它的作用是检查一个扩展是否已经被加载。它返回一个布尔值,如果扩展已加载则为true,如果扩展未加载则为false。在PHP-FPM网页中,我们可以使用phpinfo()函数来查看当前的PHP状态和扩展相关信息。而在CLI命令行脚本中,我们可以使用php-m命令查看加载的扩展。扩展的动态加载首先我们在php.ini中关闭redis扩展的加载,同时需要开启enable_dl=1,这样我们就可以使用dl()函数来动态加载一个扩展。dl("redis");echoextension_loaded("redis");//1是的,dl()函数是用来动态加载扩展的函数。但是,它的使用有很多限制,并不是一个安全的功能。所以在PHP7中,它在php.ini中的配置enable_dl已经默认关闭了。我们也尽量不要在生产环境中使用这种方式进行扩展加载。此外,此功能仅在PHP7的CLI环境中可用。也就是说,在PHP-FPM网页环境下,这个功能是没有用的,即使php.ini中的enable_dl已经开启。扩展加载的目录是基于PHP默认的扩展目录加载的。注意文件扩展名在windows环境下是.dll。当扩展加载失败时,这个函数不仅会返回false,还会产生E_WARNING错误信息。最后,这个功能在PHP安全模式下也是不可用的。综上所述,在生产环境中,我们还是尽量不要使用动态加载扩展的能力。这可以作为我们的学习资料之一。当您不想一次在本地计算机上加载太多扩展时,可以使用它。当你需要测试一些功能,需要一些特殊的扩展时,可以考虑使用这个功能进行本地测试。.测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E5%8A%A8%E6%80%81%E6%9F%A5%E7%9C%8B%E5%8F%8A%E5%8A%A0%E8%BD%BDPHP%E6%89%A9%E5%B1%95.php参考文档:https://www.php.net/manual/zh/function.extension-loaded.phphttps://www.php.net/manual/zh/function.dl.php各媒体平台均可搜索【硬核项目经理】
