Rain Framework ကုိေလ့လာျခင္း

September 23, 2013
Rain FrameWork ကုိေလ့လာျခင္း
Rain FrameWork ဟာ MVC စနစ္သံုး PHP Framework တစ္ခုျဖစ္ပါတယ္ ။
သူက စြမ္းေဆာင္ရည္ ေကာင္းမြန္သလိုသံုးရတာလည္းလြယ္ပါတယ္ ။
အဓိကကေတာ့ ေပါ့ေပါ့ပါးပါး သံုးႏိုင္တာပါပဲ ။ သူ႕ရဲ႕တည္ေဆာက္ပံုကလည္းရိုးရွင္းလြယ္ကူ
လွပါတယ္ ။ ကၽြန္ေတာ္တို႕အသံုးခ်ရမွာက Loader ရယ္ Controller ရယ္ Views ရယ္
အဲဒီဖိုဒါသံုးခုကုိ ပဲ အသံုးခ်ရမွာပါ ။ ေအာက္ကပံုစံေလးကုိၾကည့္ၾကည့္ပါ ။

                                     Models
                                ^
                               |
UserInput         >     Loader ----->  Controllers ----->Views

Loader
သူက ဒီ Framework ရဲ႕ အသည္းႏွလံုးလိုပါပဲ ။သူက System folder ထဲဲမွာရွိပါတယ္
    * get the input

    * include libraries

    * init settings

    * connect database

    * authenticate the user

    * load the controller, selected by the user with the URI (es index.php/news/list/)

    * draw the output စတ့ဲလုပ္ငန္းစဥ္ေတြ ေခၚသံုးဖို႕ ကုတ္ေတြသူ႕ထဲမွာပါ၀င္ေနသလုိအကူအညီ
ေပးမယ့္ တစ္ျခား ဖိုင္ေတြနဲ႕လည္းခ်ိတ္ဆက္ထားပါတယ္ ။
Controller
သူက ၀န္ထမ္းတစ္ေယာက္နဲ႔ တူပါတယ္ ။Models ထဲကျပန္ယူရမယ့္အခ်က္အလက္ေတြယူတာနဲ႕ Views ထဲ
က Output ေတြ ထုတ္ေပးတာေတြကုိေဆာင္ရြက္ပါတယ္။
Models
သူက Database ထဲက အခ်က္အလက္ေတြ ထုတ္တာသြင္းတာ လုပ္ေပးပါတယ္။
Views
HTML Template ကုိဒီထဲမွာေရးပါတယ္ ။Browser မွာေဖာ္ျပမွာေတြကုိဒီမွာေရးပါတယ္။
ဒီလို ဖိုင္တစ္ခုခ်င္းစီရဲ႕အလုပ္လုပ္ပံုနဲ႕သေဘာသဘာ၀ကုိသိၿပီးၿပီဆိုရင္ က်ဴတိုရီယယ္ေလးတစ္ခုေလာက္စမ္း
ၾကည့္ၾကစို႕ (ဆက္ရန္.....)

ပထမ Rain Framework ကုိဒီကေနေဒါင္းလိုက္ပါ ။ၿပီးေတာ့ Zip ေျဖလိုက္ ။ ဒါဆို ဖိုင္ႏွစ္ဖိုင္ထြက္လာလိမ့္မယ္
_MACOSX ဆိုတဲ့ဖိုင္က Mac အတြက္ ျဖစ္ပါတယ္ ။ Mac သမားမဟုတ္ဘူးဆိုရင္ေတာ့ ဖ်က္ပစ္လိုက္ႏိုင္ပါတယ္ ။
ေနာက္တစ္ဖိုင္ကုိ နာမည္ျပင္ခ်င္ျပင္လို႕ရပါတယ္ ။ၿပီးရင္ေတာ့ Web Server ထဲ သြားထားလိုက္ပါေတာ့ ။
ၿပီးရင္ Server ကုိ Run ၿပီး Browser ကေန Localhost/rainframework ကုိလွမ္းေခၚၾကည့္ ။
Error Message ကုိေတြ႕ပါလိမ့္မယ္ ။Error မွာ Server=Loaclhost ,User=root ,Password= သံုးမယ္
ဆိုတာေလးကုိ ေတြ႕ရပါလိမ့္မယ္ ။ ဒါဆိုရင္ သူ႕Server Setting က ကုိယ့္Server Setting နဲ႕ မကုိက္လို႕ျဖစ္တယ္ဆိုတာ
ခန္႕မွန္းလို႕ရေလာက္ပါတယ္ ။Wamp သမားဆိုရင္ေတာ့ WWW ထဲ Xampp သမားဆိုရင္ေတာ့ htdocs ထဲ သြား
ၿပီး rainframework>config >db.php ကုိ Notepad ++ နဲ႕ဖြင့္ၾကည့္လိုက္ပါ ။
သူ႕ကုတ္က ေအာက္ကအတိုင္းပါ ။
<?php

    // default database   

    $server = "mysql";
    $hostname = "localhost";
        $username = "root";
    $password = "root";
    $database = "rainframework2";

    if( !defined("DB_PREFIX" ) )
        define( "DB_PREFIX", "RAIN_" );
   
