DEV Community

Aung Myat Moe
Aung Myat Moe

Posted on • Originally published at aungmyatmoe.me on

How about PHP?

Web Development သည်တိုးတက်လာတာနှင့်အမျှကျွန်တော်တို့တွေမှာလည်းလေ့လာစရာတွေများပြားလာပါတယ်။

Web Technology လို့ပြောလိုက်လျှင်များပြားစွာရှိနေတာကိုတေဎ့ရပါမယ်။ယခုကျွန်တော်ဆွေးနွေးချင်တာက PHP အကြောင်းကိုဆွေးနွေးချင်ပါတယ်။ ကျွန်တော်တို့ကFull Stack Web Development လမ်းကြောင်းကိုသွားချင်တဲ့အခါ Front-End, Backend, Database တွေ Web Serverတွေကိုပါလေ့လာရမှာဖြစ်ပါတယ်။ အဲ့အထဲကနေမှ Backend Programming Language တစ်ခုဖြစ်တဲ့ PHP ကို‌ခုဆောင်းပါးမှာဖော်ပြပေးချင်ပါတယ်။ဘာလို့ဆိုကျွန်တော်လည်း PHP လေ့လာနေလို့ပါပဲ။ :3

What is PHP?

PHP အကြောင်းသေချာမပြောခင်သူ့ရဲ့ History။ လေူအကြောင်းတော့သိသင့်တယ်တယ်။မသိရင်လည်း Wikipedia ကနေကြည့်လို့ရပါတယ်။ ကျွန်တော်လည်းခုပြောပြပါမယ်။ PHP ကို ဒိန်းမတ်ကနေဒါ နိုင်ငံသား Programmar တစ်ဦးဖြစ်တဲ့ Rasmus Lerdorf က C Programming Language ကိုအသုံးပြုပြီးရေးသားခဲ့တဲ့ Programming Language တစ်ခုဖြစ်ပါတယ်။ PHP ရဲ့မူလနာမည်က Personal Home Page ဖြစ်ပါတယ်။ ဘာဖြစ်လို့လဲဆိုရင် သူ့ရဲ့ Website ကိုလာတဲ့ Visitor တွေကို Track လုပ်ဖို့ပဲဖန်တီးခဲ့လို့ဖြစ်ပါတယ်။ ယခုအချိန်မှာတော့ PHP ရဲ့နာမည်က Hypertext Preprocessor ဖြစ်ပါတယ်။ PHP သည် Web Server တွေနဲ့အလုပ်လို့ဖို့အတွက်သီးသန့်ထုတ်ပေးထားတဲ့ Programming Language တစ်ခုနဲ့ဆင်တူပါတယ်။သူ့ရဲ့ Main Target ကလည်း Web Server (eg: Apache,Nginx) တွေနဲ့အလုပ်လုပ်ဖို့ဖြစ်သွားပါတယ်။ PHP ကိုယခုအချိန်မှာဆက်လက်ပြီး PHP Development Team နဲ့ Zend Technologies က Contributor တွေကဆက်ပြီးတော့ Develope လုပ်နေပါတယ်။Maintain တယ်ပေါ့ဗျာ။ PHP ရဲ့Stable Version က 7.4.11 ဖြစ်ပါတယ်။ ယခု PHP 8 ကိုလည်းစမ်းသပ်နေပြီဖြစ်ပါတယ်။ [PHP8 ကို Production အတွက်အသုံးမပြုသင့်သေးးပါဘူး။ Changlog တွေလည်းများသလို Errors တွေလည်းရှိနိုင်ပါသေးတယ်။ from -> php.net] PHP ကို Facebook ကနေ Hack Programming အဖြစ်ယခုအသုံးပြုနေပါတယ်။ Php dialect အဖြစ်ပေါ့။ Php ရဲ့ History ကိုတော့အနည်းအကျဉ်းပဲဖော်ပြပေးလိုက်ပါတယ်။ ယခုဆက်ပြီးတော့ PHP ကိုလေ့လာမယ်ဆိုရင်လေ့လာသင့်လားမလေ့လာသင့်ဘူးလားဆိုတာကိုဆက်ပြီးတော့ဆွေးနွေးပါမယ်။ PHP ကို Developer တိုင်းက Weak ဖြစ်တယ်လို့ပြောပါတယ်။ ဟုတ်ပါတယ် Dynamic Weak လို့အစကတည်းကကြေညာထားပြီးဖြစ်ပါတယ်။ PHP က Web Development အတွက် Main Target ထားတဲ့ Scripting language ဖြစ်ပါတယ်။ PHP ကဘာလို့ Weak ဖြစ်တာလဲ? အဖြေက Type System ကြောင့်ပါ။

