Biny简介
Biny 是腾讯开源的一款轻量级易用性强的 Web Server 框架。遵循 MVC 模式,用于快速开发现代 Web 应用程序。Biny 代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用。高性能,框架响应时间在 1ms 以内,单机 qps 轻松上 3000 。
功能介绍
支持跨库连表,条件复合筛选,查询PK缓存等;
同步异步请求分离,类的自动化加载管理;
支持Form表单验证,支持事件触发机制;
支持浏览器端调试,快速定位程序问题和性能瓶颈;
具有sql防注入,html自动防xss等特性。
目录结构
app/ 总工作目录
/app/config/ 业务配置层
/app/controller/ 路由入口Action层
/app/dao/ 数据库表实例层
/app/event/ 事件触发及定义层
/app/form/ 表单定义及验证层
/app/model/ 自定义模型层
/app/service/ 业务逻辑层
/app/template/ 页面渲染层
/config/ 框架配置层
/lib/ 系统Lib层
/lib/extends/ 自定义Lib层(替代原vendor目录,该目录下内容用户都可以根据需要自行替换删除)
/logs/ 工作日志目录
/plugins/ 插件目录
/web/ 总执行入口
/web/static/ 静态资源文件
/web/index.php 总执行文件
调用关系
Action为总路由入口,Action可调用私有对象Service业务层 和 DAO数据库层;
Service业务层 可调用私有对象DAO数据库层;
程序全局可调用lib库下系统方法,例如:TXLogger(调试组件),TXConfig(配置类),TXConst(常量类)等;
TXApp::$base为全局单例类,可全局调用;
TXApp::$base->person 为当前用户,可在/app/model/Person.php中定义;
TXApp::$base->request 为当前请求,可获取当前地址,客户端ip等;
TXApp::$base->session 为系统session,可直接获取和复制,设置过期时间;
TXApp::$base->memcache 为系统memcache,可直接获取和复制,设置过期时间;
TXApp::$base->redis 为系统redis,可直接获取和复制,设置过期时间。
示例代码:
/config/config.php
'routeRule' => array(
// test/(d+).html 的路由会自动转发到testAction中的 action_view方法
'test/<id:d+>.html' => 'test/view',
// 匹配的参数可在转发路由中动态使用
'test/<method:[w_]+>/<id:d+>.html' => 'test/<method>',
)
/app/controller/testAction.php
// test/272.html 正则匹配的内容会传入方法
public function action_view($id){
echo $id; // 272
}
// test/my_router/123.html
public function action_my_router($id){
echo $id; // 123
}
资源地址
开发者指南:http://www.billge.cc
GitHub 地址:https://github.com/Tencent/Biny
常见问题
Q: 框架跟传统PHP框架区别在哪儿,有什么优势?
A: Biny是个自由度很高的框架,不像其他框架需要配置各种路由,自动加载类,复杂的命名空间。这些在Biny中都是不需要的,按照一个简单的规则就能快速使用这些功能。从开发者的角度出发,在功能上使用非常简单。而且具有相当强的安全性。从框架层面完全屏蔽了 SQL注入和 XSS注入两大安全难题,非常适合新人使用。
Q: Biny框架的性能如何?
A: 测试机:Intel Xeon Processor E5506 (4M Cache, 2.13 GHz, 4.80 GT/s Intel QPI) 一个普通查询数据页面(50%命中缓存)QPS 能轻松达到3000以上,同比Yii,性能是Yii的2倍以上。
Q: 我想使用Biny,请问有相关说明文档吗?
A: 文档都在http://www.billge.cc中
Q: Biny框架适配PHP7吗?
A: 可以完美运行,性能提高2倍以上。
Q: Biny现在是最终版了吗,还会继续更新吗?
A: 目前版本在多个项目中已经正常使用,相对成熟。后续会针对性能和功能上都会持续更新,届时只需更新替换 lib库即可使用最新框架。
注意:本文归作者所有,未经作者允许,不得转载