PHP සමග MVC යොදා ගනිමු
මේ ලිපිය ගැන උනන්දුවක් තියෙන හැමොටම වැදගත් වෙයි කියල හිතන්වා.ටිකක් දිග උනාට කියව්වොත් තමන්ට.මෙක කොපි පේස්ට් නෙමෙ මමයි ලියලා බ්ලොග් එකට දැම්මේ.
මුලින්ම අපි බලමු මොකක්ද මේ MVC (modules-views-controller )කියන්නේ කියලා.මුද්රකාන්ග සන්වර්දන්යේදි අපි ලොකයේ පිලිගත් ක්රමවෙද බාවිතා කරනවා.MVC කියන්නේ ඒ වගේ මුදෘකාන්ග සන්වර්දනයට යොදා ගන්න ක්රම වේදයක් ලොකේ ගොඩක් අය භාවිතා කරන.PHP ඩිවලොප්මන්ට් වලට MVC සමග සම්බන්දයට ලොකු ඉතිහාසයක් නැති උනත් ලොකයේ මුදෘකාන්ග සන්වර්දන ශිල්පීන් MVC බාවිතා කරන්නේ ගොඩක් ඈත කාලයේ ඉදන්.
PHP developing වලට සම්බන්ද අය ගොඩක් ආස කරන framework එකක් තමයි CakePHP කියන්නේ .එක භාවිතා කරන අය නම් නොදැනුවත්ම හො දැනුවත්ම MVC ක්රමය භාවිතා කරනවා.මොකද CakePHP කියන්නේ pure MVC වලින් ගොඩ නගපු framework එකක්.සින්හලේන් මෙක හරියටම විස්තර කරන එක ලේසි වැඩක් නෙමේ.සරලව කිව්වොත් MVC කියන්නේ software architecture එකක් නැත්තම් design pattern එකක්.
MVC pattern එක මුලින්ම ලොකෙට හදුන්වා දුන්නේ 1979 කියන Trygve Reenskaug පුද්ගලයා “Applications Programming in Smalltalk-80: How to use Model-View-Controller” පේපර් එකෙ මගින් .කාලයත් සමග මේ ක්රමය සන්වර්දනය වෙලා අද තියෙන තත්වයට දියුනු වෙලා තියෙනවා.
මේ ක්රමයේදි මුලික අරමුන වෙන්නේ මුදෘකාන්ගයේ තර්කය නැත්තම් ලොජික් (logic) එක මුදෘකාන්ගයේ අතුරුමුහුනතින් (display) වෙන් කරන එක.සරලව මේක PHP වල බාවිතා කරන විදිය කිව්වොත් php පිටුවෙ HTML output වෙන තැන නෙමේයි මේ පිටුවට අදාල සමීකරන්ය නත්තම් logic තියෙන්නේ කියන එක.
මුලින්ම පහත පින්තූරය බලන්න.
MVC වල ප්රතිපත්තිය තමයි ඇප්ලිකශන් එක ප්රදාන කොටස් 3කට බෙදන එක.Model , View සහ Controller ලෙස.
රූප සටහනේ දැක්වෙන්නේ කොහොමද මේ පාර්ශව තුන සම්බන්ද වෙන්නේ කියලා.නොකැඩුනු ඉරි මගින් පෙන්වන්නේ ඇත්ටටම ඇප්ලිකේශන් එකේ සම්බන්දතාවය තියෙන්නේ කියලා.කැඩුනු ඉරි සම්බන්දතාවයෙන් පෙන්වන්නේ උඩින් බැලුවම ට මේකේ සම්බන්දතාවය පේන්නේ කියලා.
සරලව පියවර මගින් මේක විස්තර කලොත්
මුල් ලිපිය
මේ ලිපිය ගැන උනන්දුවක් තියෙන හැමොටම වැදගත් වෙයි කියල හිතන්වා.ටිකක් දිග උනාට කියව්වොත් තමන්ට.මෙක කොපි පේස්ට් නෙමෙ මමයි ලියලා බ්ලොග් එකට දැම්මේ.
මුලින්ම අපි බලමු මොකක්ද මේ MVC (modules-views-controller )කියන්නේ කියලා.මුද්රකාන්ග සන්වර්දන්යේදි අපි ලොකයේ පිලිගත් ක්රමවෙද බාවිතා කරනවා.MVC කියන්නේ ඒ වගේ මුදෘකාන්ග සන්වර්දනයට යොදා ගන්න ක්රම වේදයක් ලොකේ ගොඩක් අය භාවිතා කරන.PHP ඩිවලොප්මන්ට් වලට MVC සමග සම්බන්දයට ලොකු ඉතිහාසයක් නැති උනත් ලොකයේ මුදෘකාන්ග සන්වර්දන ශිල්පීන් MVC බාවිතා කරන්නේ ගොඩක් ඈත කාලයේ ඉදන්.
PHP developing වලට සම්බන්ද අය ගොඩක් ආස කරන framework එකක් තමයි CakePHP කියන්නේ .එක භාවිතා කරන අය නම් නොදැනුවත්ම හො දැනුවත්ම MVC ක්රමය භාවිතා කරනවා.මොකද CakePHP කියන්නේ pure MVC වලින් ගොඩ නගපු framework එකක්.සින්හලේන් මෙක හරියටම විස්තර කරන එක ලේසි වැඩක් නෙමේ.සරලව කිව්වොත් MVC කියන්නේ software architecture එකක් නැත්තම් design pattern එකක්.
MVC pattern එක මුලින්ම ලොකෙට හදුන්වා දුන්නේ 1979 කියන Trygve Reenskaug පුද්ගලයා “Applications Programming in Smalltalk-80: How to use Model-View-Controller” පේපර් එකෙ මගින් .කාලයත් සමග මේ ක්රමය සන්වර්දනය වෙලා අද තියෙන තත්වයට දියුනු වෙලා තියෙනවා.
මේ ක්රමයේදි මුලික අරමුන වෙන්නේ මුදෘකාන්ගයේ තර්කය නැත්තම් ලොජික් (logic) එක මුදෘකාන්ගයේ අතුරුමුහුනතින් (display) වෙන් කරන එක.සරලව මේක PHP වල බාවිතා කරන විදිය කිව්වොත් php පිටුවෙ HTML output වෙන තැන නෙමේයි මේ පිටුවට අදාල සමීකරන්ය නත්තම් logic තියෙන්නේ කියන එක.
මුලින්ම පහත පින්තූරය බලන්න.
MVC වල ප්රතිපත්තිය තමයි ඇප්ලිකශන් එක ප්රදාන කොටස් 3කට බෙදන එක.Model , View සහ Controller ලෙස.
රූප සටහනේ දැක්වෙන්නේ කොහොමද මේ පාර්ශව තුන සම්බන්ද වෙන්නේ කියලා.නොකැඩුනු ඉරි මගින් පෙන්වන්නේ ඇත්ටටම ඇප්ලිකේශන් එකේ සම්බන්දතාවය තියෙන්නේ කියලා.කැඩුනු ඉරි සම්බන්දතාවයෙන් පෙන්වන්නේ උඩින් බැලුවම ට මේකේ සම්බන්දතාවය පේන්නේ කියලා.
සරලව පියවර මගින් මේක විස්තර කලොත්
- පරිශීලිකයා (user – සින්හලෙන්ම කිව්වොත් නිකන් කුනුහරුප වගේ නේද?) සම්බන්ද වෙන්නේ හැම වෙලේම View එක සමග පමනයි.එයා දන්නේ නැ ඇප්ලිකේශන් එක තුල අනික් පර්ශව දෙකකුත් සම්බන්දයි කියලා.- උදා යූසර් වෙබ් පිටුවේ තියෙන ලින්ක් එකක් ක්ලික් කිරීම.
- මේ යුසර්ගේ ඉන්ටෙරක්ශන් interaction එක නැත්තම් හැසිරීම හදුනා ගන්නේ Controller මගින් සහ මෙම රික්වෙස්ට් (request ) එක නැත්ට්ම ඉල්ලිම එක Controller මගින් Model එකට පාස් කරනවා.
- ඊට පස්සේ Model එක මගින් මේ ඩේටා අරගෙන එකට අදාල දේ කරන්නේ උදාහරෙනකට මොඩෙල් එක තමයි මේ ඩේටා ඩෙටාබේස් එකට සේව් කරන්නේ.
- පසුවView එක මගින් මොඩෙල් එකට කතාකරලා එකේන් වෙන output ඩේටා ඉට අනුව යුසර්ට පෙන්වීම සිදු කරනවා.
- අවසානයේ නැවත View එක යුසර්ගේ අලුත් හැසිරීමක් වෙනකන් බලන් ඉන්නවා.
- Model – Model කියනනේ ඇප්ලිකේශන් එකේ ස්තිර ඩේටා store කරලා තියා ගන්න තැන විදියට ගන්න පුලුවන්.එක හරියට පාලමක් විදියට වැඩ කරනවා View component එක අතර සහ Controller Component එක අතර.මොඩල් එක තාක්ශනිකව ‘අන්ද’ විදියට තමයි හැසිරෙන්නේ.ඒ කියන්නේ මොඩල් එක දත්ත ගබඩා කරලා තියා ගත්තට මොඩල් එකට කිසිම සම්බන්දතවයක් හෝ ඩේටා වලට සිදුවන දේ ගැනදැනුමක් නැ. මොඩල් එක හැම වෙලාවකම හරියට මේ ඩේටා වලට දොරටු පාලකයෙක් විදියට තමයි හැසිරෙන්නේ.
- View - view එක මගින් තමයි මොඩල් එකන් රික්වෙස්ට් කරපු ඉල්ලපු ඩේට යුසර්ට පෙනවන්නෙ සහ ඒ ඩේටා පෙන්වන විදිය තීරනය කරන්නේ.
- Controller - යූසර් විසින් ඉන්පුට් කරන හෝ සබ්මිට් (submit) කරන දත්ත හසුරුවිම සහ ඒ දත්ත වලට අනුව මොඩල් එක යාවත්කාලීන (update) කරන්නේ Controller එක මගින් තමයි.Controller එකට යම්කිසි කාර්යක් කල හැක්කේ යූසර් විසින් පිටුවෙ යම් කාර්යක් කල විටකදි පමනයි.
මුල් ලිපිය


