Biny——轻量易用的 Web Server 框架

jk 1年前 ⋅ 7572 阅读

源于:今日头条(查看原文)

Biny简介

Biny 是腾讯开源的一款轻量级易用性强的 Web Server 框架。遵循 MVC 模式,用于快速开发现代 Web 应用程序。Biny 代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用。高性能,框架响应时间在 1ms 以内,单机 qps 轻松上 3000 。

功能介绍

支持跨库连表,条件复合筛选,查询PK缓存等;

同步异步请求分离,类的自动化加载管理;

支持Form表单验证,支持事件触发机制;

支持浏览器端调试,快速定位程序问题和性能瓶颈;

具有sql防注入,html自动防xss等特性。

目录结构

Biny——轻量易用的 Web Server 框架

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库即可使用最新框架。

Biny会取代Yli吗 (单选)
 
0
0%
 
 
0
0%
不会
 

全部评论: 0

    我有话说: