2009-08-20 5 views
0

は、私はちょうどZF 1.6から1.9 ZFに移動し、そこに私はそれを始めて以来、多くの変更があり、私は私のライブラリの一部をリファクタリングしました。あなたはZFのためにあなた自身を書く必要がある最も一般的なクラスは何ですか?

何かを忘れてはいけないし、私は要素を拾うことができます偉大な汎用的なライブラリを持っているために、私はあなたがZFのために書かなければならなかったあなたの最も使用される一般的なクラスが何であるか不思議でしたか?

私は古典的なbaseUrlにヘルパー、またはドメインモデル/アクティブレコード/コレクションの一部implentationについて例えば考えています。

それは私にとって大きな助けとなる(そしておそらく他のいくつかのために)私は将来的に忘れることができるいくつかのツールを準備しましょう!

ありがとう

答えて

1

mmm generic class?さて私は、認証アダプタを使用して、ACL、モジュールコントローラ、およびデータグリッドクラスは、それらは私が私のプロジェクトにたくさん使うリストクラスの私のトップであり、それらはZFのバージョンのすべてに完璧に動作する汎用的な十分なされているIテストしました。私は自分自身が何度も何度以上使用して見つける

0

ものは、いくつかのアクションヘルパーです。モデルをロードしてキャッシュするもの、パラメータを検証するもの、エラー警告と情報メッセージを管理するもの(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を使用してきました]

関連する問題