其实我们很少会用到windows下的扩展,不过作为开发人员,在window下开发比较方便,所以我们一般的做法是架设一个phpstudy_pro的环境,然后开发好以后再上传,这里就涉及扩展问题,不急,我们先做准备工作

一、工具包的准备

php7.4和之前的版本不一样,我们必须下载全新的工具包
1、php-sdk-binary-tools
这个从7.2以后就不能使用以前官网的了,我们到GIT下个最新的,下载地址:
https://github.com/Microsoft/php-sdk-binary-tools
作为程序员你不可能连git账号都没有吧,登录以后下载并解压备用

2、准备php源码包,这里要选择正确的版本哟,登录php.net下载
https://windows.php.net/download#php-7.4

下载完了以后解压缩备用

二、编译环境的准备

这可是个麻烦事,php7.4用的是VC15也就是你要安装vs2017
Visual C++ 15.0 (Visual Studio 2017) for PHP 7.2+

安装 Visual Studio(IDE)
到官网下载 Visual Studio Install,现在官网基本是2019了,2017估计你要找一下,一般都放在百度网盘,如果实在没有可以问我要,我就不专门分享了

安装的时候如果出错,把你之前的.net版本全部从低到高安装一次一般就解决了

三、开始调试环境

把php-sdk-binary-tools解压到D:\php7.4.10下

我们启动cmd,并进入这个目录

运行图中的文件,注意,这里运行哪个bat批处理文件是看你的系统的,不过现在一般都是64位了,32位请改成X86


运行后会发生变化,一直到出现$符号,然后运行 phpsdk_buildtree 批处理脚本,该脚本将创建所需的目录结构

phpsdk_buildtree phpdev


程序会自动创建phpdev目录,以及根据你的系统和VC版本初始化并进入,我们可以看一下

这个时候我们创建一个phpsrc的目录,并把我们开始下载的源码文件放进去,这个目录是和deps平级的

四、扩展编写

1、创建扩展目录

cd phpsrc\ext

创建扩展框架

php ext_skel.php --ext lzpay

这些操作和在linux下其实是一样的

这个时候我们可以看一下,在ext目录已经有了新的扩展框架

2、编写扩展
关于扩展的编写我就不多讲了,不懂的可以参考我的另一篇文章
https://blog.csdn.net/weixin_48803304/article/details/108637733
如果你有过类似的操作,直接COPY过来也行

五、扩展编译

扩展写好了,接下来就是编译了,退回到phpsrc目录,执行 buildconf

buildconf


按系统提示,运行configure --help查看

configure --help


我们关键是看有没有我们的扩展支持

找到了,说明是成功的,那接下来就是把扩展编译为.dll文件,这里有个坑要注意,一般人都不知道,那就是我们使用configure进行编译时,系统默认php是ts模式的,但我们一般使用的是nts,还好有提供这样的参数,那就是–disable-zts,我们可以看一下,就在刚才的configure --help里

这就好办了,接着开工,开始编译配置

configure --disable-all --enable-cli --enable-lzpay=shared --disable-zts


成功以后会有提示,我们可以看到正是我们想要的,No Thread Safety,下面按他的提示,执行nmake编译,这里可能需要几分钟时间。
编译成功后,会在phpsrc目录下生成个X64目录

进入目录,可以看到文件全部生成了

将php_lzpay.dll复制到你的php目录下的ext目录,并在php.ini里加上,就重启动后就可以正常运行了。

