CODE IGNITER


Code Igniter ဆိုတာ PHP ကို အခြေခံထားတဲ့ web application framework တစ်ခုပါ။ code igniter ကို သုံးပြီး project တစ်ခု လုပ်နေတာ လေးလလောက်ရှိပြီ။ စသုံးဖြစ်ကတည်းက ဒီအကြောင်းရေးမယ် ဆိုပြီး အခုမှဘဲ ရေးဖြစ်တော့တယ်။
Code igniter ကို မသုံးဖြစ်ခင်က ကျမကို web application framework လို့ လာပြောရင် အူကြောင်ကြောင် ပြန်ကြည့်မိပါလိမ့်မယ်။ (အဲလို ဗဟုသုတ ကြွယ်ဝတာ။)

web application တစ်ခုကို သုညကနေ စလုပ်မယ် ဆိုပါစို့။ folder တွေကို ကိုယ့်နည်း ကိုယ့်ဟန်နဲ့ structure လုပ်ရမယ်။ လိုအပ်မယ့် plugin တွေကို ရှာပြီး download လုပ်ရမယ်။ ဘယ် architecture (MVC, Model1, Model2, …) သုံးမလဲဆိုတာ စဉ်းစားရမယ် စသဖြင့် အချိန် တော်တော် ကြာပါတယ်။ သူများတွေ သုံးလေ့ရှိတဲ့ ဥပမာနဲ့ ပြောရရင် ကားတစ်စီး ထုတ်ဖို့အတွက် ကားဘီးကနေစပြီး ပြန်တီထွင်နေတာပေါ့။ (Reinventing the wheels. My favorite lecturer’s favorite quote.)
ဒါကြောင့် နောက်ပိုင်းမှာ web development ကို လွယ်ကူစေဖို့ web application framework တွေ ထုတ်လာတယ်။ လွယ်လွယ်ပြောရရင် framework ဆိုတာ web application တစ်ခု develop လုပ်ဖို့ အခြေခံအကျဆုံး လိုအပ်ချက်တွေ(ဥပမာ - helpers, plugins, data) နဲ့ အသုံးများတဲ့ function တွေအတွက် libraries တွေကို folder တစ်ခုမှာ စုစည်း ထားပေးတာပါဘဲ။ အခုတလော လူတိုင်း ပါးစပ်ဖျားမှာ ရေပန်းစားနေတာကတော့ Ruby-On-Rails(ROR) ပေါ့။ PHP မှာလည်း framework တော်တော်များများ ရှိနေပြီ။ CodeIgniter, CakePHP, Zend စသဖြင့်ပေါ့။

လိုရင်းပြန်ရောက်အောင် တစ်ခြား အကြောင်းတွေကို ရပ်ပြီး code igniter အကြောင်း ဆက်ဦးမယ်။ သူ့ကို စသုံးဖြစ်ပုံက ရုံးမှာ project တစ်ခုကို open-source သုံးပြီး extreme programming ပုံစံနဲ့ develop လုပ်ရမယ့် project တစ်ခု ရှိနေတယ်။ database ကလည်း ကြီးကြီးမားမား တစ်ခုကို handle လုပ်ဖို့ လိုနေတယ်။ ဒီလိုနဲ့ project manager ရဲ့ ဆုံးဖြတ်ချက်အရ PHP နဲ့ PostgreSQL သုံးမယ်ပေါ့။ ပြီးတော့ code igniter framework သုံးရမယ်တဲ့။ ဒီလိုနဲ့ဘဲ စလေ့လာ ဖြစ်သွားတာ။

INSTALLATION

