百度百科:

https://baike.baidu.com/item/qeephp/8328612?fr=aladdin

官方地址:

http://www.qeephp.cn/app/index.php

下载地址:

https://github.com/firzen/QeePHP

文档


MVC 工作流程

QeePHP 可以工作在命令行、Web 服务器等各种环境中。在 Web 服务器中,QeePHP 可以选择 MVC 组件来实现全功能的应用程序。

MVC 实际上是一系列略有不同的模式。QeePHP 采用的是Passive(被动)MVC 模式 。在 Passive MVC 模式中,Model(模型)完全不知道自己身处于 MVC 结构之中。换句话说,模型与 MVC 模式里面的其他组成部分完全没有关联,因此模型可以被用在各种场合,而不仅仅限于 MVC 模式。

在 QeePHP 的 MVC 架构中,出现了一系列的对象。这些对象各自承担不同的职责,从而实现了单一入口、请求调度等功能构成的完整运行流程。在详细阐述 QeePHP 的 MVC 工作流程之前,可以通过下面的流程图了解主要的步骤和进程。

MVC 模式的调用流程

详细MVC实现代码请查看 _code\myapp.php

目录结构

app应用

--controller

--helper

--model

--view

--myapp.php

config配置

--boot.php

core框架核心

--library/q.php

--library/orm/activerecord/meta.php

db数据库脚本

lib第三方类库

log日志

public前端公共

--index.php

tmp临时缓存

入口文件

index.php 是默认的入口文件,用于启动整个应用程序。

入口文件负责载入 boot.php 文件、QeePHP 框架的核心文件以及应用程序对象的类定义文件。接下来就是构造应用程序对象,并调用应用程序对象的 dispatching() 方法来进入 MVC 模式。

如果 dispatching() 的返回值是一个字符串,则使用 echo 输出这个字符串。这样在 AJAX 编程时,可以直接将控制器动作的返回结果回馈给客户端的 JavaScript 代码。


QeePHP API 参考手册

API 参考手册提供了 QeePHP 所有对象和方法的参考信息和用法示例。是日常使用必备的参考文档。

包 - core

Core 包是 QeePHP 核心类的集合,QeePHP 的其他所有功能都依赖核心类提供的服务

QeePHP 核心类提供下列服务:

  • 设置的读取和修改;
  • 类定义文件的搜索和载入;
  • 对象的单子模式实现,以及对象注册和检索;
  • 统一缓存接口;
  • 基本工具方法;
  • 类型安全的集合;
  • 日志服务;
  • 辅助调试工具;
  • 以及运行时上下文对象。

Q

类 Q 是 QeePHP 框架的核心类,提供了框架运行所需的基本服务

QException

QException 是 QeePHP 所有异常的基础类

QColl

QColl 实现了一个类型安全的对象集合

QContext

QContext 封装了运行时上下文

QLog

类 QLog 实现了一个简单的日志记录服务

包 - mvc

在 QeePHP 中,MVC 包实现了 MVC 模式。

QeePHP 的 MVC 默认实现包含下列功能:

  • 基于角色的访问控制
  • URL 路由解析
  • 高级视图架构
  • 请求转发等

QACL

QACL 实现了权限检查服务

QController_Abstract

QController_Abstract 实现了一个其它控制器的基础类

QController_Forward

QController_Forward 将请求转发到另一个控制器动作执行

QRouter

QRouter 实现了自定义路由解析

QView_Output

类 QView_Output 用于向浏览器直接输出数据(例如下载文件)

QView_Redirect

QView_Redirect 类封装了一个浏览器重定向操作

QView_Render_PHP

QView_Render_PHP 类实现了视图架构的基础

QView_Render_PHP_Parser

QView_Render_PHP_Parser 类实现了视图的分析

包 - orm

ActiveRecord 是 QeePHP 默认的 ORM 解决方案。

QeePHP 的 ActiveRecord 支持复杂的对象关系管理,以及完善的事件响应机制。

主要特征:

  • 支持超过 20 种不同的事件
  • 行为插件机制可以透明的改变模型工作方式
  • 完全自定义的验证规则
  • 高级安全特征
  • 对象关系导航
  • 类型安全
  • 可扩展的模型
  • 元编程

QDB_ActiveRecord_Behavior_Abstract

QDB_ActiveRecord_Behavior_Abstract 抽象类是所有行为插件的基础类

QDB_ActiveRecord_Abstract

QDB_ActiveRecord_Abstract 类实现了 Active Record 模式

QDB_ActiveRecord_Association_Abstract

QDB_ActiveRecord_Association_Abstract 封装 ActiveRecord 之间的关联关系

