Skip to main content

MVC-г PHP-д ашиглах нь уу

MVC гэдийг эхлээд тайлбарлавал Model-View-Controller гэсэн 3 үгийн нийлбэр юм байна. Энэ гурван үгийг тус тусад нь орчуулбал:

  • Model-загвар (MySQL, data arrays)

  • View-харагдац (checkbox, text etc)

  • Controller-удирдлага (control the model and view)




MVC-д model нь өгөгдлийг удирдахад зориулагдсан бизнес дүрмийг болон аппликейшны мэдээллийг(өгөгдөл) дүрсэлдэг, view нь текст, сонгох нүд гэх хэрэглэгчийн харагдацийн элементүүдийг тодорхойлдог, controller нь model, view хоёрын хоорондын холбоог удирддаг.


Тэгэхээр MVC нь загвар, харагдац, удирдлагын нэгнийх нь өөрчлөлт нөгөөдөө хамгийн багаар нөлөөлдөг байхаар тусгаарлах зориулалт бүхий програмын архитектур юм. Энэ архитектурыг ашигласнаар хийгдсэн ажилаа сүүлд нь сайжруулах, засварлах, шинэ зүйл нэмэхэд маш хялбар болгож өгдөг сайн талтай.



За тэгээд MVC архитектурыг PHP-д хэрхэн ашиглахыг жишээн дээр үзүүлье. Энэхүү жишээ нь өгөгдлийн сан дахь мэдээг php ашиглан өгөгдлийн сантай холбогдож query-гээр мэдээгээ авч HTML хэлбэрээр дэлгэцэнд гаргаж буй болно.

MVC архитектурыг ашиглаагүй байхад:
<?php
mysql_connect(...);
$result = mysql_query('SELECT * FROM news ORDER BY article_date DESC');
?>
<html>
<body>
<h1>News Articles</h1>
<?php while($row = mysql_fetch_object($result)) { ?>
<h2><?php echo $row->headline ?></h2>
<p><?php echo $row->body ?></p>
<?php } ?>
</body>
</html>

MVC архитектурыг ашиглахад:

Model:


<?php
function get_articles()
{
mysql_connect(...);
$result = mysql_query('SELECT * FROM news ORDER BY article_date DESC');

$articles = array();
while($row = mysql_fetch_objects($result)) {
$articles[] = $row;
}
return $articles;
}
?>

Controller:


<?php
$articles = get_articles();
display_template('articles.tpl');
?>

View:


<html>
<body>
<h1>News Articles</h1>
<?php foreach ($articles as $row) { ?>
<h2><?php echo $row->headline ?></h2>
<p><?php echo $row->body ?></p>
<?php } ?>
</body>
</html>

Доорх нэмэлт материалуудыг уншина уу:

Comments

SE said…
sonirholtoi medeelel bna, thanks

Popular posts from this blog

Нийслэл

Ихэнх хүмүүс Австралийн нийслэлийг Сидней юм уу Мелбоурн гэж боддог байх уул нь Канберра гэж жижиг хот л доо :) бусад далайн эргийн томоохон хотуудаа бодвол эх газар талдаа байдаг 300'000 гаруй хүн амтай амгалан тайван, мод ихтэй хот. Манайхан шиг нийслэлдээ шаваад байхгүй амарийн хэдэн улс төрчид, яам тамгийн газар, гадны элчин сайдын яамдууд нь байдаг мөн томоохон их сургуулиуд, үндэсний гэсэн тодотголтой зүйлс нь байрладаг: Австралийн Үндэсний Их Сургууль, Австралийн дайны дурсгал, Австралийн Үндэсний музей, Үндэсний Галлерей, Үндэсний номын сан, Парламентийн ордон, Шинжлэх Ухаан Техонолгийн төв гэх мэт.

Тасманы арал

Tasmania island нь Австрали улсын нэг муж бөгөөд тивийнхээ урд байрлах арал юм. Энэ удаагын аялалаа усан онгоцоор хийе гэж бодоод Мелбоурнээс Spirit of Tasmania хөлөг онгоцоор 11 цаг явж хүрлээ. Тасманы Девенпорт гэдэг хотод очоод тэндээсээ машин түрээслээд Лансестон хот руу хөлгийн жолоо залсан бөлгөө :P тэнд 1 өдөр Cataract Gorge Reserve, City Park, Design Centre Tasmania зэрэг газруудаар орж үзээд цааш Тасманы нийслэл болох Хобарт хот руу хөдөлсөн тэнд Mount Wellington, Tasmanian Museum and Art Gallery, Royal Tasmanian Botanical Gardens, Battery Point, Salamanca Market зэрэг газруудаар орж үзээд 4 өдрийн аялал маань дууссиймдаа. Ерөнхийдөө Тасманы арал нь хүн ам цөөтэй, намдуу тайван сайхан газар байлээ.  Уулын орой дээрээ цастай ер сэрүүхэндүү газар санагдсан урд туйлтай ойр тэгээд бид хэд бас өвөл нь очсоныг хэлэх үү жоохон даарсаныг эс тооцвол сайхан аялал боллоо.

Аялалд маань хэрэг болсон апп-ууд гэвэл:

airbnb - байрны асуудлаа шийдсэнvroom - машин түрээслэхэд их хэрэг болсон бү…

Download the internet

Миний бараг байнгын хэрэглээ болсон W3School гээд сайт байдийн. Энд бүх л төрлийн веб аппликешн хөгжүүлэхэд зориулсан хичээлүүд байдаг гэж байгаа. Дээрээс нь ямар ч үнэ төлбөргүй учир дураараа үзнэ дээ ;) .

Энд Internet Joke гээд нэг хэсэг байдийн тэрэн дотор:
Customer: "I want to download the Internet. Do I need a bigger hard disk?"


За тэгээд хангалттайхан шиг хард олж аваад интернетийг татаад байждээ :D