当前位置: 首页 > 工具软件 > Zephir > 使用案例 >

windows使用zephir开发PHP

钱德海
2023-12-01

windows软件准备

wamp集成环境,扩展安装php5.6.40 (也可以用编译安装的目录php.exe) ,教程>>>https://blog.csdn.net/u011242029/article/details/80058770

php-sdk-binary-tools-20110915.zip (http://windows.php.net/downloads/php-sdk/下载)

deps-5.6-vc11-x86.7z                  (http://windows.php.net/downloads/php-sdk/下载)

php-src-5.6.40  (纯源码)           (http://php.net/downloads.php 或 git https://github.com/php/php-src/tree/PHP-5.6.40 下载,这个版本不定自己选择)

Zephir 解析器 .dll                                  https://github.com/phalcon/php-zephir-parser/releases/tag/v1.1.1

 Composer-Setup.exe                         https://getcomposer.org/Composer-Setup.exe

Visual Studio 2012 

注意:以上软件都是32位x86的,php 是ts 安全模式的,如要要(64位x86 或 nts 版本需要下载一致版本的软件) 

第一步

安装Visual Studio 2012 (PHP5.5或PHP5.6使用这个,PHP5.6+ 用Visual Studio 2015 ),

一直点下一步等待漫长的安装

 

第二步

安装 composer 、随意建一个文件夹如php,

安装这个前需要吧wamp PHP5.6.40路径加入环境变量

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

 设置环境变量安装zephir(或者从https://github.com/phalcon/zephir 下载,注意下载zephir.bat 里面"zephir" 没使用绝对路径,需要自己修改)

C:\php\vendor\bin 
或者命令行
setx path "%path%;C:\php\vendor\bin\"

第三步

解压php-sdk-binary-tools的二进制包,

设置环境
setx php_sdk "c:\php-sdk"
setx path "%path%;c:\php-sdk\bin\"

譬如我解压到我的C:\php-sdk文件夹中,现在的目录结构如下
C:\php-sdk
    --bin
    --script
    --share
然后,这个是你已经安装完成了visual studio 2012,
打开VS2012 Native Tools Command Prompt命令行工具
#进入目录
cd C:\php-sdk
#设置环境变量
bin\phpsdk_setvars.bat
#创建常用的php-sdk目录
bin\phpsdk_buildtree.bat phpdev
如果我们打开bin\phpsdk_buildtree.bat
文件就会发现它只创建到VC9,没有VC11,
但是我们如果开发php5.5或5.6版本,
我们需要的是VC11,这时候我们就要把
C:\php-sdk\phpdev\vc9 复制一份到
C:\php-sdk\phpdev\vc11,
如果是5.6版本+ 
C:\php-sdk\phpdev\vc9 复制一份到
C:\php-sdk\phpdev\vc14, 
现在的目录结构如下:
C:\php-sdk\phpdev\
                --vc6
                --vc8
                --vc9
                --vc11
                

第四步

安装deps和PHP源码

因为我下载的deps-5.6-vc11-x86.7z,
所以我要解压deps-5.6-vc11-x86.7z 到C:\php-sdk\phpdev\vc11\x86\deps文件夹下覆盖,
里边都是我们需要的库文件和一些必要的工具等等。

然后,将我们下载的php-src-5.6.40.zip
解压到C:\php-sdk\phpdev\vc11\x86\php-5.6.40文件夹中。

下载安装 php_zephir_parser.dll,下载已编译好的ts 版本 zephir_parser_x86_vc11_php5.5_1.1.1-268.zip

也可以自己编译安装 

在php配置文件php.ini

extension=php_zephir_parser.dll

使用命令行
php -m
查看扩展Zephir Parser 是否安装成功

第五步

编写源代码,编译

命令行,创建一个项目

进入任意目录
zephir init widuu

进入 widuu/widuu 文件夹,建立一个 service.zep 文件。

编写源代码,如下,就是上一篇文章的例子

namespace Widuu;

class Service{

    protected _service;

    public  function _set(string name,object obj) -> int{
        if (typeof obj != "object") {
            throw new \Exception("type error!!");
        }
        let this->_service[name] = obj;
        return 1;
    } 

    public  function _get(string name){
        if (!isset this->_service[name]) {
            return 0;
        }
        return this->_service[name];
    }

    public  function _del(string name){
        let this->_service[name] = null;
    }

}

 编译安装

cd ..  # 这里指,我们用zephir 创建的 widuu 目录
zephir generate 

 将 ext 文件夹,复制到开发环境中的扩展目录(C:\php-sdk\phpdev\vc11\x86\php-5.6.40\ext 也是存扩展源码的位置),并重新命名为 widuu。

回到VS2012 Native Tools Command Prompt 命令行

#进入php源目录文件夹
C:\php-sdk\phpdev\vc11\x86\php-5.6.40\
buildconf --force

#查看带的扩展和编译命令
configure --help

configure --disable-all --enable-cli --enable-widuu=shared 

#然后,你会看到Type 'nmake' to build PHP,然后编译.
#编译nts模式,需要加参–disable-zts

nmake

编译完成后,我们就在  C:\php-sdk\phpdev\vc11\x86\php-5.6.40\Release_TS 目录中看到了 php_widuu.dll 动态链接库了,然后放到我们的 php 的 ext 文件夹中,并在 php.ini 中加入

extension = php_widuu.dll

第六步

重启你的环境,测试,用上一篇文章的代码测试,如下

<?php

class string{

    public function test(){
        echo "hello word";
    }
}

$service = new Widuu\Service();
// 故意写错类型
try{
    $service->_set('string',"222");
}catch(Exception $e){
    echo $e->getMessage();
}
// 注册服务
$service->_set('string',new string());
// 获取对象
$s = $service->_get('string');
// 测试
$s->test();      

测试成功

type error! hello word

注:谢谢http://www.widuu.com/archives/12/1150.html 分享。

 类似资料: