dmelo/dzend

此包的最新版本(1.0.9)没有可用的许可证信息。

一组类,用于包装Zend v1。其目标是为了使常见模式更容易实现,并且透明地添加常用功能。

1.0.9 2016-05-06 02:05 UTC

This package is auto-updated.

Last update: 2024-09-08 07:07:12 UTC


README

DZend 是一组包装 Zend 的类。其目标是使常见模式更容易实现,并透明地添加常用功能。

如果某个 Zend 类被 DZend 包装,那么它的名称将与 Zend 类相同,但以 D 开头,但 DZend 中没有抽象表。例如,DZend_Db_Table 扩展 Zend_Db_Table_Abstract

先决条件

PHP 5.4 >=

引导

引导实例化一些常用工具。

记录器

实例化 Zend_Log 并将其写入注册表。要访问此实例,只需调用

Zend_Registry::get('looger');

所有日志都将写入文件 public/tmp/log.txt

国际化

注册表已包含 Zend_Translate 实例 translate。类似于记录器,要访问翻译对象,请调用

Zend_Registry::get('translate');

地区检测是自动完成的,如果没有找到,默认为 en_US

控制器

待办事项...

数据库

DZend_Db_Table

DZend_Db_Table 类实现了 __call 魔法函数,为选择查询添加一些功能。例如,假设 DbTable_User 扩展 DZend_Db_Table 并表示 user 数据库表。要查找所有女性用户,只需使用调用 $userDb->findByGender('f'),其中 $userDbDbTable_User 的实例。DZend 解析函数名以识别列。

可以使用 "And" 来分隔列名。格式化方法 findByColumnAAndColumnBAndColumnC($a, $b, $c) 将返回一个包含所有具有 column_a = $a AND column_b = $b AND column_c = $c 的行的 Zend_Db_Table_Rowset

要获取单个 Zend_Db_Table_Row 而不是行集,请使用 findRowBy 而不是 findBy

findBy 类似,也存在 deleteBy,它删除所有匹配的行。

注册表缓存

如果扩展 DZend_Db_Table 的类将 $_allowRequestCache 设置为 true,则在使用 findByIdfindRowById 方法时,行将根据 ID 缓存。请注意,缓存仅在请求期间持续。另外,请注意,更改的对象不会更新缓存。如果一个对象被检索然后更新,第二次检索该对象将返回旧对象。

insertMulti 方法

虽然 Zend_Db_Table 提供了插入单个行的 insert 方法,但 DZend_Db_Table 提供了 insertMulti 方法,该方法接受数据数组数组,以插入多行。

DZend_Db_Table_Row

通常,数据库、表和列的 SQL 名称使用下划线表示法,而编程使用驼峰表示法。 DZend_Db_Table_Row 自动在两者之间进行转换。假设 $rowDZend_Db_Table_Row 的实例。可以使用 $row->columnName 访问 column_name 的列值。

当前用户

使此特性正常工作的先决条件是,必须在 DZend_Session_Namespace::get('session')->user 上存储当前登录的用户行具有认证权限。它假设 id 属性包含用户的键。

DZend_CurrentUser 是一个特性,它提供了两个方法,_getUserRow()_getUserId()。如果没有用户登录,则返回 null

默认情况下,DZend_ModelDZend_Db_Table 已经扩展了这个特性。

PHPUnit

待办事项...