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 တင်ထားပေးပါတယ်။

20 comments:

Mhaw Sayar said...

ဒီဆောင်းပါးကို စောင့်နေတာကြာပြီ။ အရင်တစ်ခေါက် ရေးမယ်ပြောကတည်းကပဲ။

ဆက်ရန်ကို ဆက်စောင့်နေမယ်ဗျာ။ ကျေးဇူး။

Michael Sync said...

cool.. looking forward to read the details soon.. :)

I wanna know one thing.. Why did your project manager choose PostgreSQL over MySQL? It would be great if you can share somethings (e.g comparison or pros/cons or etc) about PostgreSQL.

thanks.

last said...

CodeIgniter ကိုသုံးမယ်ဆိုရင် သူ့မှာက framework တွေဘဲပါတာ ဆိုတော့ Editor တစ်ခုခု သုံးရလိမ့်မယ်။

င်္Free platform ကို target လုပ်တယ်ဆိုရင် Komodo Edit ကိုသုံးကြည့်ပေါ့။ auto Code Completion, project files management တွေပါ ပါဒယ်ဆိုတော့ အရမ်းအဆင်ပြေဒယ်။
http://www.activestate.com/Products/komodo_edit/ မှာ download လုပ်လို့ရတယ်

အလုပ်မှာ Licensed product တခုခု ရှိပြီးသားဆိုရင် တော့မလိုတော့ဘူးပေါ့။

CodeIgnitor နဲ့ဆိုရင်တော့ တစ်နေ့လောက်ရေးရဒါ ကို တစ် မိနစ်နဲ့ရေးလို့ရပြီပေါ့၊ (CSS and Website Design မပါပဲ)

သဉ်ဇာ - Thinzar said...

mbl0gger>> ဟုတ်တယ် မှော်ဆရာရေ.. အဲလိုဘဲ ရေးမယ်ပြောပြီးလည်း ကြာတတ်တယ်။ ဆက်ရေးမယ်ပြောပြီးလည်း ကြာတတ်တာဘဲ။ :)

michael sync>> good point. the project manager did explain to me.. but i almost forgot.. let me rethink back and share in the post.. :)

last>> ဟုတ်ကဲ့။ အခုမှ intro ဘဲရှိသေးလို့။

last said...

CodeIgniter Book
http://www.isbnonline.com/CodeIgniter-for-Rapid-PHP-Application-Development/book/9781847191748/
but first, you need to register to download free of charges. or else they will ask to buy from Amazon.

last said...

Register မလုပ်ချင်သူများ ကျနော့် BOXnet ကနေ Download လုပ်နိုင်ပါတယ်။
http://www.box.net/shared/gtf7lin4kg

Mhaw Sayar said...

လာမြည်းသွားတယ်ဗျ- နောက်တစ်ခေါက် သေသေချာချာလာဖတ်ဦးမယ်။ အခုအကြမ်းဖျင်းပဲ ဖတ်သွားရသေးတယ်။ အသိတွေ မျှဝေပေးလို့ ကျေးဇူးပါပဲဗျာ။ :)

ဘလူးဖီးနစ် said...

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

bluephoenix4 said...

ဝမ်းသာစရာပဲဗျို့ နောက်ဆုံး တော်တော်လေးလုပ်ပြီး ခုရသွားပါပြီ။ mmopenlibrary.com မှာ သွားယူနိုင်ပါပြီဗျာ။

သဉ်ဇာ - Thinzar said...

MBL0GGER>> detail တော့ မရေးထားဘူး။ CI ကို အမြည်းလောက်ဘဲ ရေးထားပေးတာ။ :)

ကိုဘီလူးဖီးနစ်>> စာအုပ်ရှာလိုက်တာ ရေရေလည်လည် မြန်တယ်ဗျာ။ ဒါကြောင့် mmopenlibrary ကို အားကိုးနေရတာ။ ကျေးဇူး အများကြီး တင်ပါတယ်။ ဒေါင်းလုတ် ချပြီးသွားပြီ။ :)

mmgamedev said...

game programming အကြောင်း blog လုပ်ထားပါတယ်၊ လာလည်ပါအုံး http://mmgamedev.blogspot.com/

Yan said...

It's really great to learn something new...

Keep it up, ma thinzar.

I believe in you. Keep on sharing your experience and knowledge...

သဉ်ဇာ - Thinzar said...

Yan>> thanks for your comment :)

José Rafael Pacheco said...

Hello, and at the moment I'm reviewing the Wimax module from NIST, I'd like to review your results reported at FYP.

သဉ်ဇာ - Thinzar said...

José Rafael Pacheco >> okay, after i uploaded my results from FYP, i'll give u a link.
kinda wonder... how do u know that i did my FYP on WiMAX?

José Rafael Pacheco said...

Thinzar, as a matter of fact, is not a wonder since I went to you by google while I was looking for code on wimax simulations with ns-2. And I've been looking for this during 4 weeks day and night..., I have worked well with the simulations but it's kind of difficult to achieve trace analysis. I'd appreciate your info.

Thank you so much.

mmgamedev said...

Wimax implementation for NS-2
http://ndsl.csie.cgu.edu.tw/wimax_ns2.php

သဉ်ဇာ - Thinzar said...

José Rafael Pacheco>> oh, okay. i acknowledge the power of search engines. =)

For trace analysis, we used AWK scripting and few shell scripts from NIST's WiMAX module samples. there are also a few samples in ns2 mailing list. AWK script to calculate throughput This is one of examples that we followed to calculate throughput.

regards,

José Rafael Pacheco said...

Hello again, and thank you so much for your attention.
As I have mentioned I have tried NIST and NDSL wimax module, I performed some awk scripts before but I have a doubt about trace format, since it seems to me they're quite different although I've used in tcl-script: use newtrace. I wonder which would be the right format???
Have a very good day, by the way I'm from Venezuela.

သဉ်ဇာ - Thinzar said...

José Rafael Pacheco >> sorry for a late response. I also used newtrace in my WiMAX simulations. The format is quite different, yaa.. I've used old trace format for previous TCP/IP simulations.. I'm not so sure about what would be the right format. Since the samples in NIST modules use new trace format, I just followed. Have a nice day!! :)

Post a Comment

Please feel free to use any font to comment :)