?>
ကၽြန္ေတာ္တို႕ Server ကုိ Default အတိုင္း Install သြင္းခဲ့ရင္ UserName = "root" နဲ႕ Password="" အျဖစ္၀င္သြားမွာပါ ။
အဲဒီိေတာ့အဲဒီကုတ္ေတြကုိ ျပန္ျပင္ရမွာျဖစ္သလို PHPMyadmin ထဲမွာလည္း database တစ္ခုေဆာက္ေပးရမွာျဖစ္ပါတယ္ ။
ကၽြန္ေတာ္ကrain နာမည္နဲ႕ database တစ္ခုေဆာက္ၿပီး ဒီလိုျပန္ျပင္လိုက္ပါတယ္ ။
<?php

    // default database   

    $server = "mysql";
    $hostname = "localhost";
        $username = "root";
    $password = "";
    $database = "rain";

    if( !defined("DB_PREFIX" ) )
        define( "DB_PREFIX", "RAIN_" );
   
?>
အခု Loaclhost မွာျပန္ေခၚၾကည့္ပါဦး ။ ရပါၿပီ ။ ဒီလိုေပၚေနပါၿပီ ။
သူ႕ရဲ႕ထူးျခားခ်က္က execution time: နဲ႕ memory used:  ကုိေဖာ္ျပေပးထားတာျဖစ္ပါတယ္ ။
ျမင္ေနရတဲ့ဆိုက္မွာ charts , content , form , test ဆိုၿပီး Nevigate Menu ေလးခုရွိပါတယ္ ။
Server ထဲျပန္ၾကည့္ၾကည့္မယ္ဆိုရင္ rainframework>app>controllers  ထဲမွာလည္း
charts , content , form , test ဆိုတဲ့ folder ေလးခုကုိေတြ႕ရပါလိမ့္မယ္ ။
Controller ထဲက folder ကုိ menu အျဖစ္ျပတာဆိုတာ သတိထားမိပါလိမ့္မယ္။ 
ဒါကလက္ရွိ Rain Framework အတြက္ပါ။ MVC(Model,View,Controller)အားလံုးအတြက္ေျပာရရင္
 Model ဆိုတာ data insert-update စတဲ့အပိုင္းကုိတာ၀န္ယူေပးပါတယ္ ။View က User Interface
ျဖစ္ၿပီး Controller ကေတာ့လိုအပ္သလို ထိမ္းေက်ာင္းေပးတဲ့ ပံုစံမ်ိဳးကုိ ဆိုလိုတာျဖစ္ပါတယ္။
ပထမ charts ဖိုဒါထဲက charts.php ကုိဖြင့္ၾကည့္ရေအာင္ ။
သူ႕ကုတ္ရဲ႕ ပထမဆံုးမွာ -
class Charts_Controller extends Controller{
//Code
} ကုိေတြ႕လိမ့္မယ္။ သူက Controller ဆိုတဲ့ Class ကုိ extends လုပ္ထားတယ္ ။Controller ကေတာ့
System  ေအာက္က Library ထဲမွာရွိပါတယ္ ။ အဲဒီထဲမွာ form , function ,  loader ,rouder စတဲ့
PHP ဖိုင္ေလးေတြလည္းေတြ႕မွာပါ ။System Folder ထဲမွာက Developer မပင္ပန္းေအာင္လို႕ ေျပာင္း
လြယ္ျပင္လြယ္ အသံုးခ်ဖို႕လိုမယ္ထင္သမွ် Class ေတြ Function ေတြ ကုိ Framework တည္ေဆာက္သူက
ကဖန္တီးထည့္သြင္းေပးထားတာပါ ။အဲ့ဒါၿပီးရင္ေတာ့
Function တစ္ခု ေရးပါတယ္ ။ အဲဒီမွာ
$chart_pie = $chart_line = null;