php7.4自定义扩展的编写Windows篇相关推荐

  1. 【PHP】php7.4自定义扩展的编写WINDOWS篇

    标签: PHP  开发语言专区  php  windows 其实我们很少会用到windows下的扩展,不过作为开发人员,在window下开发比较方便,所以我们一般的做法是架设一个phpstudy_pr ...

  2. PHP7 windows增加自定义扩展和编译PHP源代码

    PHP7 windows增加自定义扩展和编译PHP源代码 需要用到的材料 ①确定需要编译的版本,查看PHPINFO,确定PHP版本,VC版本和PHP位数.根据PHP VC版本下载对应的Visual S ...

  3. windows下php7安装redis扩展

    windows下php7安装redis扩展 windows下开发用的wamp集成的环境,想装个php-redis扩展. php_redis.dll下载地址:https://pecl.php.net/p ...

  4. php7 ext skel_基于PHP7的PHP扩展开发之一(hello word)

    为什么要学PHP扩展开发?学会PHP扩展开发后,能增加你解决问题的能力.如,别人用PHP实现了一个功能.执行一次需要耗时10毫秒.而你用扩展实现了同样的功能,可能就只用1毫秒. PHP扩展的应用场景 ...

  5. Linux平台Makefile文件的编写基础篇和GCC参数详解

    问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...

  6. php7.1安装mysqli扩展,centos php7 安装mysqli扩展心得

    在新配服务器时发现,php无法连接到mysql.通过phpinfo发现.根本没有显示mysqli的相关配置.经过一系列研究.总结了下.: 第一步: 在phpinfo里没有mysqli配置,原因是安装p ...

  7. my97DatePicker 自定义扩展方法(实现备忘录)

    昨天在经理安排下,提出一个需求,显示出日历,并在日历上显示特殊日期,当鼠标移动至此日期时,弹出div,显示当天具体的操作信息.在网上与园子里查找一段时间,并没有准确的demo,所以无奈只有自己研究,二 ...

  8. WCF自定义扩展,以实现aop!

    引用地址:https://msdn.microsoft.com/zh-cn/magazine/cc163302.aspx  使用自定义行为扩展 WCF Aaron Skonnard 代码下载位置: S ...

  9. PIE SDK算法的自定义扩展

    1.算法功能简介 算法的自定义扩展允许用户自主开发新的算法.自定义的算法必须实现PIE.SystemAlgo.BaseSystemAlgo基础类,这样才能被PIE的算法管理器调用起来. 2.算法功能实 ...

最新文章

  1. Python学习笔记.OS学习笔记 OS操作系统(operating system)(三) 日期和时间
  2. 中华图标网--http://sinoLogo.cn
  3. Django 的模板语法之过滤器
  4. 各厂商服务器存储设备默认密码大全
  5. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
  6. Python核心编程(第九章)--文件和输入输出
  7. C socket demo
  8. 分披萨问题_比萨疯狂问题
  9. 小杜机器人线下店_打通线上线下渠道 九号机器人新零售模式成型
  10. 什么是Python,如何安装使用Python
  11. unix操作系统设计高清中文
  12. Sequence operation3397
  13. 算法设计与分析(第四版)第一章课后答案
  14. linux 海思hi3798m_海思Hi3798M V310芯片简介
  15. Bootstrap3【上手教程】
  16. 如何搭建IPv6测试环境
  17. Word文档 替换功能
  18. uva10635 Prince and Princess LCS 变 lIS
  19. 华工 计算机网络 第二次 作业,华工网络教育计算机网络作业及答案
  20. Echart.js China.js制作中国热力图

热门文章

  1. ubuntu20.04抢鲜测试(包括FLASH安装)
  2. svn服务器配置文件添加用户后需要重启吗,linux 中 svn 服务器搭建 重启
  3. 进去qq群的网站,点击加群组件
  4. Git提交代码错了吃后悔药的几种常用办法
  5. 2022年3月3日,奇门遁甲起盘
  6. div css圆环布局,CSS圆环样式
  7. [附源码]计算机毕业设计Python+uniapp家庭理财产品小程序10341(程序+lw+远程部署)
  8. 载入的html代码中文乱码了怎么解决方法,Chrome导入html书签乱码的解决方法
  9. 争议不断的动力电池暗战,究竟改变了什么?
  10. 从剑侠世界看手游MMORPG