QDB_ActiveRecord_Association_BelongsTo

QDB_ActiveRecord_Association_BelongsTo 类封装 ActiveRecord 对象之间的 belongs to 关联

QDB_ActiveRecord_Association_Coll

QDB_ActiveRecord_Association_Coll 封装了对象的关联关系,并且提供操作这些关联关系的方法

QDB_ActiveRecord_Association_HasMany

QDB_ActiveRecord_Association_HasMany 类封装数据表之间的 has many 关联

QDB_ActiveRecord_Association_HasOne

QDB_ActiveRecord_Association_HasOne 类封装了对象见的一对一关系

QDB_ActiveRecord_Association_ManyToMany

QDB_ActiveRecord_Association_ManyToMany 类封装 ActiveRecord 对象之间的 many to many 关联

QDB_ActiveRecord_Meta

QDB_ActiveRecord_Meta 类封装了 QDB_ActiveRecord_Abstract 继承类的元信息

QDB_ActiveRecord_View

QDB_ActiveRecord_View 类模拟数据库视图的形式实现 Active Record 模式

QDB_ActiveRecord_ViewMeta

QDB_ActiveRecord_ViewMeta 类封装了 QDB_ActiveRecord_View 继承类的元信息

QDB_ActiveRecord_Callbacks

QDB_ActiveRecord_Callbacks 定义了 ActiveRecord 对象及行为插件可用的回调类型

QDB_ActiveRecord_Interface

QDB_ActiveRecord_Interface 接口确定了所有 QDB_ActiveRecord_Abstract 继承类必须实现的静态方法

包 - form

QForm 是一种创新的表单封装模式,完美分离了表单的数据、行为和表现。

QForm 的主要特征:

  • 完美分离表单的数据、行为和表现
  • 自定义过滤器
  • 自定义验证规则
  • 可以从配置文件构造表单
  • 完善的错误处理机制
  • 100% 可定制的表单渲染

QForm_Element

QForm_Element 类封装了表单中的一个值元素

QForm_Group

类 QForm_Group 是容纳多个元素或群组的集合

QForm

类 QForm 封装了表单的数据和行为

包 - database

QeePHP 的数据库访问层支持多种数据库,并且具有强大的扩展能力。

主要特征:

  • QDB_Select 实现的连贯接口,支持多种数据库查询方式
  • QDB_Expr 封装了数据库表达式,方便构造灵活的查询
  • QDB_Cond 封装了查询条件,可以构造任意复杂度的查询条件
  • QDB_Table 实现了可扩展的表数据入口,对复合主键有完善的支持
  • 可动态切换的数据库连接,满足分布式数据库应用的开发

QDB_Adapter_Abstract

QDB_Adapter_Abstract 是所有数据库驱动的抽象基础类

QDB_Adapter_Mysql

QDB_Mysql 提供了对 mysql 数据库的支持

QDB_Adapter_Pdo_Abstract

QDB_Adapter_Pdo_Abstract 类是所有 PDO 驱动的基础类

QDB_Adapter_Pdo_Exception

QDB_Adapter_Pdo_Exception 异常封装所有 PDO 操作错误

QDB_Adapter_Pdo_Pgsql

QDB_Adapter_Pdo_Pgsql 类提供对 PostgreSQL 的支持

QDB_Adapter_Pgsql

定义 QDB_Adapter_Pgsql 类

QDB_Cond

QDB_Cond 类封装复杂的查询条件

QDB

类 QDB 提供了 QeePHP 访问数据库的基本接口。

QDB_Expr

QDB_Expr 封装一个表达式

QDB_Result_Abstract

QDB_Result_Abstract 是封装查询结果对象的抽象基础类

QDB_Result_Mysql

QDB_Result_Mysql 封装了一个 mysql 查询句柄,便于释放资源

QDB_Result_Pdo

QDB_Result_Pdo 类封装了 PDO 查询结果

QDB_Result_Pgsql

QDB_Result_Pgsql 封装了一个 PostgreSQL 查询句柄,便于释放资源

QDB_Select

QDB_Select 类实现了一个数据库查询接口,提供了进行复杂查询的能力

QDB_Table

QDB_Table 类(表数据入口)封装数据表的 CRUD 操作

QDB_Table_Lite

QDB_Table_Lite类 在程序运行中创建QDB_Table对象而不用事先创建类

包 - helper

Helper 包提供了大量简单易用的辅助工具。

主要包括:

  • 文件系统操作
  • 数组操作
  • 图像操作
  • 验证码生成
  • 上传文件处理
  • YAML 解析与输出
  • DOM 工具
  • 过滤器
  • 验证器

Helper_Filesys

