मैंने देखा है कि मेरे सभी मॉडल बहुत समान दिखते हैं। उनमें से अधिकतर एक पैटर्न का पालन करते हैं जहां वे सक्रिय रिकॉर्ड कोड वाले विधियों का संग्रह होते हैं जो एक-दूसरे पर थोड़ी सी भिन्नताएं हैं। यहां एक उदाहरण दिया गया है:मेरे मॉडल सभी एक ही दिखते हैं
class Site extends CI_Model {
public function get_site_by_id($id)
{
// Active record code to get site by id
}
public function get_sites_by_user_id($user_id)
{
// ...
}
// ...
public function get_site_by_user_id_and_url_string($user_id, $url_string)
{
// ...
}
// Non active record methods and business logic
// ...
}
इस दृष्टिकोण ने मेरे लिए ठीक काम किया है, लेकिन मुझे आश्चर्य है कि क्या कोई और शानदार समाधान है। यह मेरे लिए सही प्रतीत नहीं होता है कि हर बार जब मुझे डेटा को नए तरीके से देखने की ज़रूरत होती है तो मुझे एक नई विधि बनाना होगा। क्या यह सामान्य प्रथा है या क्या मुझे इस बात को दोबारा करने का कोई तरीका नहीं है?
यह पूर्ण कार्यान्वित मोड परत के विकल्प के रूप में [सक्रिय रिकॉर्ड] (http://martinfowler.com/eaaCatalog/activeRecord.html) के समूह का उपयोग करने का दुष्प्रभाव होगा। आपको [यह] (http://stackoverflow.com/a/11943107/727208) रिफैक्टरिंग के विकल्पों के लिए प्रासंगिक मिल सकता है। "Purist" बनाम "व्यावहारिक" के लिए –