ဆိုၿပီး Variable ႏွစ္ခုေၾကျငာပါတယ္ ။ၿပီးေတာ့
           
                   
$this->load_library("Charts");
   
load_library()  function က Controller ထဲမွာ ေရးၿပီးသားရွိပါတယ္ ။
သူက library ထဲကေရးၿပီးသား php ဖိုင္ကုိလွမ္းေခၚၿပီး အလုပ္လုုပ္ခိုင္းပါတယ္။
ဘယ္လိုဆိုတာသိခ်င္ရင္ေတာ့ Controller ထဲသြားဖတ္ၾကည့္ပါ ။ ကြန္နက္ရွင္စစ္ထားတာေတြကုိပါ
ေလ့လာၾကည့္လို႕ရပါလိမ့္မယ္ ။ဒါဆို Charts.php ကုိခိုင္းထားၿပီးၿပီလို႕သိရပါမယ္ ။
ထပ္ၾကည့္ရေအာင္ ။
$data = array( array('OSX', 10), array('Win', 3 ), array('Unix', 7 ) );
           
$this->Charts->set_data($data) ;
   
set_data() function ကေတာ့ Charts.php ထဲက ျဖစ္ၿပီး array တန္ဖိုးထည့္သြင္းတဲ့အလုပ္လုပ္ေပးပါတယ္။
ဒါက Windows,Mac,Linux အတြက္ value သတ္မွတ္တာ ပါ ။
ေနာက္ထပ္ ေတြ႕ရမွာက            
$this->Charts->load_csv( WEBSITE_DIR . "assign_execution_time.csv" ) ;
           
$chart_line = $this->Charts->draw_line();
အေပၚကဥပမာအတိုင္းပါပဲ ။ Charts.php ထဲက load_csv() ကုိသြားဖတ္ၾကည့္လိုက္ပါ ။က်န္ေနတာက
$tpl = new View;
$tpl->assign( "chart_pie", $chart_pie );
          
$tpl->assign( "chart_line", $chart_line );
           
