For Android device For iOS device
២៥
តុលា

Model-View-Controller (MVC) ក្នុង​ការ​បង្កើត Web Application

កែ​សម្រួល​អត្ថបទឡើងវិញ ថ្ងៃ​១៦ ខែសីហា ឆ្នាំ ២០១៦

♦ អ្វីទៅជា MVC?

MVC (មកពី​ពាក្យពេញថា Model-View-Controller) គឺជា​គំរូ​សម្រាប់​ការ​បង្កើត application ដែល​ចែកជាបី​ផ្នែក​ធំៗ​គឺ៖

1. Model ៖ ជាអ្នក​ធ្វើការ​ជាមួយ data ។

2. View ៖ ជាអ្នក​បង្ហាញ​លទ្ធផល​ ​ដែល​បាន​មកពី​ Controller ​ដែល​ទៅ​ទាញយក​ data ​មកពី​ model ដើម្បី​បោះ​ទៅកាន់​ View 

3. Controller ៖ ជាអ្នកទទួលខុសត្រូវលើការ request របស់អ្នក​ប្រើ ហើយ​បញ្ចូន​ការ request ទាំងនោះ​ទៅ View និង Model ដែល request ត្រូវការ​ប្រើ ។  

​ដំណើរ​ការនៃការ​ធ្វើការ request របស់ Application ​ដែល​ប្រើ​ MVC

​ខាងលើ​នេះជា​ដំណើរ​ការរបស់ MVC ដែល​បង្ហាញ​ជាគោលធំៗ ។

ឥឡូវ​ខ្ញុំ​សូមនិយាយ​លម្អិត​ពី​ដំណើរ​ការរបស់ MVC ជាមួយនឹង​ឧទាហរណ៍ជាក់ស្តែង ។ មុននឹងនិយាយពីឧទាហរណ៍​នេះ​សូមមើលរូប​ខាងក្រោម​៖

​ដំណើរ​ការនៃការ request របស់ MVC

ឧទាហរណ៍៖

•  អ្នក​ប្រើ​បើក browser រួចវាយ URL http://mysite.com/video/show/15 (នេះជាការ request របស់អ្នក​ប្រើ​)

•  Web server (ដួចជា Apache, IIS, WEBrick ។ ល ។ ) ជាអ្នកទទួល request របស់អ្នក​ប្រើ រួច​បញ្ចូន (routes) ទៅ controller ដែល​ត្រូវនឹងការ request (default route pattern គឺ “/controller/action/id”) ដែល​ក្នុង​ករណី URL ខាងលើ​នេះគឺ controller = video, method = show, id = 15 ។ បន្ទាប់មក web server ប្រើ dispatcher ដើម្បី​បញ្ចូល​ទៅ controller “video” រួចហៅ method “show” ដោយបោះ​តម្លៃ “15” ទៅ​ឲ្យ parameters id ។

• Controllers ជាអ្នក​ដំណើរ​ការ parsing user requests, data submissions, cookies, sessions និង “browser stuff” ។ ក្នុង​ករណីរបស់យើង method “show” ក្នុង controller “video” ដឹងពីការងាយ​ដែល​ត្រូវ​ស្វែងរក video ដោយវាទៅសួរ model ដើម្បី​រក video ដែល​មាន id = 15 សម្រាប់​ផ្ដល់​ឲ្យ​អ្នក​ប្រើ ។

• Models គឺជាកូដ classes ដែល​ទាក់ទងទៅ database ដែល​ធ្វើការ​ដូចជា store and validate data, perform the business logic និង​ការងារ​ផ្សេងទៀត​ទាក់ទងនឹង data ។ ក្នុង​ករណីនេះ model នឹង​ទាញយក video ដែល​មាន id = 15 ពី database ។

• Views គឺជាអ្វី​ដែល​អ្នក​ប្រើ​នឹងឃើញ (​ប្រើ HTML, CSS, XML, Javascript, JSON) ។ ក្នុង​ឧទាហរណ៍នេះ controller នឹង​ឲ្យ video id = 15 ទៅ view ដែល​មាន​ឈ្មោះ “show” ដើម្បី​បង្ហាញ ។

• Controller បញ្ចូន​មកវិញ​នូវ body (HTML, XML, etc.) និង metadata (caching headers, redirects) ទៅ server ។ Server បញ្ចូល data ខាងលើ​ចូល​គ្នា​រួច​បញ្ចូន​ទៅអ្នក​ប្រើ ។

និយាយសង្ខេបមក MVC គឺជារបៀប​ក្នុង​ការ​បង្កើត application មួយ​ប្រភេទ ដែល​បែងចែកការ​សរសេរ​កូដ ជាបី​ផ្នែក​ធំៗ​គឺ Model, View និង Controller ។

នាពេល​បច្ចុប្បន្ន​នេះ MVC ត្រូវបាន​ប្រើ​យ៉ាង​ច្រើន ក្នុង​ការ​បង្កើត Web Application ជា​ពិសេស​ប្រើ​ក្នុង Web Framework ដែល​លោកអ្នក​នឹងឃើញ Web Framework ទាំងនោះ​នៅ​ខាងក្រោម​នេះ ។

♦ ហេតុអ្វីត្រូវ​ប្រើ MVC ?

​ដោយសារ​តែ MVC គឺជា design pattern ដែល​ធ្វើ​ឲ្យ application ងាយស្រួល​ក្នុង​ការថែទាំ, បែកចែកកូដ និង ពន្លឿន​ក្នុង​ការ​បង្កើត តាមរយៈ​ការកាត់​បន្ថយ​ការ​សរសេរ​កូដដ​ដែល​ៗ ។ MVC បំបែក application ទៅជា ៣ ផ្នែក​គឺ models, views, និង controllers ដែល​អាច​ឲ្យ developers និង designers ធ្វើការ​នៅលើ application តែមួយបាន​យ៉ាង​ល្អ ដោយការកែរបស់ developers និង មិនប៉ះពាល់ដល់ designer នោះទេ ។