Helper_Filesys 类提供了一组简化文件系统操作的方法

Helper_Array

Helper_Array 类提供了一组简化数组操作的方法

QDom_Document

QDom_Document 类对PHP5自带的DOMDocument进行了自己的扩展

QDom_Element

QDom_Element 类对PHP5自带的DOMElement进行了自己的扩展

QFilter

类 QFilter 实现了过滤器接口,以及一些常用的过滤器方法

Helper_Image

Helper_Image 类封装了针对图像的操作

Helper_ImageGD

Helper_ImageGD 类封装了一个 gd 句柄,用于对图像进行操作

Helper_ImgCode

Helper_ImgCode 类提供验证码生成和检验的接口

Helper_ImgCodeSimple

Helper_ImgCodeSimple 实现了一个简单样式的验证码

Helper_ImgCodeTTF

Helper_ImgCodeTTF 使用 ttf 字体生成验证码

Helper_Uploader

Helper_Uploader 类封装了针对上传文件的操作

Helper_Uploader_File

Helper_Uploader 类封装一个上传的文件

QValidator

QValidator 提供了一组验证方法,以及调用验证方法的接口

Helper_YAML

Helper_YAML 提供 yaml 文档的解析和输出服务

包 - cache

QeePHP 支持多种缓存方式,最大程度的提高运行效率。

主要支持的缓存类型:

  • 基于文件的缓存
  • APC
  • XCache
  • Memcached

QCache_APC

QCache_APC 类使用 APC 扩展来缓存数据

QCache_File

QCache_File 类提供以文件系统来缓存数据的服务

QCache_Memcached

QCache_Memcached 使用 memcache 扩展来缓存数据

QCache_Memory

QCache_Memory 在当次请求中使用内存来缓存数据

QCache_PHPDataFile

QCache_PHPDataFile 类以 .php 文件来保存 PHP 的变量内容

QCache_XCache

QCache_XCache 类使用 XCache 扩展来缓存数据

包 - webcontrols

WebControls 是用户界面组件化的核心架构。

QeePHP 的 WebControls 不但提供了一个可扩展的用户界面控件创建机制,还附带了大量常用的用户界面控件。

主要特征:

  • 用户界面组件化
  • 支持自定义控件
  • 支持控件的无线级嵌套
  • 附带的标准控件
  • 与 QForm 的完美集成

QUI_Control_Abstract

QUI_Control_Abstract 是用户界面控件的基础类

Control_Input_Abstract

Control_Input_Abstract 类使所有输入框控件的基础类

Control_Button

Control_Button 封装各种类型的按钮

Control_Checkbox_Abstract

Control_Checkbox_Abstract 是所有多选框的基础类类

Control_Checkbox

构造一个多选框

Control_CheckboxGroup_Abstract

Control_CheckboxGroup_Abstract 是群组多选框的基础类

Control_CheckboxGroup

构造一个多选框组

Control_DropdownList

Control_DropdownList 构造一个下拉列表框

Control_Hidden

构造一个隐藏表单控件

Control_Label

构造一个标签控件

Control_Listbox

构造列表框

Control_Memo

构造一个多行文本框

Control_Password

密码输入框

Control_Radio

构造一个单选按钮

Control_RadioGroup

构造一组单选按钮

Control_Reset

构造一个表单重置按钮

Control_Static

构造一个静态控件

Control_Submit

构造一个表单提交按钮

Control_Textbox

单行文本框

Control_Upload

构造一个上传文件选择框

包 - behavior

行为插件是 QeePHP 为 ActiveRecord 提供的扩展机制,允许开发者透明的改变模型工作方式。

QeePHP 自带的行为插件包括:

  • 快速生成仿 UUID
  • 对象关系助手
  • 对象属性唯一性检查
  • 用户角色绑定

更多的行为插件可以在 QeePHP.com 开源项目与插件平台 上获得。

Model_Behavior_AclUser

Behavior_AclUser 实现基于 ACL 的用户访问控制

Model_Behavior_Fastuuid

Behavior_Fastuuid 为模型生成 64 位整数或混淆字符串的不重复 ID

Model_Behavior_Relation

Behavior_Relation 为 ActiveRecord 添加一组直接操作关联对象的方法

Model_Behavior_Uniqueness

Behavior_Uniqueness 用于检查指定的属性是否存在重复值

包 - exception

包含了 QeePHP 自带的所有异常类。

QeePHP 充分利用异常来指示错误,包含了大量的异常类。

QCache_Exception

QCache_Exception 异常封装所有的缓存错误

Q_ClassFileExistsException

Q_ClassFileExistsException 异常指示类定义文件已经存在