$tpl->draw( "charts/charts" );
ေဖာ္ျပထားတဲ့ Coding ထဲက new View ဆိုတာက
View Class ရွိၿပီးသားမို႕လို႕သာ တစ္ခါတည္း Object ေဆာက္တာလို႕သိရပါမယ္ ။
ဒီေတာ့ဒီမွာျပထားတဲ့ Coding ေတြဟာတစ္ဖိုင္နဲ႕တစ္ဖိုင္ခ်ိတ္ဆက္ထားတာျဖစ္လို႕ အခုမွစေလ့လာမယ့္
သူငယ္ခ်င္းေတြ အတြက္ဘာမွန္းမသိျဖစ္ေစမွာအေသအခ်ာပဲျဖစ္ပါတယ္ ။
ဒါေပမယ့္အခုလိုတစ္ဆင့္ခ်င္းဆီျပန္ေျဖၾကည့္ရင္ တစ္ျဖည္းျဖည္းနားလည္လာပါလိမ့္မယ္ ။
ဒီလိုေရးၿပီးသား Code တစ္ခုကုိ အခ်ိတ္အဆက္မိေအာင္ျပန္ေလ့လာတာကုိ Reverse Engineering လို႕
ေခၚႏိုင္တယ္ဆိုၿပီးစာအုပ္တစ္အုပ္ထဲဖတ္ဖူးပါတယ္ ။အခုရွင္းျပေနတာကလည္း ဒီပိုစ္ကုိဖတ္မိတဲ့ သူငယ္
ခ်င္းေတြ အေနနဲ႕ Self Study Skill တတ္လာေစဖို႕ ထည့္သြင္းရွင္းျပေနတာပါ။
ဆက္ေလ့လာရအာင္
assign နဲ႕ draw ဟာ View.php ထဲမွာ ဖန္တီးၿပီးသား function ေတြလို႕သိရပါမယ္ ။
chart_pie တို႕ chart_line တို႕ ဟာ database ထဲကလာမယ့္ ေဒတာေတြျဖစ္လိမ့္မယ္
ဆိုတာနားလည္ေလာက္ပါတယ္ ။ ေလာေလာဆယ္မွာေတာ့ အဲဒီေဒတာေတြ မရွိေသးဘူးေပါ့ ။
ေနာက္ထပ္
app>views>chats>chats.html မွာသြားၾကည့္ၾကည့္ပါ HTML နဲ႕ေရးထားတဲ့အထဲမွာ
ႀကီးႀကီးမားမားဘာမွမရွိပါဘူး ။PHP စာမ်က္ႏွာကလာမယ့္ chart_pie နဲ႕ chart_line ကုိေနရာခ်ထား
ယံုေလးပဲဆိုတာေတြ႕ရပါလိမ့္မယ္ ။
ဒီေတာ့ Browser ကေန ဒီစာမ်က္ႏွာကို လွမ္းေခၚတဲ့အခါ View folder ထဲက ဒီဇိုင္းအျပင္အဆင္ေတြနဲ႕
Controller ထဲကေန ခိုင္းေစညႊန္ၾကားတဲ့အတိုင္းေဒတာေတြကုိ ထည့္သြင္းေဖာ္ျပေနမွာျဖစ္ပါတယ္။
ေျပာင္းလြယ္ျပင္လြယ္ျဖစ္ေစဖို႕ အခ်က္အလက္ေတြကုိ ဖိုင္ေတြ အမ်ားအျပားခြဲေရးထားၿပီးလိုအပ္သလိုေခၚယူ
အသံုးျပဳသြားတာေတြ႕ရပါလိမ့္မယ္ ။
အခုေတာ့ဒီေလာက္နဲ႕နားပါဦးမယ္ ။
 

JSON

September 23, 2013

JSON ဆိုတာ JavaScript Object Notation ကုိေခၚတာပါ ။ JSON ကုိ Web applications ေတြမွာ အဓိကသံုးပါတယ္။
စာသားအခ်က္အလက္ေတြကုိ User ဆီမွာ ျမန္ျမန္ဆန္ဆန္Out put ေဖာ္ျပေပးႏိုင္ဖို႕အတြက္ အဓိကသံုးပါတယ္ ။
 ဒီလိုေဖာ္ျပ တဲ့ေနရာမွာ JSON မ...
Continue reading...
 

PHP mail() function အသံုးျပဳျခင္း

September 23, 2013
mail() function အသံုးျပဳျခင္း
PHP မွာ Built In ပါၿပီးသား mail function ကုိ အသံုးျပဳၿပီး လြယ္လြယ္ကူကူ
ေမးလ္ပို႕လို႕ရပါတယ္ ။ Coding ကေန ပို႕တာျဖစ္လို႕ Gmail သံုးသလိုေတာ့
Form Design ေတြေတာ့မပါေသးပါဘူး။ အဲ့ဒါေတြက HTML ,CSS အပိုင္...
Continue reading...
 

Enum and Structure

September 23, 2013


VB နဲ႕ပဲဥပမာျပေပးလိုက္မယ္ ။ ဒါေပမယ့္ C# ျဖစ္ျဖစ္ Java ျဖစ္ျဖစ္  သေဘာတရားကေတာ့ တူတူပါပဲ ။
Private enum Sports as integer
football =0
basketball =1
volleyball=2
end enum
ဒါဆို Enum တစ္ခု ဖန္တီးၿပီးၿပီ ။ ျပန္ေခၚသံုးမယ္ဆိုရင္
Private mySport as Sports ဆိုၿပီး variab...


