PHP开发工具Highwaygo、CurlFuture、wechat-php-sdk、Z4PIDE介绍

以下为你介绍的PHP开发工具都可用在Linux系统上:Highwaygo(基于laravel的在线购物网站)、CurlFuture(PHP Curl并行轮转请求库)、wechat-php-sdk(微信公众平台 PHP 开发包)、Z4PIDE(Z4P 集成开发环境)。

1、Highwaygo(基于laravel的在线购物网站)

Highwaygo是一个基于laravel的在线购物网站。

安装方法:

1].执行composer install。

2].创建.env 然后加入:

MAIL_FROM_ADDRESS=你的邮箱地址 MAIL_FROM_NAME=你的名字

这两个键值。

3].执行php artisan migrate。

2、CurlFuture(PHP Curl并行轮转请求库)

multicurl系列方法是提高php请求后端http接口的一种途径。但是直接使用的话,存在几方面问题:

部分版本的curl扩展有bug,需要用特定的方式来调用。

网上流传的CurlRolling库都只支持前面加入,最后一并执行这种使用模式。而最理想的是随时加入,需要的时候从里面取出所需的结果,且不需等待其他请求返回。

为了提升效率,大部分库选择使用回调函数的方式来执行,对已有程序改造成本较高。

为了解决这些问题,开发了CurlFuture库,实现了并行请求,先到先取,链式执行的特性。

应用场景:

对于一些大型公司,PHP作为接口聚合层来使用,而接口通过HTTP协议给出。对于一些复杂的页面,可能需要请求几十个相互独立的接口, 如果使用并行模式,则可以极大的提升性能。

安装方法:

引入入口php文件即可:include __DIR__.'/curl_future.php';

使用方法:

/**

* 获得一个延迟执行curl的类

* @param $url 请求url地址

* @param $options = array(), 

*  header:头信息(Array), 

*  proxy_url:代理服务器地址, 

*  timeout:超时时间,可以小于1

*  post_data: string|array post数据

* @return CurlFuture\HttpFuture

*/

function curl_future($url, $options = array());

echo curl_future("http://s.newhua.com/2015/1113/304528.shtml?4", array())

->fetch();

并行请求的实例(async.php)

include __DIR__.'/curl_future.php';

$f4 = curl_future("http://s.newhua.com/2015/1113/304528.shtml?4");

$f5 = curl_future("http://s.newhua.com/2015/1113/304528.shtml?5");

echo strlen($f1->fetch());  //这个地方会并行执行

echo "\n";

echo strlen($f2->fetch());

echo "\n";

链式执行的示例(then.php)

include __DIR__.'/curl_future.php';

echo curl_future("http://s.newhua.com/2015/1113/304528.shtml")

->then(function($data){

return strlen($data);

})

->then(function($len){

return "Length: $len";

})

->fetch();

和Model/Service结合的示例(model.php)

include __DIR__.'/curl_future.php';

class BookModel{

//接口串行调用的示例,通过then函数将处理过程串联起来

static public function getTitleFuture($id){

return curl_future("http://111.202.7.252/{$id}")

->then(function($data){

return strlen($data);

})

->then(function($data){

$url = "http://111.202.7.252/{$data}";

$html = curl_future($url)->fetch();

preg_match('/title(.+?)\/title/is', $html, $matches);

return $matches[1];

});

}

//普通接口调用+后续处理的示例

static public function getContentFuture($id){

return curl_future("http://111.202.7.252/{$id}")

->then(function($data){

return substr($data, 0, 100);

});

}

}

//多个请求并行发出示例,这个地方用Model封装起来,便于和不同框架相结合

$t1 = BookModel::getTitleFuture('111');

$t2 = BookModel::getTitleFuture('222');

$t3 = BookModel::getTitleFuture('333');

$c1 = BookModel::getContentFuture('111');

$c2 = BookModel::getContentFuture('222');

$c3 = BookModel::getContentFuture('333');

//fetch函数会阻塞住,这个地方会把所有队列里面的请求发出,直到需要获取的t1的请求执行完再返回

var_dump($t1->fetch());

//由于上个fetch已经阻塞过了,下面的这个fetch很可能无需阻塞直接返回,也有可能上面的fetch没有执行完,此处阻塞住继续执行请求,直到拿到t2的数据

var_dump($t2->fetch());

var_dump($c3->fetch());

原理:

在每次fetch的时候,开始事件循环。当所需http返回后,结束循环。继续执行php逻辑。

//task_manager.php