Q_ClassNotDefinedException

Q_ClassNotDefinedException 异常指示指定的文件中没有定义需要的类

Q_CreateDirFailedException

Q_CreateDirFailedException 异常封装指示创建目录失败

Q_CreateFileFailedException

Q_CreateFileFailedException 异常指示创建文件失败

Q_FileNotFoundException

Q_FileNotFoundException 异常指示文件没有找到错误

Q_FileNotReadableException

Q_FileNotReadableException 异常指示文件无法读取错误

Q_IllegalClassNameException

Q_IllegalClassNameException 异常指示无效的类名

Q_IllegalFilenameException

Q_IllegalFilenameException 异常指示存在无效字符的文件名

QLog_Exception

QLog_Exception 异常封装与 QLog 有关的错误

Q_NotImplementedException

Q_NotImplementedException 异常指示未实现的方法

Q_RemoveDirFailedException

Q_RemoveDirFailedException 异常指示删除目录失败

QDB_Exception

QDB_Exception 用于封装数据库操作相关的异常

QDB_Exception_DuplicateKey

QDB_Exception_DuplicateKey 异常指示出现重复主键值错误

QDB_Select_Exception

QDB_Select_Exception 异常封装所有 QDB_Select 相关的错误。

QDB_Table_Exception

QDB_Table_Exception 异常封装所有 QDB_Table 的错误

AclUser_Exception

AclUser_Exception 异常是所有 acluser 插件异常的基础类

AclUser_DuplicateUsernameException

AclUser_DuplicateUsernameException 异常指示重复的用户名

AclUser_UsernameNotFoundException

AclUser_UsernameNotFoundException 异常指示用户名不存在

AclUser_WrongPasswordException

AclUser_WrongPasswordException 异常指示密码不正确

QForm_Exception

QForm_Exception 封装所有与 QForm 有关的错误

QDom_Exception

QDom_Exception 用于封装 DOM 操作相关的异常

QValidator_Exception

QValidator_Exception 封装所有与验证有关的错误

QValidator_ValidateFailedException

QValidator_ValidateFailedException 异常封装了验证失败事件

QDB_ActiveRecord_Association_Exception

QDB_ActiveRecord_Association_Exception 封装所有对象关联发生的错误

QDB_ActiveRecord_Association_NotDefinedException

QDB_ActiveRecord_Association_NotDefinedException 异常指示未定义的关联

QDB_ActiveRecord_Association_RejectException

QDB_ActiveRecord_Association_RejectException 异常指示某个操作被拒绝

QDB_ActiveRecord_Behavior_Exception

QDB_ActiveRecord_Behavior_Exception 指示与行为插件相关的错误

QDB_ActiveRecord_Exception

QDB_ActiveRecord_Exception 封装所有与 ActiveRecord 有关的错误

QDB_ActiveRecord_CallToUndefinedMethodException

QDB_ActiveRecord_CallToUndefinedMethodException 异常指示未定义的方法

QDB_ActiveRecord_ChangingReadonlyPropException

QDB_ActiveRecord_ChangingReadonlyPropException 指示某个属性是只读

QDB_ActiveRecord_CompositePKIncompatibleException

QDB_ActiveRecord_CompositePKIncompatibleException 异常指示某项功能与复合主键不兼容

QDB_ActiveRecord_DestroyWithoutIdException

QDB_ActiveRecord_DestroyWithoutIdException 指示视图删除一个没有主键值的对象

QDB_ActiveRecord_ExpectsAssocPropException

QDB_ActiveRecord_ExpectsAssocPropException 异常指示对象的关联属性没有设置

QDB_ActiveRecord_Meta_Exception

QDB_ActiveRecord_Meta_Exception 封装所有与 QDB_ActiveRecord_Meta 相关的错误

QDB_ActiveRecord_SettingPropTypeMismatchException

QDB_ActiveRecord_SettingPropTypeMismatchException 异常指示指定给属性的值类型不匹配

QDB_ActiveRecord_UndefinedPropException

QDB_ActiveRecord_UndefinedPropException 异常指示未定义的属性

QDB_ActiveRecord_ValidateFailedException

QDB_ActiveRecord_ValidateFailedException 异常封装了 ActiveRecord 对象的验证失败事件

QACL_Exception

QACL_Exception 异常封装了 QACL 相关的错误

QRouter_Exception

QRouter_Exception 异常封装路由相关的错误

QRouter_InvalidRouteException

QRouter_InvalidRouteException 异常指示无效的路由规则

QRouter_RouteNotFoundException

QRouter_RouteNotFoundException 异常指示指定的路由规则不存在

QView_Exception