Continue reading...
 

PHP ရဲ႕အေကာင္းဆံုးအရည္အေသြးေတြ

September 23, 2013

PHP ရဲ႕အေကာင္းဆံုးအရည္အေသြးေတြ


၁။PHP ကုိ cross-platform အေနနဲ႕ အသံုးျပဳႏိုင္မွာျဖစ္ပါတယ္။ သေဘာတရားကေတာ့ Windows,Linux,Unix, Mac,Solaris စတဲ့ Platform ေတြမွာ အသံုးျပဳႏိုင္မွာျဖစ္ပါတယ္ ။
၂။PHP ဟာ Free of Charge ျဖစ္ပါတယ္ ။ PHP ကုိသံု...


Continue reading...
 

Starting SVG

June 6, 2013
SVG  ဆိုတာ Scalable vector Graphics ရဲ႕ အတိုေကာက္ျဖစ္ၿပီး Web ေပၚမွာ Graphical ဒီဇိုင္းေတြနဲ႕ Animation
ေတြပံုေဖာ္ေပးဖို႕အတြက္အသံုးျပဳတဲ့နည္းပညာတစ္ခုျဖစ္ပါတယ္ ။
SVG ဟာ Vectors Picture အေပၚမွာအေျခခံၿပီးဖန္တီးထားတာျဖစ္ၿပီး ...
Continue reading...
 

Best framework for 2013

June 5, 2013
PHP ကုိ ရိုးရိုး Pure ေရးတာထက္စာရင္ Framework သံုးၿပီးေရးတာက
ပုိမိုရွင္းလင္း ၿပီး ပိုမိုလြယ္ကူေစတာ မျငင္းႏိုင္ပါဘူး ။ Framework တိုင္း
ဟာ MVC pattern ကုိလိုက္နာပါတယ္ ။ တစ္ခ်ိဳ႕ Framework ေတြက
Performance ေကာင္းသလို၊တစ...
Continue reading...
 

History of PHP

June 5, 2013
1994 ခုႏွစ္မွာနည္းပညာသမားတစ္ဦးျဖစ္တဲ့ Rasmus Lerdorf ဟာ သူ႕ရဲ႕ Perl CGI Script
ေတြကုိသိပ္သေဘာမက်ျဖစ္တာနဲ႕ ကုိယ္ပိုင္ Script Language တစ္ခုကုိ ဖန္တီး အသံုးျပဳခဲ့
ပါတယ္ ။အဲဒီ Language ကုိသူက Perl Script ေတြကုိေပါင္းစပ္ဖန္တီ...
Continue reading...
 

Domain and Hosting အေၾကာင္းသိေကာင္းစရာ

June 4, 2013
Domain Name ဆိုသည္မွာ Internet ေပၚတြင္ရွိေသာ တစ္စံုတစ္ဦး၏ ကုိယ္ပိုင္လိပ္စာပင္ျဖစ္သည္။ အခ်ဳိ့က Internet ေပၚရွိ Real Estate ပာုပင္တင္စားၾကသည္။

.com, .net, .org ႏွင့္ .biz တုိ့မွာ Domain Extension အမ်ားအျပားရွိသည့္အနက္ ေပၚျပဴလာ...

Continue reading...
 

Free Education

June 4, 2013
မူၾကိဳမွသည္ ဘြဲ႔ရတဲ့အထိ ပညာလမ္းေၾကာင္းကို ျပန္ေလ့လာၾကည့္ရင္ အလြန္ခက္ခဲ ပင္ပန္းတယ္လို႔ ထင္ရတယ္။ ဒီေန႔ ေခတ္ပညာေရးက မိဘေရာ၊ ေက်ာင္းသားပါ ေအးေအးသက္သာေနရတဲ့ေခတ္မဟုတ္ ပါဘူး။ ပညာဆိ...
Continue reading...
 

About Me


aung aung Web နည္းပညာကုိ ေလ့လာလိုက္စားသူ Freelance Developer တစ္ဦး ။ စိတ္ပါလွ်င္ကဗ်ာေတြစာေတြလည္းေရးတတ္သူ။

Make a free website with Yola