public function fetch($ch){

$chKey = (int)$ch;

//如果两个队列里面都没有,那么退出

if(!array_key_exists($chKey, $this->runningTasks) && !array_key_exists($chKey, $this->finishedTasks) )return false;

$active = 1;

do{

//如果任务完成了,那么退出

if(array_key_exists($chKey, $this->finishedTasks))break;

//执行multiLoop,直到该任务完成

$active = $this->multiLoop();

//如果执行出错,那么停止循环

if($active === false)break;

}while(1);

return $this->finishTask($ch);

}

性能测试:

请求本机接口200次,nginx默认页面,同步、异步与file_get_contents对比。

/example/bench.php

curl_future sync:384 ms

file_get_contents:390 ms

curl_futhre async:68 ms

curl_future sync:624 ms

file_get_contents:460 ms

curl_futhre async:69 ms

curl_future sync:463 ms

file_get_contents:355 ms

curl_futhre async:70 ms

curl_future sync:447 ms

file_get_contents:409 ms

curl_futhre async:66 ms

同步方式没有file_get_contents稳定,但是异步批量方式性能提升很明显。

下载地址:https://github.com/coooold/CurlFuture

3、wechat-php-sdk(微信公众平台 PHP 开发包)

微信公众平台 PHP 开发包,细化了微信的各项接口操作。调用官方API,具有更灵活的消息分类响应方式,支持链式调用操作。

主要功能:

接入验证 (初级权限)

自动回复(文本、图片、语音、视频、音乐、图文) (初级权限)

菜单操作(查询、创建、删除) (菜单权限)

客服消息(文本、图片、语音、视频、音乐、图文) (认证权限)

二维码(创建临时、永久二维码,获取二维码URL) (服务号、认证权限)

长链接转短链接接口 (服务号、认证权限)

分组操作(查询、创建、修改、移动用户到分组) (认证权限)

网页授权(基本授权,用户信息授权) (服务号、认证权限)

用户信息(查询用户基本信息、获取关注者列表) (认证权限)

多客服功能(客服管理、获取客服记录、客服会话管理) (认证权限)

媒体文件(上传、获取) (认证权限)

高级群发 (认证权限)

模板消息(设置所属行业、添加模板、发送模板消息) (服务号、认证权限)

卡券管理(创建、修改、删除、发放、门店管理等) (认证权限)

语义理解 (服务号、认证权限)

获取微信服务器IP列表 (初级权限)

微信JSAPI授权(获取ticket、获取签名) (初级权限)

数据统计(用户、图文、消息、接口分析数据) (认证权限)

> 备注:

> 初级权限:基本权限,任何正常的公众号都有此权限

> 菜单权限:正常的服务号、认证后的订阅号拥有此权限

> 认证权限:分为订阅号、服务号认证,如前缀服务号则仅认证的服务号有此权限,否则为认证后的订阅号、服务号都有此权限

> 支付权限:仅认证后的服务号可以申请此权限

初始化动作:

$options = array(

'token'=>'tokenaccesskey', //填写你设定的key

'encodingaeskey'=>'encodingaeskey', //填写加密用的EncodingAESKey

'appid'=>'wxdk1234567890', //填写高级调用功能的app id, 请在微信开发模式后台查询

'appsecret'=>'xxxxxxxxxxxxxxxxxxx' //填写高级调用功能的密钥

);

$weObj = new Wechat($options); //创建实例对象

//TODO:调用$weObj各实例方法

下载地址:https://github.com/dodgepudding/wechat-php-sdk

4、Z4PIDE(Z4P 集成开发环境)

Z4PIDE-Z4P是zephir for php的简写。采用QT5.5开发,要求最低系统版本:windows7。

为什么开发Z4PIDE:

大家都有这样的经历,每次重装系统很多环境都需要重新配置,而且由于PHP扩展应用许多工具,所以开发的时候很难用一个工具实现开发编译。

Z4P用到的工具:

PHP开发工具Highwaygo、CurlFuture、wechat-php-sdk、Z4PIDE介绍

目前,Z4P内置的是PHP5.4.5的开发环境,将来将会把5.4.X----7所有环境都按照版本集成或者下载所有版本都集成在一起的巨无霸版本。由于集成了很多工具,并且内置了PHP核心源码,所以压缩包很大,其实IDE本身很小,这样不知道是否可以称作轻量级的IDE了。

环境版本:

编译器:VC9。

windows sdk:v7.1。

PHP SDK:php-sdk-binary-tools-20110915。

PHP源码 5.4.5。

zephir编译器:0.6。

目前已知BUG或缺少功能。

ZEP没有高亮。

缺少自动补全。

多次点击列表会弹出多个编辑框。

下载地址:https://gitee.com/xavier007/Z4PIDE

注明

以上就是PHP开发工具Highwaygo、CurlFuture、wechat-php-sdk、Z4PIDE的介绍内容,这些PHP开发工具都能使用在Linux操作系统中。

栏目相关文章