हालांकि पहले वी -> सी, सी -> एम, एम -> सी का उपयोग करने का विचार अच्छा दिखता है, फ़ॉर्म में किसी भी बदलाव को नियंत्रक + मॉडल + व्यू के साथ गड़बड़ करने की आवश्यकता होती है। एप्लिकेशन तर्क को सरल रखने के लिए इसे टालना चाहिए। यहां ढांचे के लिए एक बहुत ही सरल विस्तार है जो फ़ॉर्म प्रसंस्करण तर्क को एक अलग वर्ग में प्रस्तुत करके और एमवीसी आर्किटेक्चर को एप्लिकेशन तर्क को संभालने के लिए रखकर, वेब फॉर्म प्रसंस्करण को संभालना वास्तव में आसान बनाता है।
प्रत्येक प्रपत्र के लिए आपको प्रक्रिया करने की आवश्यकता है, एक सामान्य "वेबफॉर्म" वर्ग, या कोडनिर्देशक मॉडल वर्ग से प्राप्त कक्षा बनाएं। इस वर्ग में मान्य(), प्रक्रिया(), प्रदर्शन() जैसी विधियां जोड़ें।
नियंत्रक में, कोड इस तरह हो जाता है।
class User_controller
{
function login()
{
$form = new LoginForm(); // this is the class you would create
if ($form->validate())
{
$data = $this->user_model->getUserData($form->userid);
// form processing complete, use the main "user" model to fetch userdata for display,
// or redirect user to another page, update your session, anything you like
} else {
$form->display();
}
}
}
फॉर्म क्लास में डिस्प्ले विधि अपना स्वयं का दृश्य लोड करती है, और पोस्ट बैक डेटा वांछित के रूप में पॉप्युलेट करती है। इसके बाद के संस्करण का उपयोग करके, वहाँ कुछ फायदे हैं:
यदि प्रपत्र प्रदर्शित करने या प्रसंस्करण परिवर्तन की जरूरत है अपने मुख्य नियंत्रक को बदलने की जरूरत नहीं है।
आप या तो
नियंत्रक स्वच्छ रहता है अपने उपयोगकर्ता मॉडल बदल सकते हैं और मुख्य पृष्ठ पर तर्क संभाल
उपयोगकर्ता मॉडल की साफ रहता है और केवल डाटाबेस के साथ सूचना का आदान प्रदान करने की जरूरत नहीं
ढांचे को स्वयं अपडेट किया जा सकता है ताकि वेबफॉर्म को
$ यह-> loa का उपयोग करके लोड किया जा सके। डी> प्रपत्र ("के लिए लॉग इन"); ......
हालांकि, यह केवल एक सुझाव है जो कोडिनेटर टीम के लिए उपयोगी है।