• qeephp 记录下


    百度百科:

    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实现代码请查看 _codemyapp.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 的支持

  • 相关阅读:
    js 面试的坑:变量提升
    meta 标签大全
    一个极为简单的requirejs实现
    AMD 的 CommonJS wrapping
    浅解析js中的对象
    javascript运动系列第二篇——变速运动
    开发汉澳即时通信网,2006年上线,QQ死期到了
    SpringMVC中的异步提交表单
    HDU 3698 DP+线段树
    黑马程序猿_反射、内省、泛型
  • 原文地址:https://www.cnblogs.com/cnsanshao/p/8481964.html
Copyright © 2020-2023  润新知