ものは、いくつかのアクションヘルパーです。モデルをロードしてキャッシュするもの、パラメータを検証するもの、エラー警告と情報メッセージを管理するもの(flashMessengerに似ています。また、いくつかのカスタマイズされたフォームコントロール(SaveとCancelボタンのように、ラベルなしで互いの隣に表示されます)と、ユーザーがモジュール/ビュー/アクションを訪問するACLアクセス権を持っている場合にa hrefを返すヘルパーを表示します。これらは一般的なもので、すべてのプロジェクトで使用される共有インクルードディレクトリにあります。
私は、Zend_Controller_Actionの拡張機能のような汎用クラスをたくさん持っていましたが、フレームワークが成熟したので、動作をより一般的なヘルパーやユーティリティにシフトすることができるため、オンデマンドでロード。モデルヘルパーが
//-------------------------------------------------------------------------
/*! \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;
}
}
を下回っている
[Iが0.9以降ZFを使用してきました]