លើសពីនេះ MVC ជួយ​លោកអ្នក​ងាយស្រួល​ក្នុង​ការ debug ដោយភាគ​ច្រើន​នៃ error គឺ​ទាក់ទងនឹង database ដូចនេះ developer គ្រាន់តែ​មើល​ក្នុង model របស់ URL ដែល request ដោយមិនបាច់ស្មុគ្រស្មាញនឹងកូដនៃការ design នោះទេ ។

♦ ផលវិបាក​ក្នុង​ការ​បង្កើត Web Application ជាមួយ MVC

​តាមរយៈ​អត្ថបទ​ខាងលើ​លោកអ្នក​បានឃើញពីភាពល្អ និង ងាយស្រួល​របស់ MVC រួចហើយ ។ សម្រាប់​លោកអ្នក​ដែល​មិន​ដែល​ជួប MVC ប្រាកដជាពិបាកយល់​ដំណើរ​ការ និង ការ​សរសេរ​របស់វាជាក់ជាមិនខាននោះទេ ។ ប៉ុន្តែ​ប្រសិនបើ​លោកអ្នក​អាច​បង្កើត application ជាមួយ MVC ដោយខ្លួនឯងបានម្តង នោះ​លោកអ្នក​ប្រាកដជាមិនចង់​សរសេរ​កូដតាមរបៀបចាស់ ដែល​អ្នក​ធ្លាប់​សរសេរ​ជាយូរមកហើយនោះទេ ។

កូដ Structure របស់ MVC

​ខាងក្រោម​នេះជា structure របស់ MVC តាម​បច្ចេកវិទ្យា​នីមួយ​ៗ​៖

Structure របស់ CakePHP ដែល​ប្រើ MVC


Structure របស់ RubyOnRails ​ដែល​ប្រើ MVC

♦ Web Framework ដែល​ប្រើ​ប្រាស់ MVC

នាពេល​បច្ចុប្បន្ន​នេះ Web Frameworks ស៊េរីថ្មីៗ​ស្ទើរតែ​ទាំងអស់​បាន​ប្រើ​ប្រាស់ MVC ជា architecture pattern សម្រាប់ application ផ្សេងៗ​លើ framework ទាំងនោះ ។

Web Frameworks ដែល​ប្រើ MVC មាន​ដូចជា​៖

• CakePHP (PHP) ៖ http://cakephp.org 

• Zend Framework (PHP) ៖ http://framework.zend.com 

• Yii (PHP) ៖ http://www.yiiframework.com 

• CodeIgniter (PHP) ៖ http://codeigniter.com 

• Symfony (PHP) ៖ http://www.symfony-project.org 

• ASP.NET MVC ៖ http://www.asp.net/mvc 

• Spring Framework (Java) ៖ http://www.springsource.org 

• RubyOnRails (Ruby) ៖ http://rubyonrails.org 

• Django (Python) ៖ http://www.djangoproject.com 

• Catalyst (Perl) ៖ http://www.catalystframework.org 

• និង Frameworks ជា​ច្រើន​ទៀត

ក្រៅពី Web Frameworks ​ខាងលើ​ ​ក៏​មាន​នូវ​ប្រព័ន្ធ​របស់ Web ជា​ច្រើន​ទៀត ​ដែល​មាន​ជម្រើស​ក្នុង​ការ​បង្កើត​ដោយ​ប្រើ​ MVC ​ដូចជា​៖ Facebook Application Development, Drupal ,AjularJS, WordPress និង​ Joomla ​ជំនាន់​ចុងក្រោយ​

*** រៀបរៀងអត្ថបទដោយ ៖ លោក ឆាយ សម្បូរ​

*** កែ​សម្រួល​អត្ថបទឡើងវិញដោយ ៖ លោក សំ រិទ្ឋី

*** ដកស្រង់ចេញពី​ទស្សនាវដ្ដី​អាន-ANT ច្បាប់​ទី២៩ សម្រាប់​ខែសីហា ឆ្នាំ​២០១១

*** កម្មវិធី Android ថ្មីៗ​របស់អាន-ANT ដែល​ចេញ​ក្នុង​ឆ្នាំ ២០១៦ http://antkh.com/tech/2315

*** សម្រាប់​កម្មវិធី​អានផេឌៀ ដំណើរ​ការ​លើ Windows (ចាប់ពី Windows 8 ឡើងទៅ) អាច Download ដោយឥតគិតថ្លៃ

*** សម្រាប់​ព័ត៌មាន​វគ្គ​សិក្សា​កុំព្យូទ័រ​នៅអាន-ANT http://training.antkh.com/

​សម្រាប់​ព័ត៌មាន​ទំនាក់ទំនងមកយើង​ខ្ញុំ ៖ លេខ​ទូរសព្ទ ០១០ / ០១៦ ៦៦៦ ៦៥៣

ឬ​ Facebook: https://www.facebook.com/anttrainning

Facebook Page: ANT Magazine

Facebook Group: https://www.facebook.com/groups/ANTTrGroup/

website: www.antkh.com

មតិ និង​យោបល់​ទៅលើ​អត្ថបទ​នេះ (តាម Facebook)

ខាងក្រោម​នេះ​ជា​យោបល់​ផ្សេងៗ​របស់​អ្នកទស្សនា