在这里,下载 PHP 7.2 的源码,并注意在源码下面有一个 VC15 x64 的字样。
下载完的的文件为:php-7.2.20-src.zip
下载完源码进行解压,解压后的目录为:php-7.2.20-src
下载源码并不是一件复杂的事情,但是页面中有多个版本的源码可供下载,选择哪个有时也是比较纠结的问题,这里就下载 php7.2 的源码,因为我本地使用的就是 php7.2 的环境。 创建扩展
进入 php-7.2.20-src\ext 目录下,在该目录下有一个名为 ext_skel_win32.php 的文件,在命令行中执行:
1 php ext_skel_win32.php --extname=loaddll
其中,loaddll 是要创建的扩展的名称。想要成功执行该命令,需要将 PHP 的可执行程序添加到环境变量中。
执行情况如下:
λ php ext_skel_win32.php --extname=loaddll
Creating directory loaddll
FIND: Parameter format not correct
chmod: missing operand after ‘644’
Try 'chmod --help' for more information.
FIND: Parameter format not correct
chmod: missing operand after ‘755’
Try 'chmod --help' for more information.
Creating basic files: config.m4 config.w32 .gitignore loaddll.c php_loaddll.h CREDITS EXPERIMENTAL tests/001.phpt loaddll.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/loaddll/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-loaddll
5. $ make
6. $ ./sapi/cli/php -f ext/loaddll/loaddll.php
7. $ vi ext/loaddll/loaddll.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/loaddll/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
看到如上的输出提示,则说明我们创建的 PHP 扩展生成成功了。以上输出如下所示:
通过上面可以看出,我们的 PHP 扩展已经正常安装了,接下来就需要测试我们的扩展是否可以运行了。
在 PHP 源码目录下 php-7.2.20-src\ext\loaddll\ 有一个 loaddll.php 的测试文件,在命令行下进行执行该命令:
1 php loaddll.php
输出内容如下:
1 λ php loaddll.php
2 Functions available in the test extension:
3 confirm_loaddll_compiled
4
5 Congratulations! You have successfully modified ext/loaddll/config.m4. Module loaddll is now compiled into PHP.
如下图: