php7.4自定义扩展的编写Windows篇
其实我们很少会用到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篇相关推荐
- 【PHP】php7.4自定义扩展的编写WINDOWS篇
标签: PHP 开发语言专区 php windows 其实我们很少会用到windows下的扩展,不过作为开发人员,在window下开发比较方便,所以我们一般的做法是架设一个phpstudy_pr ...
- PHP7 windows增加自定义扩展和编译PHP源代码
PHP7 windows增加自定义扩展和编译PHP源代码 需要用到的材料 ①确定需要编译的版本,查看PHPINFO,确定PHP版本,VC版本和PHP位数.根据PHP VC版本下载对应的Visual S ...
- windows下php7安装redis扩展
windows下php7安装redis扩展 windows下开发用的wamp集成的环境,想装个php-redis扩展. php_redis.dll下载地址:https://pecl.php.net/p ...
- php7 ext skel_基于PHP7的PHP扩展开发之一(hello word)
为什么要学PHP扩展开发?学会PHP扩展开发后,能增加你解决问题的能力.如,别人用PHP实现了一个功能.执行一次需要耗时10毫秒.而你用扩展实现了同样的功能,可能就只用1毫秒. PHP扩展的应用场景 ...
- Linux平台Makefile文件的编写基础篇和GCC参数详解
问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...
- php7.1安装mysqli扩展,centos php7 安装mysqli扩展心得
在新配服务器时发现,php无法连接到mysql.通过phpinfo发现.根本没有显示mysqli的相关配置.经过一系列研究.总结了下.: 第一步: 在phpinfo里没有mysqli配置,原因是安装p ...
- my97DatePicker 自定义扩展方法(实现备忘录)
昨天在经理安排下,提出一个需求,显示出日历,并在日历上显示特殊日期,当鼠标移动至此日期时,弹出div,显示当天具体的操作信息.在网上与园子里查找一段时间,并没有准确的demo,所以无奈只有自己研究,二 ...
- WCF自定义扩展,以实现aop!
引用地址:https://msdn.microsoft.com/zh-cn/magazine/cc163302.aspx 使用自定义行为扩展 WCF Aaron Skonnard 代码下载位置: S ...
- PIE SDK算法的自定义扩展
1.算法功能简介 算法的自定义扩展允许用户自主开发新的算法.自定义的算法必须实现PIE.SystemAlgo.BaseSystemAlgo基础类,这样才能被PIE的算法管理器调用起来. 2.算法功能实 ...
最新文章
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(三) 日期和时间
- 中华图标网--http://sinoLogo.cn
- Django 的模板语法之过滤器
- 各厂商服务器存储设备默认密码大全
- java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
- Python核心编程(第九章)--文件和输入输出
- C socket demo
- 分披萨问题_比萨疯狂问题
- 小杜机器人线下店_打通线上线下渠道 九号机器人新零售模式成型
- 什么是Python,如何安装使用Python
- unix操作系统设计高清中文
- Sequence operation3397
- 算法设计与分析(第四版)第一章课后答案
- linux 海思hi3798m_海思Hi3798M V310芯片简介
- Bootstrap3【上手教程】
- 如何搭建IPv6测试环境
- Word文档 替换功能
- uva10635 Prince and Princess LCS 变 lIS
- 华工 计算机网络 第二次 作业,华工网络教育计算机网络作业及答案
- Echart.js China.js制作中国热力图
热门文章
- ubuntu20.04抢鲜测试(包括FLASH安装)
- svn服务器配置文件添加用户后需要重启吗,linux 中 svn 服务器搭建 重启
- 进去qq群的网站,点击加群组件
- Git提交代码错了吃后悔药的几种常用办法
- 2022年3月3日,奇门遁甲起盘
- div css圆环布局,CSS圆环样式
- [附源码]计算机毕业设计Python+uniapp家庭理财产品小程序10341(程序+lw+远程部署)
- 载入的html代码中文乱码了怎么解决方法,Chrome导入html书签乱码的解决方法
- 争议不断的动力电池暗战,究竟改变了什么?
- 从剑侠世界看手游MMORPG