dmelo / dzend
一组类,用于包装Zend v1。其目标是为了使常见模式更容易实现,并且透明地添加常用功能。
Requires
- php: >= 5.4.0
- emagister/zend-form-decorators-bootstrap: dev-bootstrap3
- facebook/php-sdk-v4: 4.0.23
- zendframework/zendframework1: >=1.12.0
Requires (Dev)
- phpunit/phpunit: 4.1.*
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'),其中 $userDb 是 DbTable_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,则在使用 findById 或 findRowById 方法时,行将根据 ID 缓存。请注意,缓存仅在请求期间持续。另外,请注意,更改的对象不会更新缓存。如果一个对象被检索然后更新,第二次检索该对象将返回旧对象。
insertMulti 方法
虽然 Zend_Db_Table 提供了插入单个行的 insert 方法,但 DZend_Db_Table 提供了 insertMulti 方法,该方法接受数据数组数组,以插入多行。
DZend_Db_Table_Row
通常,数据库、表和列的 SQL 名称使用下划线表示法,而编程使用驼峰表示法。 DZend_Db_Table_Row 自动在两者之间进行转换。假设 $row 是 DZend_Db_Table_Row 的实例。可以使用 $row->columnName 访问 column_name 的列值。
当前用户
使此特性正常工作的先决条件是,必须在 DZend_Session_Namespace::get('session')->user 上存储当前登录的用户行具有认证权限。它假设 id 属性包含用户的键。
DZend_CurrentUser 是一个特性,它提供了两个方法,_getUserRow() 和 _getUserId()。如果没有用户登录,则返回 null。
默认情况下,DZend_Model 和 DZend_Db_Table 已经扩展了这个特性。
PHPUnit
待办事项...