Type Systemဆိုတာကကောဘာလဲ?

Computer Programming Language တွေမှသူတို့ရဲ့ ကိုယ်ပိုင် ရေးသားပုံစနစ်ရှိပါတယ်။

Type System မှာ နှစ်ပိုင်းကွဲတယ် Weak နဲ့ Strong ဆိုပြီးတော့။ခုကတော့ Weakအတွက်ပဲပြောပါမယ်။ Weak Programming Language တွေမှာ Developer တွေကိုယ်တိုင်သတ်မှတ်ထားတဲ့ Variable,Syntax ရေးထုံးတွေရှိပါတယ်။ ထို Syntax တွေက Rule ဖြစ်ပါတယ်။ Rule တွေက Loose ဖြစ်နေတဲ့အခါ Runtime မှာ unpredictable ( မခန့်မှန်းနိုင်တဲ့) Result။ တွေ Type Conversion တွေ runtime မှာ implicit ဖြစ်စေလို့ဖြစ်တယ်။ Latin Typing နဲ့လည်းဆက်နွယ်နေပါတယ်။ Latin Typing က Type System တစ်ခုဖြစ်ပြီးတော့ သူ့ရဲ့ type System မှာပါတဲ့ type တွေက value တွေနဲ့ဆက်စပ်ပြီး variable အဖြစ်မဆက်စပ်တာပဲဖြစ်ပါတယ်။ သူ့ပုံစံရေးထားတာ Schema ဖြစ်ပါတယ်။ Schema ကိုယ့်ဘာသာဆက်လေ့လာပါ။

Type System အကြောင်းကို ပိုသိချင်ချင်ရင်https://en.m.wikipedia.org/.../Scheme_(programming_language)

ခု လိုမျိုး တွေကြောင့် PHP ရဲ့ရေးထုံးတွေက Weak ဖြစ်နေရတာဖြစ်ပါတယ်။

Dynamic Typing

Dynamic typing ကလည်း Type System ပါပဲ။ Phpမှာလာ်းအသူံးပြုတယ်။ Dynamic Typing ဘယ်လိုအလုပ်လုပ်လဲဆိုရင် Program Runtime မှာ Process ရဲ့ verify လုပ်ထားတဲ့ Type တွေကိုစစ်တယ်။ Run time မှာ run time object တွေကိုစစ်ဆေးပေးတယ်။ ဉပမာ ပေးရရင် reference type တွေ၊ Polymorphism မှာသုံးတဲ့UpCasting , Down casting တွေ ၊ Early Binding, Late Binding,Reflection တွေနဲ့တူတဲ့ဟာတွေအကုန်ဖြစ်တယ်။ အလွယ်ပြောရရင် OO မှာသုံးတဲ့ကောင်တွေ။ အကာန်တော့မဟုတ်ဘူးပေါ့။ PHP က OO ကို Support လလုပ်ကတည်းက Early Binding,Late Binding တွေနဲ့အလုပ်လုပ်တာပါလာတာပဲလေ။

Type System အကြောင်းကို အသေးစိတ်လေ့လာချင်ရင်https://en.m.wikipedia.org/wiki/Type_system

