MVC Architecture
MVC क्या है
MVC यानी Model, View, Controller — app को तीन हिस्सों में बाँटकर व्यवस्थित करने का तरीका, हर एक का एक काम। database code, logic और HTML मिलाने वाली एक विशाल file के बजाय, MVC इन्हें अलग और साफ़ रखता है। लगभग हर आधुनिक PHP framework इसी pattern पर बना है।
Model (data)
Model data संभालता है — database से बात करना और नियम लागू करना।
<?php
class UserModel {
public function getUser($id) {
// database से लाना (PDO से)
return ["id" => $id, "name" => "Aman"];
}
}
?>
सिर्फ़ Model database को छूता है। "data क्या है और कैसे लाना है" के बारे में सब कुछ यहाँ, एक जगह रहता है।
View (display)
View वो है जो user देखता है — HTML, data से भरा।
<!-- user_view.php -->
<h1>Welcome <?php echo $name; ?></h1>
View सिर्फ़ दिखाता है; इसमें कोई database code और थोड़ी logic होती है। इसका मतलब designer app के दिमाग़ को छुए बिना दिखावट बदल सकता है।
Controller (logic)
Controller बीच का जोड़ है: यह request लेता है, Model से data माँगता है, और View चुनता है।
<?php
class UserController {
public function show($id) {
$model = new UserModel();
$user = $model->getUser($id);
$name = $user["name"];
include "user_view.php"; // View दिखाओ
}
}
?>
Controller "क्या करना है" logic रखता है पर कोई SQL और HTML नहीं — यह Model और View में तालमेल करता है।
Request कैसे बहती है
- User
/user/5जैसे URL पर जाता है। - Controller इसे पाता है और id (5) पढ़ता है।
- यह Model से user 5 का data माँगता है।
- वो data View को देता है।
- View HTML render करता है, जो browser को भेजा जाता है।
हर हिस्से ने अपना काम किया — data, तालमेल, display — और दूसरों के रास्ते से हटा रहा।
MVC क्यों इस्तेमाल करें
- अलगाव। database code छुए बिना layout बदलिए।
- टीमवर्क। designer Views edit करे जबकि developer Models।
- दोबारा इस्तेमाल। एक Model कई Views को data दे सकता है।
- Maintainable। हर हिस्से का एक काम होने पर bugs ढूँढना आसान।
आम गलतियाँ
- Controller या View में SQL डालना। Database code सिर्फ़ Model में।
- View में भारी logic। Views को ज़्यादातर दिखाना चाहिए, फ़ैसला नहीं।
- सब कुछ करता "मोटा" Controller। data काम Model में ले जाइए।
- यह सोचना कि framework चाहिए। MVC एक pattern है जो plain PHP में लगा सकते हैं।
सारांश
- MVC app को Model, View और Controller में बाँटता है।
- Model = data और database; View = HTML जो user देखता है।
- Controller = logic जो Model और View जोड़ती है।
- Request बहती है Controller → Model → View → browser।
- MVC बड़े projects को व्यवस्थित और maintain करने में आसान रखता है।
आगे, classes साफ़ load कीजिए autoloading से, या उन्हें व्यवस्थित कीजिए namespaces से।
