Eğer ZF için kendiniz yazmak zorunda kaldım, en çok kullanılan genel sınıf nelerdir?

2 Cevap php

Ben sadece ZF 1.6 'den 1.9 ZF taşındı, orada ben onunla başladığından beri bir çok değişiklik olduğunu ve benim kütüphaneler bazı refactor ettik.

Bir şey unutma, i elemanları alabilirsiniz büyük bir genel kütüphane var etmek için, i ZF için yazmak zorunda kaldım, en çok kullanılan genel sınıfları nelerdir merak ediyorum?

Ben klasik baseURL yardımcısı, ya da Alan Modeli / Active Record / Collection bazı implentation hakkında örneğin düşünüyorum.

Bu benim için büyük bir yardım olacak (ve belki diğer bazı için) i gelecekte unutabilir bazı araçlar hazırlamak!

teşekkürler

2 Cevap

mmm jenerik sınıflar? Evet bir Auth adaptörü, ACL, bir Modül Controller, ve bir DataGrid Sınıf kullanmak, bu benim projelerde bir çok kullanırım liste sınıfların benim en iyi ve bunlar ZF sürümlerinin tümünde mükemmel çalışan genel yeterli I test ettik.

Kendimi tekrar tekrar kullanarak ve bulmak şeyler bazı eylem yardımcıları vardır. Bir o yükler ve önbelleklerini Modelleri, parametreleri, (bu _forward veya yönlendirme veya geçerli sorgu içinde onlara erişmek ister çalışır dışında FlashMessenger benzer) hata uyarı ve bilgi mesajları yöneten başka doğrular başka. Ayrıca kullanıcı modülü / view / eylem ziyaret ACL izinleri varsa bir bir href döndürür (a Kaydet gibi ve hiçbir Label ile birbirlerine yanında görünür İptal düğmesine) bazı özelleştirilmiş form denetimleri, ve bazı görünüm Yardımcıları. Bu jenerik ve tüm projeler tarafından kullanılan içerir paylaşılan dizinde yaşıyor.

Ben (Zend_Controller_Action bir uzantısı gibi) jenerik sınıfların bir sürü vardı ama çerçeve olgunlaştı gibi davranışlar daha küçük, daha genel yardımcıları ve talep üzerine yüklenebilir programları içine itilebilir, çünkü bunlar genellikle daha az gerekli olmuştur. [I 0.9 beri ZF kullanarak oldum]

Model yardımcı altında

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