QView_Exception 异常封装所有与 QView 相关的错误

QUI_Exception

QUI_Exception 封装所有与 QUI 有关的异常

包 - debug

提供帮助进行应用程序调试的工具。

QDebug

QDebug 为开发者提供了调试应用程序的一些辅助方法

QDebug_FirePHP

QDebug_FirePHP 类提供对 FirePHP 的支持

QeePHP的更多相关文章

  1. qeephp 记录下

    百度百科: https://baike.baidu.com/item/qeephp/8328612?fr=aladdin 官方地址: http://www.qeephp.cn/app/index.ph ...

  2. QeePHP View视图的默认变量与新增变量

    新版本的QeePHP(V13.1)中,视图页面已经默认添加了几个常用变量 $_app; //控制器所属的应用程序 $_login_user;  //登陆用户信息 直接在视图页面直接使用变量即可. 如果 ...

  3. Nginx 配置详解

    http://www.cnblogs.com/analyzer/articles/1377684.html 本文转自:http://blog.c1gstudio.com/archives/434 推荐 ...

  4. Nginx 伪静态教程

    1.将多个域名指向同一web目录: server_name www.php100.com php100.com; rewrite ^/$ / redirect; 2.将不带www的域名301转向到带w ...

  5. nodejs爬虫

    前言 几个月之前,有同事找我要PHP CI框架写的OA系统.他跟我说,他需要学习PHP CI框架,我建议他学习大牛写的国产优秀框架QeePHP. 我上QeePHP官网,发现官方网站打不开了,GOOGL ...

  6. nginx url重写 rewrite实例

    本文介绍下,在nginx中实现Url重写,学习rewrite的具体用法,有需要的朋友参考下吧. 原文地址:http://www.360doc.com/content/14/0202/20/142341 ...

  7. Nginx 301重定向域名

    为何要使用301重定向 在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变等.如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个4 ...

  8. PHP开发框架[国内框架]

    1.Thinkphp  http://thinkphp.cn/ 2.Brophp   http://www.brophp.com/zf/ 由LAMP兄弟连打造 3.WindFramework http ...

  9. php和java的一些比较

    现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营.但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异.其实,PHP+ ...

随机推荐

  1. vant库在vue全局引入toast组件

    第一步: 在config中引入 // 全局引入vant的提示框 import { Toast } from "vant"; Vue.use(Toast); 第二步: 在组要的.vu ...

  2. 基础语法-循环结构do...while

    基础语法-循环结构do...while 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.do...while语句格式 do{ 执行语句; }while(条件表达式); 温馨提示: ...

  3. C语言预处理理论-宏定义2

    宏定义21.带参宏和带参函数的区别(1)宏定义是在预处理期间处理的,而函数是在编译期间处理的.这个区别带来的实质差异是:宏定义最终是在调用宏的地方把宏体原地展开,而函数是在调用函数处跳转到函数中去执行 ...

  4. C语言预处理理论-宏定义1

    宏定义1宏定义的规则和使用解析(1)宏定义的解析规则就是:在预处理阶段由预处理器进行替换,这个替换是原封不动的替换.(2)宏定义替换会递归进行,直到替换出来的值本身不再是一个宏为止.#define M ...

  5. ansible简单部署前端

    pipeline{ agent any parameters { choice(name: 'server_name', choices: ['xx','xx'], description: 'ser ...

  6. java向python ,text文件动态传参或传值问题完美解决

    由于业务需要对python文件进行参数传递,通过下面两个java方法完美解决此问题,我的思路是:首先我要先把上次写的参数删除,第二我要新的参数写到python文件中. 第一个方法解决了删除上次传递的参 ...

  7. javascript面向对象编程的3种常见封装形式解析

    javascript如何才能脱离函数式编程,拥抱面向对象编程呢,常见的有3种形式,其它形式可以说都是这3种的变种.   1.直接定义对象直接量的形式   var Util={     getType: ...

  8. jar包-循环遍历-开机启动服务-微服务-多项目拷贝-pid杀死进程-mysql备份脚本-防火墙检测脚本

    vi /root/serverkaiji.sh #!/bin/bash ls /tlvnksc/ | egrep -v "^c|^f" > /root/service.lis ...

  9. (递归)Hanoi Tower

    #include<stdio.h>void move(int n,char a,char b){ printf("将第%d个盘子从%c移动到%c\n",n,a,b);  ...

  10. ✨vue引入组件 axios和icont矢量图标

    axios 在vue项目开发中,我们使用axios进行ajax请求,很多人一开始使用axios的方式,会当成vue-resoure的使用方式来用,即在主入口文件引入import VueResource ...