2009-08-20 6 views
0

Ich bin gerade von ZF 1.6 zu ZF 1.9 gewechselt, es gibt eine Menge Änderungen, seit ich damit angefangen habe, und ich muss einige meiner Bibliotheken umgestalten.Was ist Ihre meistgenutzte generische Klasse, die Sie für ZF schreiben mussten?

Um nichts zu vergessen, und um eine großartige generische Bibliothek zu haben, wo ich Elemente abholen kann, habe ich mich gefragt, was sind Ihre am häufigsten verwendeten generischen Klassen, die Sie für ZF schreiben mussten?

Ich denke zum Beispiel über die klassische BaseUrl-Helfer, oder eine gewisse Implementierung des Domain Model/Active Record/Collection.

Es wird eine große Hilfe für mich (und vielleicht für einige andere) sein, einige Werkzeuge vorzubereiten, die ich in der Zukunft vergessen könnte!

danke

Antwort

1

mmm generische Klassen? Nun, ich benutze einen Auth-Adapter, ACL, einen Modul-Controller und eine DataGrid-Klasse, das sind meine Top-Klassen, die ich oft für meine Projekte verwende, und sie sind generisch genug, um auf allen ZF-Versionen perfekt zu funktionieren habe getestet.

0

Die Dinge, die ich immer und immer wieder benutze, sind einige Action-Helfer. Eine, die Modelle lädt und zwischenspeichert, eine andere, die Parameter validiert, eine andere, die Fehlerwarnungen und Info-Nachrichten verwaltet (ähnlich flashMessenger, außer dass sie funktioniert, wenn Sie sie in der aktuellen Abfrage weiterleiten oder umleiten oder darauf zugreifen). Auch einige benutzerdefinierte Formularsteuerelemente (wie eine Save- und Cancel-Schaltfläche, die nebeneinander ohne Label angezeigt werden) und einige View-Helper, die einen Aref zurückgeben, wenn der Benutzer ACL-Berechtigungen zum Aufrufen des Moduls/view/action hat. Diese sind generisch und befinden sich in einem gemeinsam genutzten Include-Verzeichnis, das von allen Projekten verwendet wird.

Ich hatte eine ganze Reihe von generischen Klassen (wie eine Erweiterung von Zend_Controller_Action), aber da das Framework gereift ist, wurden diese immer seltener benötigt, weil die Verhaltensweisen in kleinere allgemeinere Helfer und Dienstprogramme verschoben werden können bei Bedarf geladen. [Ich bin seit 0,9 ZF wurde mit]

Das Modell Helfer unter

//------------------------------------------------------------------------- 
/*! \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; 
    } 
} 
Verwandte Themen