PHP开发工具php-kafka-consumer、PHP-Druid、PhpSpreadsheet介绍

以下为你介绍的PHP开发工具都可用在Linux系统上:php-kafka-consumer(对 php_rdkafka 的 consumer 的 API 进行一层封装)、PHP-Druid(PHP 连接 Druid.IO 驱动服务的扩展)、PhpSpreadsheet(纯 PHP 电子表格读写库)。

1、php-kafka-consumer(对 php_rdkafka 的 consumer 的 API 进行一层封装)

php-kafka-consumer 主要是对 php_rdkafka 的 consumer 的 API 进行一层封装,增加了原程序中所没有的与 zookeeper 交互的功能。在此基础上实现了 rebalance 功能以及 group 功能。经过简单的压力测试,单个进程的消费能力能达到每秒钟7.8W条。

依赖:

php_zookeeper

php_rdkafka (建议使用1.0.0版本)

librdkafka(建议使用0.9.1版本)

使用:

<?php 

include 'consumer.php';

function call_back_func($msg) {

echo "$msg->payload\n";

}

function handle_error_call_back($msg) {

echo $msg->errstr();

}

$consumer = New Consumer("localhost:2181");

$consumer->setGroupId("group-test");

$consumer->setTopic("topic-test");

$consumer->setOffsetAutoReset(Consumer::smallest);

$consumer->setErrHandler("handle_error_call_back");

try {

$consumer->start("echo_message");

}

catch(Exception $e) {

printf("error: %s\n", $e->getMessage());

}

下载地址:https://github.com/meitu/php-consumergroup

2、PHP-Druid(PHP 连接 Druid.IO 驱动服务的扩展)

这是一个为 PHP 连接查询 Druid.IO 提供的客户端驱动服务的 PHP 扩展。

安装:

Make Install PHP-Druid

$ /path/to/phpize

$ ./configure --with-php-config=/path/to/php-config

$ make && make install

PECL Install PHP-Druid

$ pecl install Druid

配置:

Druid.ini

extension=druid.so

druid.base_auth_passport = ""

druid.base_auth_user = ""

druid.debug = 1

druid.host = "http://10.0.3.46:9082/druid/v2/"

druid.tpl_path = "/data/php-druid/tpl"

druid.curl_dns_cache_timeout = 1

druid.curl_connect_timeout = 3

druid.curl_timeout = 5

Demo:

<?php

/**

* @author neeke@php.net

* Date: 16/12/21 下午8:38

*/

try {

$Druid_1 = Druid::getInstance();

$Druid_1->debugWitch(TRUE);

/**

* you can also use default host with druid.host in php.ini/druid.ini

*/

$aHosts = array("http://10.0.3.46:9082/druid/v2/", "http://10.0.3.46:9082/druid/v2/");

$Druid_1->setDruidHosts($aHosts);

/**

* demo 1

*

* use tpl build request json

*/

$Druid_1->setTplPath(__DIR__ . '/tpl');

$result_1 = $Druid_1->getDataByTpl('request_tpl_demo.json', array('@startTimeToEndTime@' => '["2016-12-10T14:06:00.000Z/2016-12-27T14:36:00.000Z"]'));

$Druid_2 = Druid::getInstance('druid_2_instance');

/**

* demo 2

*

* use full request json

*/

$result_2 = $Druid_2->getData(file_get_contents(__DIR__ . '/tpl/request_full_demo.json'));

var_dump($result_1, $result_2);

var_dump($Druid_1,$Druid_2);

} catch (Exception $e) {

var_dump($e->getCode(), $e->getMessage(), $Druid_1->getDebugInfo(), $Druid_2->getDebugInfo());

}

下载地址:https://gitee.com/neeke/PHP-Druid

3、PhpSpreadsheet(纯 PHP 电子表格读写库)

PHP开发工具php-kafka-consumer、PHP-Druid、PhpSpreadsheet介绍

注:上图是支持的文件格式。

PhpSpreadsheet-一个读取和写入电子表格文件的纯 PHP 库。允许您读取和写入不同的电子表格文件格式,如 Excel 和 LibreOffice Calc。

要求:

PHP 5.5 以上版本。

PHP 扩展 php_zip 启用(如需 PhpSpreadsheet 处理.xlsx .ods 或 .gnumeric 文件)。

PHP 扩展 php_xml 启用。

PHP 扩展 php_gd2 启用(可选,但需用到精确的列宽自动计算)。

PHPExcel vs PhpSpreadsheet:

PhpSpreadsheet是PHPExcel的下一版本,它破坏了兼容性,从而极大地提高了代码库的质量(名称空间,PSR遵从性,使用最新的PHP语言功能等)。

由于所有工作都转移到了PhpSpreadsheet上,因此将不再维护PHPExcel,PHPExcel的所有贡献,补丁和新功能应以PhpSpreadsheet master分支为目标。

下载地址:https://gitee.com/mirrors/phpspreadsheet

注明

以上就是PHP开发工具php-kafka-consumer、PHP-Druid、PhpSpreadsheet的介绍内容,这些PHP开发工具都能使用在Linux操作系统中。

栏目相关文章