lmz / thefairlib
这个类库只能用于与Yaf框架
v3.1.2
2020-03-24 04:23 UTC
Requires
- php: >=7.2
- ext-openssl: *
- ext-pdo: *
- ext-redis: *
- aliyuncs/oss-sdk-php: ~2.0
- elasticsearch/elasticsearch: ~2.0
- endroid/qrcode: <2.0
- illuminate/database: ~6.0.0
- illuminate/events: ~6.0.0
- nmred/kafka-php: *
- paquettg/php-html-parser: ^1.7
- php-amqplib/php-amqplib: >=2.8.1
- predis/predis: ~1.1.1
Requires (Dev)
- eaglewu/swoole-ide-helper: dev-master
- dev-master
- v3.1.2
- v3.1.1
- v3.0.1
- v2.0.29
- v2.0.28
- v2.0.27
- v2.0.26
- v2.0.25
- v2.0.24
- v2.0.23
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.1.1
- v1.0.63
- v1.0.62
- v1.0.60
- v1.0.59
- v1.0.58
- v1.0.57
- v1.0.56
- v1.0.55
- v1.0.54
- v1.0.53
- v1.0.52
- v1.0.51
- v1.0.50
- v1.0.49
- v1.0.48
- v1.0.47
- v1.0.46
- v1.0.45
- v1.0.44
- v1.0.43
- v1.0.42
- v1.0.41
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-php72
This package is auto-updated.
Last update: 2024-12-24 14:48:03 UTC
README
说明,兼容php7.0+
老版本请使用:"lmz/thefairlib": "^2.0"
{
"config": {"vendor-dir": "vendor"},
"require": {
"lmz/thefairlib": "*"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
TheFairLib 是基于yaf框架,集成了一些基本的类
-
阿里云OSS,使用成本很低,非常实用,个人站点的js,css,image都可以用的
-
BigPipe 主要用于h5页面
-
DB操作使用 predis / illuminate/database
-
App的IM接入了融云
-
App的消息推送,接入个推/极光
-
消息列表使用接入rabbitMq
-
全文搜索使用solr/es
-
RPC服务器,使用swoole
-
后台或h5使用smarty模板,已升级到最新
-
验证码支持图片/短信验证码,只支持redis,短信目前只接入了云片网
-
微信营销接入有赞
-
工具库,支持汉字转拼音,能满足基本需求
阿里云OSS上传
config目录下新建AliYun.php文件,不能使用其他名称
<?php
/**
* 阿里云CDN配置文件
*
* @author mingzhil
* @mail liumingzhij26@qq.com
*/
namespace config;
class AliYun
{
/**
* 只允许修改参数,其他不能改变
*/
public $OSS = [
'OSS_ACCESS_ID' => '**********',
'OSS_ACCESS_KEY' => '************',
'OSS_ENDPOINT' => 'oss-cn-beijing.aliyuncs.com',
'OSS_TEST_BUCKET' => 'static-pub',
'ALI_LOG' => false,
'ALI_DISPLAY_LOG' => false,
'ALI_LANG' => 'zh',
];
}
Demo
$file = new TheFairLib\Aliyun\AliOSS\Upload('file', [
"host" => 'http://static.biyeyuan.com/',//CDN的域名、、
"savePath" => '/tmp',//上传文件的路径
"ossPath" => APP_NAME,//项目名称,也就是自定义阿里云目录
"maxSize" => 2000, //单位KB
"allowFiles" => [".gif", ".png", ".jpg", ".jpeg", ".bmp", ".css", ".js"]
]);
$data = $file->getFileInfo();
\Response\Response::Json($data);
验证码使用
font目录
- 只需要将字体放到font目录下,使用数字顺序命名,即可
- 默认随机字体
Demo
输出验证码
$code = new \TheFairLib\Verify\Image();
$code->type = 'code';//类型,如login,reg,bind
$code->output(1);
查看或验证
$code = new \TheFairLib\Verify\Image();
$code->type = 'code';
$code->validate($_GET['code']);
echo $code->getCode();
上传普通文件
Demo
$file = new TheFairLib\Uploader\Upload('files', [
"savePath" => '/tmp',//上传文件的路径
"maxSize" => 2000, //单位KB
"allowFiles" => [".gif", ".png", ".jpg", ".jpeg", ".bmp", ".css", ".js"]
]);
$status = $file->getFileInfo();
引入smarty模板
在yaf中的plugin目录下新建一下Tpl.php文件
<?php
use Yaf\Plugin_Abstract;
use Yaf\Request_Abstract;
use Yaf\Response_Abstract;
use Yaf\Registry;
use Yaf\Dispatcher;
class TplPlugin extends Plugin_Abstract
{
/**
* 路由结束之后触发 此时路由一定正确完成, 否则这个事件不会触发
*
* @param Request_Abstract $request
* @param Response_Abstract $response
* @return mixed|void
*/
public function routerShutdown(Request_Abstract $request, Response_Abstract $response)
{
$config = Registry::get("config")->smarty->toArray();
$config['template_dir'] = $config['template_dir'] . $request->module . '/';
$smarty = new TheFairLib\Smarty\Adapter(null, $config);
Dispatcher::getInstance()->setView($smarty);
}
}
在Bootstrap.php中挂起插件
/**
* 加载插件
* @param \Yaf\Dispatcher $dispatcher
*/
public function _initPlugin(Yaf\Dispatcher $dispatcher)
{
$dispatcher->registerPlugin(new TplPlugin());
}
发送短信验证码
config目录下新建Verify.php文件,不能使用其他名称,使用之前请将服务器加入白名单中
<?php
namespace config;
class Verify
{
/**
* 默认手机验证码提供商云片网
*
* @var string
*/
public $mobileVerify = [
'name' => 'YunPian',
];
/**
* 手机验证码提供商
*
* @var array
*/
public $mobileVerifyList = [
'YunPian',
];
public $appKey = [
'YunPian' => [
'key' => '***11e86244daa8fe53c14e5fcc14edfa1d***'
]
];
}
Demo
TheFairLib\Verify\Mobile::Instance()->sendMessage('18888888888','您的验证码是'.mt_rand(1000,9999));
返回结果
{
code: 0,
msg: "OK",
result: {
count: 1,
fee: 1,
sid: 3489475182
}
}