Benim projelerin çoğu için kullanıyorum biraz ilkel bir çerçeve var, ama genel bir tasarım sorunu henüz atlatmanın mümkün olmamıştır akla geldi. Belirli bir uygulama için, ben çerçevenin yapısından uygulamaya özel sınıf yapısını ayırmak gerekir, ya da çerçeve değil, böyle kötü bir şey üstüne buliding mi?
Örneğin, ben bir taban Controller sınıfından bir çerçeve vardı ve benim uygulama belirli bir parçası için genişletilmiş söylüyorlar. Hangi düzenleme en mantıklı ve neden?
Class Structure A:
- Sezgisel, ayıklarken kaynak dosyaları bulmak kolay.
- Dosya adlandırma / dizin yapısı sınıf hiyerarşi aynalar.
- Framework_Control "Framework\Control.php" - Framework_Control_Index "Framework\Control\Index.php" - Framework_Control_Home "Framework\Control\Home.php" - Framework_Control_Contact "Framework\Control\Contact.php" - Framework_Control_About "Framework\Control\About.php"
Class Structure B:
- Çerçeve / güncelleştirmenin yerini kolayca modüler ve tutar.
- Dizin yapısına bazı karmaşıklığı ekler, dizin / dosya adlandırma artık sınıfını aşağıdaki hiyerarşi her zaman.
- Framework_Control "Framework\Control.php" - Application_Control_Index "Application\Control\Index.php" - Application_Control_Home "Application\Control\Home.php" - Application_Control_Contact "Application\Control\Contact.php" - Application_Control_About "Application\Control\About.php"
Ben kişisel tercihinize aşağı gelip gidiyor genel biliyorum, ama ben gitmek için hangi yolu karar vermeden önce tüm artılarını ve eksilerini tartmak emin olmak istiyorum. Gerçekten gerçek bir hiyerarşi olarak sınıf adlandırma ve dizin yapısına aşağı gelir her iki durumda da aynı kalacaktır.