Shorter Than SQL
https://github.com/iamfat/qf
概述 Overview
Q框架简介
Q框架简述
- Q框架是一个非常优秀的PHP开发框架;
- Q框架提供了丰富的类库、助手函数和常规的JavaScript操作;
- Q框架提供了简单易懂API接口可供使用.
- Write Less, Do More!
Q框架模型设计
- Q框架使用了MVC的设计模式;
- Q框架引入了Schema的概念;
- Q框架应用逻辑层和表现层更好的分离.
Q框架基于PHP5运行
- Q框架包含了PHP5魔术方法和魔术常量;
- Q框架包含了抽象类,接口等很多高级特性;
- Q框架在运行效率方面有着更好的性能.
Q框架是单一入口
- 单一入口通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也就是说项目的所有功能操作都是通过这个入口文件进行的,并且往往入口文件是第一步被执行的。
- 单一入口的好处是项目整体比较规范,因为同一个入口,往往其不同操作之间具有相同的规则。另外一个方面就是单一入口带来的好处是控制较为灵活,因为拦截方便了,类似如一些权限控制、用户登录方面的判断和操作可以统一处理了。
- 单一入口带来的最明显问题可能就是程序配置文件重复加载;鉴于此,目前Q框架采用redis、memcached等各类缓存技术来进行控制文件单次加载,重复利用,大大减少了程序在资源上的浪费。
Q框架的特色
- Q语句操作数据库:
Shorter Than SQL
; - Q语句类似CSS selector, 对数据库进行模拟html查询方式, 使数据对象的查询更直观;
- Q语句是对关系型数据进行查询的最快捷书写语法语言.
Q框架加载
Q框架的WEB模式是单入口的,首先执行的文件为public/index.php. 任何一个访问都会经过下列流程。
1 | try { |
开发人员可以同过对system.setup, system.ready, system.display, system.shutdown的事件绑定来在不同阶段加载自己的模块
CLI模式下, 用户通过自行定义ROOT_PATH定位Q框架位置, 并加载core/cli.php用于在CLI环境下使用Q的相关模块
1 | define(ROOT_PATH, "/var/www/q"); |
在CLI模式下, 启动流程与WEB流程一致 但是关闭时需要根据需要调用CLI::shutdown()来正常关闭框架
1 | define(ROOT_PATH, "/var/www/q"); |