MVC (មកពីពាក្យពេញថា Model-View-Controller) គឺជាគំរូសម្រាប់ការបង្កើត application ដែលចែកជាបីផ្នែកធំៗគឺ៖
1. Model ៖ ជាអ្នកធ្វើការជាមួយ data ។
2. View ៖ ជាអ្នកបង្ហាញលទ្ធផល ដែលបានមកពី data របស់ model ។
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 និង WordPress ជំនាន់ចុងក្រោយ ។
ចំណែកឯ Joomla វិញ នៅជំនាន់ 1.6 នេះគឺតម្រូវឱ្យអ្នកបង្កើត Component ប្រើ MVC តែម្តង ៕



9:08 AM
seyha hun
0 comments:
Post a Comment