我刚刚从ZF 1.6转移到ZF 1.9,自从我开始使用它以来有很多变化,我将重构我的一些库。
为了不忘记任何事情,并且有一个很棒的通用库我可以拿起元素,我想知道你为ZF写的最常用的通用类是什么?
我正在考虑关于经典的baseUrl帮助器,或者域模型/活动记录/集合的一些实现。
对我(以及其他一些人)来说,准备一些我将来会忘记的工具会给你很大的帮助!
感谢
答案 0 :(得分:1)
mmm泛型类?我使用的是Auth适配器,ACL,模块控制器和DataGrid类,这些是我在我的项目中大量使用的列表类的顶级,它们非常通用,可以在所有ZF版本上完美运行经过测试。
答案 1 :(得分:0)
我发现自己一遍又一遍地使用的东西是一些行动助手。一个加载和缓存模型,一个用于验证参数,另一个用于管理错误警告和信息消息(类似于flashMessenger,除了它可以工作,无论你是_forward还是重定向或在当前查询中访问它们)。还有一些自定义表单控件(如“保存”和“取消”按钮,它们彼此相邻,没有标签),以及一些视图助手,如果用户具有访问模块/视图/操作的ACL权限,则返回一个href。它们是通用的,位于所有项目使用的共享包含目录中。
我有一大堆通用类(比如Zend_Controller_Action的扩展)但是随着框架的成熟,这些需求越来越少,因为这些行为可以转移到更小的更通用的帮助程序和可以加载的实用程序中一经请求。 [我从0.9开始使用ZF]
模型助手位于
之下//-------------------------------------------------------------------------
/*! \brief loads and caches models
usage in an Action controller: eg
$users = $this->_helper->model( 'User' );
loads MODEL_PATH . User.php
Idea stolen from
http://fedecarg.com/wiki/Module-specific_Models
*/
class LSS_Controller_Action_Helper_Model extends Zend_Controller_Action_Helper_Abstract
{
const PREFIX = 'MODEL_';
//-------------------------------------------------------------------------
/*! \brief return a global instance of the specified model.
Uses Zend_registry to store a cached instance of the model so we don't have to load it
in each function.
You can use sub directories by passing in the class name eg Customer_Session
\param $type string type of value to return
\return model instance
*/
function direct( $name )
{
$regName = self::PREFIX . $name;
if (Zend_Registry::isRegistered( $regName )) return Zend_Registry::get( $regName );
require_once( MODEL_PATH . str_replace( '_', '/', $name ) . '.php' );
$instance = new $name;
Zend_Registry::set( $regName, $instance );
return $instance;
}
}