中国领先的IT技术网站
|
|

Biny —— 腾讯开源的超轻量级PHP框架

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

作者:腾讯来源:开源中国|2017-11-07 09:01

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


Biny 是腾讯开源的一款超轻量级 PHP 框架。

Biny 是腾讯开源的一款超轻量级 PHP 框架。遵循 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/vendor/ 自定义系统Lib层
  • /logs/ 工作日志目录
  • /plugins/ 插件目录
  • /web/ 总执行入口
  • /web/static/ 静态资源文件
  • /web/index.php 总执行文件  

调用关系

Action为总路由入口,Action可调用私有对象Service业务层 和 DAO数据库层

Service业务层 可调用私有对象DAO数据库层

程序全局可调用lib库下系统方法,例如:TXLogger(调试组件)

TXApp::$base为全局单例类,可全局调用

TXApp::$base->request 为当前请求,可获取当前地址,客户端ip等

TXApp::$base->session 为系统session,可直接获取和复制,设置过期时间

TXApp::$base->memcache 为系统memcache,可直接获取和复制,设置过期时间

TXApp::$base->redis 为系统redis,可直接获取和复制,设置过期时间

用户可以在/app/model/下自定义model数据类,通过TXApp::$model获取,例如:

TXApp::$model->person 为当前用户,可在/app/model/person.php中定义

环境配置

PHP版本必须在5.5以上,包含5.5

如果需要用到数据库,则需要安装并启用mysqli扩展

php.ini配置中则需要把short_open_tag打开

/config/autoload.php 为自动加载配置类,必须具有写权限

/logs/ 目录为日志记录文件夹,也必须具有写权限

本例子中主要介绍linux下nginx的配置

nginx根目录需要指向/web/目录下,示例如下

Apache 配置如下: 

/web/index.php是程序的主入口,其中有几个关键配置 

其中SYS_ENV的环境值也有bool型,方便判断使用

【编辑推荐】

  1. PHP新手必读:全方面了解和学习PHP框架
  2. 推荐20个最近很流行的优秀PHP框架
  3. 构建自己的PHP框架--搭建基本结构
  4. 腾讯开源微服务架构Tars,高性能RPC开发框架
  5. 从0开始构建一个属于你自己的PHP框架
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

WebWork in Action中文版

本书是一本从头至尾都使用现实世界例子讲述有关编写Web应用程序的书籍。WebWork所强调的内容是:利用框架实现你的项目,而不是被框架所阻碍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言