Php ကဘာလို့ Dynamic Weak ဖြစ်လည်းဆိုတာကို အထက်မှာဖော်ပြပြီးဖြစ်တယ်။ အဲ့တော့ဗျာ ကိုယ်ကအခုမှ လေ့လာမယ့်အရာတွေကိ တစ်ချို့က ဘုမသိဘမသိရမ်းသမ်းပြောတာ ကြောင့် ရောင်လည်လည်ဖြစ်သွားမှာစိုးလို့ Weak နဲ့ Dynamic အကြောင်းကိုဖော်ပြပေးထားတာ။ ဆိုတော့က Weak ဖြစ်ရင်တောင်ဘာလို့ Weak ဖြစ်လဲ ဆိုတာသိမယ်။ တစ် ခြား Programming Language တွေနဲ့ဘာကွာမလဲဆိုတာသိမယ်။ PHP ကိုလေ့လာသင့်လား? Up To You ! ခင်ဗျား စပြီစလေ့လာတဲ့အရာတွေမှာမူတည်တယ်။ ပြီးတော့ ပိုပြီး Friendly ဖြစ်တာကောပါတယ်။ JavaScript ကိုပဲလေ့လာမယ်ဆို MEAN,MERN ပေါ့ဗျာ။ မြန်မာပြည်မှာခေတ်စားနေတယ်လေ။ ဒါပေမဲ့ ပြည်တွင်းရဲ့ Demand က Php နဲ့ Laravel ပေါ်မှာရှိနေတုန်း။ Other Countries ဆိုရင် Japan, Singapore တွေမှာရှိမယ်။ PHP ကိုလေ့လာပြီဆိုရင် ဆိုပါစို့ခင်ဗျားက PHP လေ့လာတော့မယ်ဆိုရင်ဘာတွေလိညအပ်မှာလဲ? အရင်းဆူံးခင်ဗျားလေ့လာခဲ့တာတွေကို ပြန်သုံးသပ်ပါ။ Minimum အနေနဲ့ HTML,CSS, Bootstrap သိရင်ရပြီ။ ကျွန်တော်တော့ Front End ကနေကူးတာဆိုတော့ Design ပိုင်းပါပြောပါမယ်။ Frontend ကိုသေချာပြည့်စုံဖို့ဆိုရင် HTML,CSS,JS, jQuery, Bootstrap လောက်ရရင် စလေ့လာပါ။ Web Development ကိုလေ့လာတယ်ဆိုတာ Roadmap က ရှည်ပါတယ်။ တစ်ခုရရင်လည်းအလုပ်မဖြစ်ဘူး များသောအဖြင့် ပျင်းကြတယ်။ ပျင်းရင်မလေ့လာပါနဲ့။အစမ်းလည်းမလေ့လာပါနဲ့အလုပ်ရှုပ်တယ်။အချိန်ကုန်တယ်။ PHP ကိုစလေ့လာရင် From End မှာလေ့လာဖူးတဲ့ JS ရဲ့ ES5 Concept တွေ Apply လို့ရမယ်။ Syanatx တွေကလည်း လွယ်တယ်။ JS ထက်လွယ်တယ်။ အခြေခံက Beginner ပိုင်းမှာဆိုရင်

  • Syantax
  • Loop
  • Control Flows
  • Array
  • Function
  • Form input control
  • Session & Cookies
  • String Functions
  • Regular Expressions
  • Procedure Mysqli
  • SQL CRUD Project တွေလုပ်ကြည့်ပါ။တစ်ခုပြီးတိုင်း Project တစ်ခုလုပ်ပါ။လွယ်တာကနေစလုပ်ပါ။ Simple ဖြစ်ပါစေ။ ကိုယ်နားလည်ဖို့အရေးကြီးတယ်။ Intermediate ပိုင်းမှာဆိုရင်

OO Basices

  • Class,Properties, Inherit,Access Modifier,Keywords,Constructor and Destructor
  • Interface,Data binding,Early Binding,Late Binding
  • Abract Method,Callback
  • Array walker,Closer,Try Catch Error Handling
  • Polymorphism, Dependency Injection
  • MySqli OO Style,PDO (✓)
  • Relclection API,Method, Property,Class
  • Error Exception
  • Security (✓)
  • MVC (Model View Controller Application Architect or MVC Design Pattern) MVC ကိုအသုံးပြုပြီး Framwork တသ်လုရေးကြည့်ပါ။ ကိူယ့်ဘာသာပြောတာနော်။ Laravel Framwork သုံးပြီးတော့ ငါ MVC ရတယ်လို့မပြောနဲ့‌လေနော့။
  • အဆင့်တွေမကျော်နဲ့။ခွေးဖြစ်တတ်ပါတယ်။စိတ်ဓာတ်ကျတတ်ပါတယ်။ ကျွန်တော်တော့ဖြစ်ပြီးပြီ 😁 ခုဆို သူများရေးထားတာသုံးရမယ့်အချိန်ရောက်ပါပြီ။