ကိုယ့်မှာ PHP ရယ် ကို်ယ်သုံးမယ့် database တစ်ခုခုကို ကြိုသွင်းထားပြီးပြီဆိုရင် CI ကို သုံးဖို့အတွက် ထွေထွေထူးထူး ထပ်ပြီး install လုပ်စရာ မလိုတော့ဘူး။ Download page ကို သွားပြီး download ပြီး ကိုယ့်ရဲ့ development folder ထဲကို unzip လုပ်ချလိုက်ရုံဘဲ။ development folder သပ်သပ် လုပ်မထားဘူးဆိုရင် Program Files\Apache\htdocs အောက်မှာ folder တစ်ခုလုပ်ပြီး အဲဒီ folder ထဲကို unzip လုပ်လိုက်ရုံပါဘဲ။ ဥပမာ project နာမည်က myNewProject ဆိုရင် CI ရဲ့ directory structure ကို အောက်က ပုံအတိုင်း မြင်ရပါမယ်။


ကိုယ်နဲ့ဆိုင်တာက application အောက်က controllers, models နဲ့ views ဆိုတဲ့ folder တွေပါဘဲ။ MVC (Model-View-Controller) architecture မသုံးချင်ဘူးဆိုရင် controllers နဲ့ views folder တွေကိုဘဲ သုံးလည်း ရတယ်။ ကိုယ့်ရဲ့ design files တွေအားလုံးကို views အောက်မှာ ထားပြီး PHP code တွေ ကို controllers မှာ ရေးရမှာပေါ့။ (model သုံးမယ်ဆိုရင် database queries တွေကို model အောက်မှာ ရေးပြီး controller ကနေ ယူသုံးရမယ်။) CI စစသုံးချင်း URL နဲ့တော့ နည်းနည်း ကြောင်သွားတယ်။ MVC သုံးထားတော့ Java Servlet တွေကို ခေါ်ပုံမျိုးနဲ့ သွားတူတယ်။ အကြိုက်ဆုံးကတော့ configuration တွေ များများ စားစား လုပ်စရာ မလိုလို့။ config အောက်က config.php မှာ host address (e.g., http://localhost/myNewProject) ပေးပြီး database.php မှာ အောက်က အတိုင်း configure လုပ်ရုံဘဲ။

detail တော့ မရေးတော့ပါဘူး။ tutorial link လေးတွေ စုထားတာ တင်လိုက်တယ်။

DEVELOPMENT ENVIRONMENT

IDE အနေနဲ့တော့ pirate version ရရင် Dreamweaver MX ကတော့ အကောင်းဆုံးပေါ့။ ကျမတော့ open-source နောက်လိုက်နေရလို့ EasyEclipse for PHP ကို သုံးပါတယ်။ Java အတွက်တော့ EasyEclipse က တော်တော် နာမည်ရပြီးသားပါ။

နောက်များမှ ကြုံရင် PostgreSQL အကြောင်းနဲ့ CodeIgniter အတွက် အရမ်း handy ဖြစ်တဲ့ Rapyd ဆိုတဲ့ CRUD (Create, Read, Update, Delete) extension အကြောင်း ရေးပါဦးမယ်။

~hApPy PrOgRaMmInG~


References worth to take a look:
CodeIgniter (Home Page)
Comparison of Web application framework (Wikipedia)
Video tutorials at CodeIgniter Home Page
Godbit Project (Introduction to Code Igniter: Part 1)
How I use CodeIgniter's MVC (Jim O'Halloran)
Building a Complete CodeIgniter Application: Part 1 (Jim O'Halloran)
Building a Complete CodeIgniter Application: Part 2 (Jim O'Halloran)
CI Quick Ref Chart (Cheat Sheet)

P.S mmopenlibrary မှာ MrDBA က codeIgniter ebook တင်ထားပေးပါတယ်။


လောကကြီးက ဒီလိုဘဲ

ဒီနေ့ မဟုတ်ရင် မနက်ဖြန်၊ မနက်ဖြန် မဟုတ်ရင် နောက်တစ်နေ့.. ဒီရက်ပိုင်းအတွင်း တစ်နေ့နေ့ တစ်ယောက်ယောက်က လာပြောလိမ့်မည်ဆိုတာ ကြိုသိနေရက်နဲ့ ဘယ်လိုမှ ရှောင်ပုန်းလို့မရတာ။ ဖုန်းနဲ့ပြောတာ ဖြစ်နိုင်တယ်။ sms ထဲလည်း ရောက်လာနိုင်တာဘဲ။ IM တစ်ခုခုမှာလည်း ကြားရနိုင်တယ်။ email ထဲမှာလည်း ဘယ်အချိန် ရောက်နေမလဲ မသိဘူး။ တစ်ပါတ်လုံး ဖုန်းလာရင်လည်း ရင်တထိတ်ထိတ်၊ email ကိုလည်း မချင့်မရဲ စစ်၊ ဖုန်းထဲ message ဝင်ရင်လည်း ဖွင့်ဖတ်ရမှာ ကြောက်နေတယ်။ IM က အဆိုးဆုံးမို့ လုံးဝ ပိတ်ထားလိုက်တယ်။ တကယ်ကို ရင်မဆိုင်ရဲတာ။ နောက်ဆုံးတော့လည်း… ပြန်မရနိုင်တော့တဲ့ ဆုံးရှုံးမှုဆိုတာ ဒါဘဲနေမယ်။ [အဖွားဆေးရုံတက်နေတာ တစ်ပါတ်ကျော်ပြီ။ အားလုံးက ပြောတယ် အခြေအနေ သိပ်မကောင်းဘူးတဲ့။ အကောင်းဆုံးကို မျှော်လင့်ပြီး အဆိုးဆုံးကို ရင်ဆိုင်နိုင်အောင် ကြိုးစားပါတဲ့။ miracle ကို မျှော်နေမိပေမယ့် လောကရဲ့ ရှောင်လွဲလို့မရတဲ့ သဘာဝတရားကိုး။] cry

၁ဝး၃၀PMကျော်နေပြီ။ ရုံးမှာရှိနေတုန်း။ ဘယ်အချိန်မှ ပြန်ရမလဲ မသိဘူး။ မနက်ဖြန်လည်း အစောကြီး သွားရဦးမယ်။ UAT ရယ်။ အမြဲ ဒီလိုဘဲ နှိပ်စက်တော့မှာလား။


Upin & Ipin


Last weekend, I got a copy of an animation titled Upin & Ipin, a story about a 5 year-old twins telling about their first experience of fasting in the month of Ramdhan. It’s a Malay-speaking animation with English sub-titles. I was so attached to it and I can’t stop watching it over and over again till I could memorize most of their conversations.
“Eh, tak baik.. nanti lu punya tuhan marah.”
“mana acik?” “acik dekat India la”
“puasa tak mati kan?”
After I read the news about the production company winning many awards, I mumble to myself, they deserve!! I can’t wait to see the animation film” GENG : THE ADVENTURE BEGINS” which is said to be released in this year.

Upin နဲ့ Ipin ဆိုတဲ့ အမြာွှလေးနှစ်ယောက် အကြောင်းနဲ့ မလေးရှား ရိုးရာကို ထင်ဟပ်ပြထားတဲ့ TV series လေးတစ်ခုပါ။ ၅နှစ် အရွယ် ကလေးလေး နှစ်ယောက်က ဥပုသ်လမှာ ဥပုသ်စောင့်တဲ့ အတွေ့အကြုံကို သူတို့ သူငယ်ချင်းတွေကို ပြန်ပြောပြတဲ့ ပုံနဲ့ ရိုက်ထားတာ။ 3D ပိုင်းရော အရုပ် အသံပိုင်းရော အဘက်ဘက်က ကောင်းလွန်းတဲ့ made in Malaysia animation လေးကို အခေါက်ခေါက်ကြည့် ပြီး ချီးကျူး ပစ်လိုက်တယ်။ ကလေး သဘာဝ ပေါ်လွင်အောင် ရိုက်ထားပြီး နောက်ခံ စကားသံတွေလည်း ကာတွန်း ဇာတ်ကောင်နဲ့ လိုက်အောင်ကို ရွေးထားတယ်။ မလေးရှားရဲ့ တရုတ်၊အိန္ဒိယ၊ မလေးလူမျိုးတွေ စုံအောင် ထည့်ထားတယ်။ ဒီဇာတ်လမ်းတွဲ ပြီးတာနဲ့ အဲဒီ animation ကုမ္ပဏီ ပိစိကလည်း တော်တော် နာမည်ကြီးသွားတယ်။



အပေါ်က အပိုင်း ၁
episode 2, episode 3, episode 4, episode 5 & 6

Ref:
official production blog
Les Copaque Production HomePage


ဆရာစားချန်တယ်ဆိုတာ

ဒီကနေ့ ရုံးက မန်နေဂျာ ပြောတဲ့ စကားလေးတစ်ခွန်းကို သဘောကျလို့ပါ။ သူကမေးတယ်။ တရုတ်ကွန်ဖူးလောက ဘာလို့ မှေးမှိန်သွားသလဲ သိလားတဲ့။ မှေးမှိန်သွားမှန်းတော့ သိတယ်။ (သိုင်းကားတွေအရဆိုရင် ရှေးခေတ်တုန်းက သိုင်းလောကဆိုတာ တကယ်ရှိခဲ့မှာဘဲ။) ဘာကြောင့် သိပ်အရှိန်အဝါမရှိတော့သလဲ ဆိုတာ စဉ်းတော့ စဉ်းစား စရာဘဲ။ ဒါနဲ့ သူကပြောတယ်။
“သိုင်းလောကသားတွေက အမြဲ ဆရာစား ချန်ခဲ့လို့ ဘဲ။ သူတို့က သိုင်းကွက် ၁ဝ ကွက် တတ်ထားရင် တပည့်တွေကို အများဆုံး ၉ကွက်အထိဘဲ သင်ပေးပြီး တစ်ကွက်ကို သူတို့ဖို့ ချန်ထားလေ့ ရှိတယ်။ ဒီလိုနဲ့ နှစ်ပေါင်း ကြာလာတော့ ပျောက်ကွယ်လုမတတ် ဖြစ်သွားတာပေါ့။ အမှန်က ဆရာ ၁ဝကွက် တတ်ရင် တပည့်ကို အကုန်လုံးသင်ပေးပြီး ဆရာက နောက် ၁၁ ကွက် မြောက်ကို တတ်အောင် လေ့လာ လိုက်စားနေမှ တိုးတက်တော့ မပေါ့။ ဒါကြောင့် ဒီကနေ့ခေတ်မှာ ကိုယ်သိတာ အားလုံးကို မျှဝေပေးနိုင်ရမယ်။ ကိုယ်ကလည်း အမြဲ တိုးတက်အောင် ကြိုးစား အားထုတ် လေ့လာနေရမယ်။ ”

သူတွေးမိတာလည်း ဖြစ်နိုင်တယ်။ တစ်နေရာရာက ဖတ်ဖူးတာလဲ ဖြစ်နိုင်တယ်။ ဘာဘဲဖြစ်ဖြစ် အတွေးလေးက မှတ်သားစရာ ကောင်းပါတယ်။ ကျမ ဆရာစား ချန်သော ဆရာတွေနဲ့ တွေ့ခဲ့ဖူးပါတယ်။ တတ်သမျှ အားလုံးကို တပည့်တွေကို မျှဝေလိုသော ဆရာများကိုလည်း ရခဲ့ဖူးပါတယ်။

သင်ဆရာ မြင်ဆရာ ကြားဆရာ အားလုံးကို အစဉ်အမြဲ လေးစားလျှက်...

P.S. ထုံးစံအတိုင်း ဘလော့ဂ်ရေးခြင်းကို တစ်ပါတ်လောက် ရပ်ထားပါဦးမယ်။ razz