windows10环境使用Zephir编写PHP7.4扩展

概念

Zephir 是一种中间语言以接近 PHP 的语法来编写代码然后转换成 PHP 扩展。

准备

在开始之前需要下载并安装好以下几样东西

安装Visual Studio 2017

后续很多命令需要在VS 2017的开发人员命令提示符中执行。

关于Visual Studio版本的说明
编译PHP 7.0+扩展 => Visual Studio 2015
编译PHP 7.2+扩展 => Visual Studio 2017
编译PHP 8.0+扩展 => Visual Studio 2019

我下载的是VS2017社区版也就是免费版下载地址
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

安装vs2017注意事项

安装时勾选使用C++的桌面开发

安装PHP7.4

下载PHP7.4TS版或NTS版均可。至于下载的是哪个版本意味着后面生成的插件也只能在该版本中使用。
下载地址http://windows.php.net/download/
本文下载的是PHP7.4 VC15 x64 Thread Safe

下载后解压至D:\php\dist目录下解压后如图

设置环境变量

设置php.ini

将D:\php\dist\php-7.4.14-Win32-vc15-x64\php.ini-development复制一份重命名为php.ini然后打开php.ini去掉;extension_dir = “ext”前面的分号同时去掉以下两行的分号

extension=fileinfo
extension=mbstring

安装PHP SDK

下载地址https://github.com/Microsoft/php-sdk-binary-tools/releases

本文下载的是2.2.0版本

下载后解压至D:\php\sdk目录下解压后如图

设置环境变量

新建一个名为PHP_SDK的环境变量值为D:\php\sdk

安装PHP Developer Pack

这里注意要跟前面的php版本一致。
下载地址https://windows.php.net/downloads/releases/
本文下载的是php-devel-pack-7.4.14-Win32-vc15-x64.zip

下载后解压至D:\php\devel-pack目录下解压后如图

设置环境变量

新建一个名为PHP_DEVPACK的环境变量值为D:\php\devel-pack

安装Zephir

在D:\php目录下新建zephir文件夹用于安装Zephir

cd D:\php\zephir
composer require phalcon/zephir:dev-master

设置环境变量

在Path中添加一个环境变量值为D:\php\zephir\vendor\bin

打开cmd输入zephir显示如下界面则说明Zephir安装成功

安装Zephir Parser扩展

注意下载的版本需要与前面的php版本一致。
下载地址https://github.com/phalcon/php-zephir-parser/releases/latest
本文下载的是zephir_parser_X64_vc15_php7.4_1.3.6-559.zip

下载并解压将php_zephir_parser.dll文件拷贝至php的扩展目录D:\php\dist\php-7.4.14-Win32-vc15-x64\ext

然后修改D:\php\dist\php-7.4.14-Win32-vc15-x64\php.ini文件在文件末尾加入

extension=zephir_parser

然后打开cmd输入php -m显示Zephir Parser则说明扩展安装成功。

创建第一个Zephir扩展

生成扩展骨架

在d:\php目录下创建extension文件夹用于存放即将要生成的扩展代码。

用管理员身份运行VS 2017的开发人员命令提示符

进入刚创建的扩展目录d:\php\extension

cd d:\php\extension

通过zephir init命令生成扩展骨架

zephir init hello

  进入D:\php\extension\hello\hello文件夹编写common.zep内容如下

namespace Hello;
class Common
{
    public static function say()
    {
        echo "hello,zephir!";
    }
}

语法跟php几乎一样唯一不同是没有开始的‹?php标记。

编译扩展

回到VS 2017的开发人员命令提示符进入php-sdk文件夹执行phpsdk-vc15-x64.bat

cd D:\php\sdk
phpsdk-vc15-x64.bat

执行后可以看到命令行交互界面前面多了一个$符号

进入扩展目录编译扩展

cd D:\php\extension\hello
zephir compile
cd ext
configure
nmake

  执行完以上命令后在D:\php\extension\hello\ext\x64\Release_TS目录就可以看到生成好的php_hello.dll文件。

测试扩展

将生成的php_hello.dll文件拷贝至D:\php\dist\php-7.4.14-Win32-vc15-x64\ext目录然后修改D:\php\dist\php-7.4.14-Win32-vc15-x64\php.ini文件在末尾添加extension=hello

然后打开cmd输入php -m显示hello则说明扩展已安装成功。

接着输入php -r “echo Hello\Common::say();”结果显示hello,zephir!。

来源:CSDN https://blog.csdn.net/jason19905/article/details/113483962

转载请注明出处:https://www.onexin.net/windows10-zephir-php7-4/

相关文章:

1、从Zephir开始编写PHP入门级扩展
https://www.onexin.net/zephir-php/

2、用 PHP 编写更好的正则表达式regex
https://www.onexin.net/php-regex/

3、PHP 版本 8.2,8.1,8.0,7.4
https://www.onexin.net/php-8_2-8_1-8_0-7_4/

4、PHP中的Liskov替换原则
https://www.onexin.net/php-liskov/

5、php实现自运行的do实例详解
https://www.onexin.net/php-do/

Leave a Reply