Intermediate ++

ခုအချိန်မှာ Popular အဖြစ်ဆုံးကောင် XD -> Laravel Framwork Top1 MVC Framworkပါပဲ။ သူ့ကိုလေ့လာတော့မယ်ဆိုရင် OO Basic ကရကိုရရမယ်။SQL ကို Table Join တာတွေဘာတွေကိုရရပါမယ်။မရရင် Eloquent တွေ Polymorpic Relation တွေကြရင်ထိပါမယ်။ချိတ်တော့ချိတ်လိုက်တယ်။ဘာတွေမှန်းမသိသလိုမျိုးပေါ့။

  • Routing (Facade)
  • Integration With Bootstrap (CDN and Using Locally)
  • Template Engine
  • Php artisan commands
  • Migration, Controller Create,Model
  • Laravel CRUD
  • Raw SQL
  • Eloquents -> OneToOne,HasMany,ManyToMany,hasOne, Polymorpic
  • Session
  • Middleware (Auth and custom create)
  • Use Composer Packages
  • How to Deploy
  • Laravel 8 ကကျွန်တော်သဘောကျတယ်။ Error ပြတာတွေ‌ကိုပေါ့ ကျွန်တော်က 5.6,7.0 သုံးခဲ့တယ်။လေ့လာတဲ့အချိန်မှာ။ ရေးတော့ Latest Version သုံးတယ်။
  • Php Advanced
  • Advanced MVC
  • Design Patterns
  • Design Patterns က 26 မျိုးရှိတယ်။GolF OO စသင်ရင်းနဲ့ Singleton ကိုလေ့လာပြီးဖြသ်မယ်။ အဲ့တော့တသ်ခုရော့တာပေါ့ :3 အဲ့တာတွေရရင်တော့ Source Code တွေလိုက်ဖတ်တော့။ Laravel , Code Inhnightor တို့ဘာတို့ဘယ်လိုတည်ဆောက်လည်းဆိုတာ‌တွေကိုပေါ့ဗျာ။ PHP ကိုလေ့လာရတာသဘောကြလိမ့်နယ်ထင်ပါတယ်။ကျွန်တော် Optional ပြောချင်တာက Apache Server ကိုပါလေ့လာထားပါ။Hosting တွေကောပဲ။ Freehost တွေပေါ်မှာစမ်းတင်ကြည့်ကြပေါ့။ Summary အားဖြင့် [မ] လွယ်ကူရိုးရှင်းတဲ့ PHP ကိုလေ့လာပြီဆိုရင် များလွန်းလို့စိတ်မပျက်လိုက်ပါနဲ့။ဖြေးဖြေးသွားပါ။စိတ်ဓာတ်တွေကျနားမလည်ရင်သီချင်းလေးဘာလေးနားထောင်အဲ့နေ့နားလိုက်။ Larvel အထိကို တစ်နေ့လျှင် ၂ နာရီအချိန်ပေးလေ့လာရင်ရပါတယ်။ May be 6 Months ။ သင်တန်းတွေနဲ့ပတ်သက်လို့ သင်တန်းတက်မယ်ဆိုရင်။ Overview သင်ပေးနိုင်မယ့်အတန်းတွေတက်ပါ။ သင်တန်းချိန် ၃ လအတွင်းခင်ဗျား အလွန်ဆုံးကျွမ်း Instructor။ ရေးသလိုလိုက်ရေးတတ်ယုံပဲ။ ကိုယ့်ဘာသာရေးရင်တောင် Support ပေးနိုင်တဲ့ကျောင်းတွေတက်ပါ။ Self Study ငါက ဘယ်ကျောင်းကမို့ ငါလေ့လာရင်ဘာမှဖြစ်လာမှာမဟုတ်ဘူးဆိုပြီးတော့မရပ်လိုက်ပါနဲ့။ YouTube,Google,Free Ebook,Udemy, Coursera တွေမှာလေ့လာပါ။ Instructor ချောရင်ပိုထိရောက်ပါတယ်။စတာ😆။ ဒီနေ့ Article ကတော့Learning Roadmap နဲ့ PHP အကြောင်းပဲဖြစ်တယ်။နောက် Articleမှာပြန်တွေ့ကြတာပေါ့။

Top comments (0)