更多驱动

加解密

驱动类型

驱动 描述
Openssl 基于php openssl扩展
Sodium 基于php libsodium扩展

配置示例

return [
'openssl' => [
'driver' => 'openssl',
// 设置加密key
'key' => 'your_key',
// 设置加密iv
//'iv' => 'your_iv',
// 加密算法
'method' => 'AES-128-CBC' //默认
/*(可选配置)默认为空
* 设置加密值的序列化和反序列化处理器
* 如果缓存值没有数组等复合类型只有字符串等,也可以不设置此项
*/
//'serializer' => ['jsonencode', 'jsondecode']
],
'sodium' => [
'driver' => 'sodium',
// 设置加密key
'key' => 'your_key',
// 设置加密nonce
//'nonce' => 'your_nonce',
//'serializer' => ['jsonencode', 'jsondecode']
]
];

使用示例

//加密
$crypt->encrypt('hello world');
//解密
$crypt->decrypt('ia3E14cmVxkJhhP0YWPBvA==');

IP定位

驱动类型

驱动 描述
Image 使用gregwar/captcha包
Recaptcha google recaptcha
Geetest 极验验证

配置示例

return [
'baidu' => [
'driver' => 'baidu',
// 申请的 acckey
'acckey' => 'your_acckey'
],
'ipip' => [
'driver' => 'ipip',
// IP数据库文件路径,本地数据库与在线接口二者同一实例只能使用其一
'database' => APP_DIR.'resource/ipdata/17monipdb.dat',
// 申请的在线接口付费账户token
'token' => 'your_token'
],
'maxmind' => [
'driver' => 'maxmind',
// IP数据库文件路径,
'database' => APP_DIR.'resource/ipdata/GeoLite2-Country.mmdb',
// 申请的在线接口付费账户acckey
'acckey' => 'your_acckey',
// 申请的在线接口付费账户seckey
'seckey' => 'your_seckey',
// (可选配置)接口类型
'apitype' => 'country',
],
];

使用示例

$geoip->locate('8.8.8.8');

验证码

驱动类型

驱动 描述
Image 使用gregwar/captcha包
Recaptcha google recaptcha
Geetest 极验验证

配置示例

return [
'image' => [
'driver' => 'image',
// 验证码图片src
'src' => '/captcha.php',
// 提交表单post name,用来验证信息
'name' => 'image-captcha' //默认
],
'recaptcha' => [
'driver' => 'recaptcha',
// 帐号 sitekey
'acckey' => 'your_acckey',
// 帐号 secret key
'seckey' => 'your_seckey',
],
'geetest' => [
'driver' => 'geetest',
// 帐号 captchaid
'acckey' => 'your_acckey',
// 帐号 secret key
'seckey' => 'your_seckey',
// script 脚本访问地址
'script' => 'https://static.geetest.com/static/tools/gt.js' //默认
],
];

使用示例

$captcha->verify();

搜索

驱动类型

驱动 描述
Elastic 基于Elastic rest接口 (待完善)

配置示例

return [
'elastic' => [
'driver' => 'elastic',
'host' => '127.0.0.1'
]
];

使用示例

// 使用id获取一条数据
$search->index->get($id);
// 使用elastic原生query语法搜索
$search->index->search($query);
// 更新设置指定id数据
$search->index->put($id, $data);
// 添加索引数据
$search->index->index($data);
// 更新数据,使用query语法
$search->index->update($query, $data);
// 使用query语法删除
$search->index->delete($query);

非关系数据库

驱动类型

驱动 描述
Cassandra 使用datastax扩展(坑)
Mongo 使用MongoDB扩展(待完善)
Hbase 使用Thrift Rpc客户端(坑)

配置示例

return [
'mongo' => [
'driver' => 'mongo',
// 服务器uri
'uri' => 'mongodb://127.0.0.1',
// 数据库名
'dbname' => 'test'
],
'hbase' => [
'driver' => 'hbase',
// 服务器地址
'host' => '127.0.0.1',
// 服务器端口
'port' => 9090,
// 服务scheme文件(thrift)
'service_schemes' => [
'prefix' => [
'Hbase' => APP_DIR.'scheme/thrift/Hbase/'
],
'files' => [
APP_DIR.'scheme/thrift/Hbase/Types'
]
]
],
];

使用示例

// mongodb
// 使用id获取一条数据
$mongo->db->collection->get($id);
// 查找数据,使用mongodb原生filter options语法
$mongo->db->collection->find($filter, $options);
// 获取数据记录数
$mongo->db->collection->count($filter, $options);
// 插入数据
$mongo->db->collection->insert($data);
// 更新数据
$mongo->db->collection->update($data, $filter, $options);
// 更新指定id数据
$mongo->db->collection->upsert($id, $data);
// 删除
$mongo->db->collection->delete($filter, $options);

队列

驱动类型

驱动 描述
Redis 使用redis list类型实现简单队列(坑)
Amqp 基于Amqp协议RabbitMQ服务(坑)
Beanstalkd pda/pheanstalk包(坑)
Kafka php-rdkafka扩展(坑)

配置示例

return [
'redis' => [
'driver' => 'redis',
//'serialize' => '',
//'unserialize' => '',
'host' => '127.0.0.1',
//'port' => '',
'database' => 9
],
'beanstalkd' => [
'driver' => 'beanstalkd',
//'serialize' => '',
//'unserialize' => '',
'host' => '127.0.0.1',
//'port' => '',
],
'amqp' => [
'driver' => 'amqp',
//'serialize' => '',
//'unserialize' => '',
'host' => '127.0.0.1',
'port' => '5672',
'vhost' => '/',
'login' => 'guest',
'password' => 'guest'
],
'kafka' => [
'driver' => 'kafka',
//'serialize' => '',
//'unserialize' => '',
'hosts' => '127.0.0.1',
'port' => '9092',
],
];

使用示例

// 生产者推送一条信息
$queue->producer($job)->push($message);
// 消费者拉取一条信息
$queue->consumer($job)->pull();