首页 QeePHP专区
  • 【1】【原创】QeePHP框架底层优化-10:解决对某种数组占位符表达式不支持的BUG

    blogdaren 2016-12-14   1117次来访
    源码详见: https://github.com/linuxphp/qeephp 问题现象: Model::find('title = ? and type = ?', array($title, $type))->asArray()->getOne(); 对于形如这样的写法,框架不支持。 解决方法: 代码里有详细的案例注释,详见截图...
  • 【2】【原创】qeephp优化-9:解决DB直连查询时因字符串变量引起的数据库查询失败的BUG

    blogdaren 2016-06-07   1045次来访
    问题现象: 问题原因: 定位到底层代码:  vi qee_framework/library/db/adapter/mysql.php +132 (1)  mysql_real_escape_string函数是依赖数据库连接的以及连接使用的字符集的 (2)  然而底层在调用qstr()方法时,若采用直连...
  • 【3】QDB_ActiveRecord_Abstract概述

    blogdaren 2015-02-14   1226次来访
    QDB_ActiveRecord_Abstract 实现了一个扩展的 ActiveRecord 模式。 主要特征包括: 静态的查找 find() 和删除方法 delete(),避免在领域对象中混入基础架构代码 以表数据入口为基础的 CRUD 操作,具备丰富的功能 对象属性可以设置为只读模式,并且可以指定属性的读写方法 丰富的事件回调 可透...
  • 【4】QeePHP数据库架构

    blogdaren 2015-02-14   1661次来访
    QeePHP的数据库架 构为QeePHP应用程序提供了全方位的数据库服务: 主要组件概述 QeePHP 数据库架构包含的主要组件分为三个级别。 最底层的是适配器、事务等组件,提供直接操作数据库的能力,并且为更上层的组件提供服务;位于中 间层次的则是表数据入口。表数据入口封装了对数据表的操作,既可以处理单独的记录,也可以高效得完成批量数据处理;最高层的ActiveRecord实...
  • 【5】qeephp的save()方法详解

    blogdaren 2015-02-14   1032次来访
    qeephp调用 save() 前一般模型都有主键值,这个时候回导致 save() 认为是要更新已有的对象,而不是创建新对象。 如果想创建新对象,解决办法是使用 save() 方法的第二个参数来强制创建新对象: $user = new User(); $user->id = 1; $user->name = ‘theone’; ...
  • 【6】qeephp运行过程分析

    blogdaren 2015-02-14   1047次来访
    boot.php最基本的配置文件,$app_config数组就是配置文件数组,这个数组会进一步赋给myapp里面的_app_config变量,也会进入ini配置中,用Q::ini[‘app_config/xxx’]即可以访问。 qeephp_class_files.php 包含qeephp所有类文件名 q.php中的ini 函数负责系统的配置文件 autoload函数负责qe...
  • 【7】qeephp路由规则详解

    blogdaren 2015-01-18   1047次来访
    pattern: /组成部分/组成部分/组成部分/[*|?] config: 变量名: 比对规则 变量名: 比对规则 defaults: 如果没有默认规则 office: pattern: /office/:department config: department: [a-z][a-z...
  • 【8】Qeephp Modules模块使用方法

    blogdaren 2015-01-18   983次来访
    如题,有三个注意事项: 1、目录结构为 project_name/modules/my/controller/ project_name/modules/my/view/ 2、把 project_name/app/controller/abstract.php 文件拷贝到 project_name/modules/my/controller/abstract.php 打开编辑文件,a...
  • 【9】QEEPHP启动流程详解

    blogdaren 2015-01-18   1031次来访
    先说下我个人发现的对这个框架一个很不爽的缺点哈: QeePHP里数据模型比较死板,为了oo而oo,而不是为了数据库查询优化: 比如每次它都会查询表结构..... OK,言归正传,开上代码: $app_config = require(dirname(__FILE__) . '/_code/config/boot.php'); require $app_config['QEEPHP_...
  • 【10】QeePHP的URL路由解析与生成

    blogdaren 2015-01-18   1443次来访
    路由功能,简单来说就是 URL 重写。 比如我们最初的地址是: http://qeephp.com/index.php?controller=projects&action=show&name=qeephp 经过优化后就是:http://qeephp.com/projects/qeephp 第二个地址相比第一个,不但更短,而且更有意义。也更容易被人记忆,当然对于搜索引...
  • 【11】qeephp如何批量更新和删除记录?

    blogdaren 2015-01-06   939次来访
    <?php /** * updateWhere 处理关联表,更安全,但是效率相对较低 */ Project::meta()->updateWhere(array('click'=>9),'[pid] =?',2); /** * updateDbWhere 第二个参数为sql条件字符窜,或者条件数组,不支持动态参数模式 */ Project::meta()->upda...
  • 【12】qeephp查询对象QDB_Table_Select详解

    blogdaren 2015-01-06   1036次来访
    查询对象 QDB_Table_Select 查询对象用于从数据库查询符合条件的记录,并返回为数组或者 ActiveRecord 对象实例。 查询对象使用方法链来构造灵活的查询表达式,例如: $table = new QDB_Table(...); $rowset = $table->find(...) ->all(...) ...
  • 【13】qeephp的多种数据库查询写法

    blogdaren 2015-01-06   1041次来访
    PHP代码: // 使用字符串做查询条件 Post::find('id = 1') // 使用 ? 作为参数占位符 Post::find('id = ?', $id) // 使用多个参数占位符 Post::find('id = ? AND level_ix > ?', $id, $level_ix) // 使用数组提供多个参数占位符的值 Post::find('i...
  • 【14】qeephp用ActiveRecord更好的封装业务逻辑

    blogdaren 2014-12-27   1028次来访
    通常的 ActiveRecord 实现,无非是封装一个数据库记录。然后把记录的字段变成对象属性而已。QeePHP 的 ActiveRecord 是很不同的,其属性不但可以是记录的字段,还可以映射到不同的方法。 举个最简单的例子:计算订单金额合计。 订单通常由多个订单项目组成,订单项目包含有商品的ID和购买价格。所以计算订单金额合计就是个遍历订单项目,然后用订单项目的价格乘以数量,最后累加。 ...
  • 【15】qeephp优化-7:修复group by 和 count()联合使用时分页异常的BUG

    blogdaren 2014-10-08   1407次来访
    找到/path/to/db/select.php文件的getPagination()方法或者是如下的setPager()方法 (注意: setPager()这个方法是博主扩展的,都需要同步修复),找到源代码: $count = (int)$this->_conn->execute($this->__toString())->fetchOne(); 然...