Ben bu soruya cevabı, sizin ihtiyaçlarınıza bağlıdır zaman kısıtlamaları ve yazılım geliştirme / stil için genel bir yaklaşım bence.
Geçenlerde (A) genel ORM çözümleri ve farklı ZF uygulama yapılarını araştıran bir LOT zaman geçirdim, çok sıkı bir süre ve (B) bir küçük ama karmaşık web uygulaması üzerinde Zend Framework kullanmak için karar aldık. Ben gelmiş sonuç orada bir tek beden herkese uyar çözüm değildir ve yaratıcı almak ve you ile mutlu bir uygulama yapısı oluşturmak için çekinmeyin gerektiğini olmasıdır.
Eğer sıkı zaman kısıtlamaları ve uygulama çok büyük değilse, o zaman sadece Application_Model_BlahService gibi isimlerle birlikte sınıfları oluşturmak ve application/models dizinde saklayın ve onlar aldı alacak olabilir otomatik yükleyici tarafından varsayılan (autoloader doğru önyükleyicisini olmuştur varsayarak) tarafından.
Başka bir nedenle, daha dizinlere sınıfları dışarı bölmek istiyorum, eğer uygulama büyük ya Ama eğer uygulama dizini altında kendi alt-dizinleri oluşturmak ve {var olacağı aşağıdaki kodu gibi bir şey (kullanabilirsiniz [(0)]}) otomatik yükleyici için bu sınıfları eklemek için:
protected function _initResourceLoader()
{
$this->_resourceLoader->addResourceType( 'service', 'services', 'Service' );
$this->_resourceLoader->addResourceType( 'serviceplugin', 'services/plugins', 'Service_Plugin' );
}
Daha sonra application/services/plugins/TaxPlugin.php ikamet ediyorum application/services/Invoice.php ikamet ve Application_Service_Plugin_TaxPlugin olur Application_Service_Invoice gibi sınıflar, oluşturabilirsiniz. (Not: Yukarıdaki kodu Zend_Application kullandığınız varsayılır).
Siz, teoride kadarıyla sizin gibi bu alabilir ve veri erişim sınıfları, vs vs vs Ama servis sınıflardan ayrı modeli sınıfları tekrar, tercih gelişme tarzına bağlıdır, takımın büyüklüğü ve, bir dereceye kadar, ne gereksinimleri sebat katman size dayatır.
Son bir şey soracağım: Varsayılan olarak otomatik yükleyici eklenen kaynakların bir listesi için Zend_Application_Module_Autoloader bir göz var. (Ben bu cevap ZF 1.8 + bahsediyorum sözü var mı?)