Using tinker on web

Laravel Web Tinker ကိုဘယ်လို install လုပ်ပြီးသုံးလို့ရတယ်ဆိုတာဖော်ပြထားပါတယ်။ ပုံမှန် composer install မဟုတ်ဘဲ composer autoload လုပ်ပြီးတော့ဘယ်လိုသုံးရလဲဆိုတာကိုဖော်ပြပေးထားပါတယ်။

Posted by Set Kyar Wa Lar (universe) on 5 months ago

Laravel မှာ php artisan tinker ကိုတော်တော်လေးသုံးဖြစ်တယ်။ ဒါပေမယ့် multi line code တွေ debug လုပ်ရမယ်ဆိုနည်းနည်းလေးအလုပ်ရှုပ်တယ်။ command enter နဲ့တစ်ကြောင်းဆင်းပြီးရင်အပေါ်က variable ဘဲဖြစ်ဖြစ်ဘာဘဲဖြစ်ဖြစ်ပြင်ချင်တယ်ဆိုရင်သွားပြီ... ကျွန်တော်တော့ဘယ်လိုပြင်ရမလဲမသိလို့ cancel လုပ်ပြီးပြန်ရေးရတယ်။ tinker web ကအဲ့ပြဿနာတွေကိုဖြေရှင်းပေးထားတဲ့ Spatie က Package။ Web UI ကနေပြီးတော့ code ရေးပြီး result ကိုတန်းမြင်ရတယ်။ Development အတွက်ဘဲသုံးဖို့ recommand ပေးထားတယ်။ Production အတွက်သုံးဖို့တော့အားမပေးပါဘူးလို့ Package Readme မှာသေချာရေးထားတယ်။ ကျွန်တော်တို့ဒီနေ့ Blog Post မှာဒီ package ကိုဘယ်လိုသုံးရမလဲဆိုတာကိုရေးသားဖော်ပြသွားမှာဖြစ်ပါတယ်။

ပထမဆုံးကျွန်တော်တို့ laravel project အသစ်တစ်ခုဆောက်လိုက်မယ်။ laravel new tinker-web ဆိုပြီး Laravel project အသစ်တစ်ခုဆောက်လိုက်ပါ။ ပြီးသွားရင် spatie ရဲ့ laravel web tinker package ကို composer ကနေ install လုပ်လိုက်မယ်။ Install process မပြောခင် ကျွန်တော်ဒီ package ကို install လုပ်တော့ပြဿနာတက်တယ်။ code ကို run တော့အလုပ်မလုပ်ဘူး။ inifinite loop ဖြစ်နေတယ်။ အဲ့ကောင်ကိုကျွန်တော် PR တင်တော့ထားတယ်။ သူတို့ appove မလုပ်ခင်ကျွန်တော်တို့ ဒီ package ကို composer ကနေတိုက်ရိုက် install မလုပ်ဘဲ composer autoload ကနေတိုက်ရိုက်သုံးနည်းကိုရေးသားဖော်ပြမယ်။

PR ကို install လုပ်သွားတဲ့အခါသို့မဟုတ်သူတို့ issue ကို fix သွားတဲ့အခါမှာပုံမှန် install လုပ်နည်းကို update လုပ်ရေးသားဖော်ပြသွားမှာဖြစ်ပါတယ်။

ပထမဆုံးကျွန်တော်တို့ tinker-web ဆိုတဲ့ laravel project folder ရဲ့အောက်မှာ packages/spatie ဆိုတဲ့ folder ဆောက်လိုက်ပါ။ ပြီးသွားရင် terminal ကနေပြီးတော့ အဲ့ spatie folder အောက်မှာ https://github.com/spatie/laravel-web-tinker ကို git clone လုပ် ပြီးသွားရင် PR 55 ကို dev branch လုပ်ပြီး checkout လုပ်လိုက်ပါ... အောက်မှာ process step by step ရေးထားတာတစ်ချက်ကြည့်လိုက်အောင်...

git clone [email protected]:spatie/laravel-web-tinker.git
cd laravel-web-tinker
git fetch origin refs/pull/55/head
git checkout -b dev FETCH_HEAD

ဒီအဆင့်ပြီးသွားပြီဆိုရင် ကျွန်တော်တို့ Laravel project ရဲ့ composer.json မှာ Laravel Web Tinker ကို autoload လုပ်ဖို့ရာအတွက်အောက်ဖော်ပြပါအတိုင်း composer.json ကို update လုပ်ပေးပါ...

"autoload": {
    "psr-4": {
      "App\\": "app/",
      "Spatie\\WebTinker\\": "packages/spatie/laravel-web-tinker/src"
    },

"App\\": "app/", အောက်မှာ Spatie WebTinker ကို autoload လုပ်ပေးလိုက်တာပါ။ ပြီးရင် config/app.php မှာ service provider သွားပြီး register လုပ်လိုက်ပါ။

/*
* Package Service Providers...
*/
Spatie\WebTinker\WebTinkerServiceProvider::class,

service provider register ပြီးရင် composer dumpautoload ဆိုပြီး Laravel project folder directory မှာ terminal ကနေပြီး run လိုက်ပါ။ ဒါမှကျွန်တော်တို့ register လုပ်ထားတဲ့ autoload က register ဖြစ်သွားမှာပါ။

နောက်တစ်ဆင့်ကတော့ php artisan web-tinker:install ကို run ပြီးတော့ assets တွေကို publish လုပ်လိုက်ပါ။ ပုံမှန်ဆိုရင် config တွေကိုပါ publish လုပ်တယ်။ ကျွန်တော်တို့က composer autoload လုပ်ပြီးတော့သုံးတာဆိုတော့ အဲ့ကောင်ကို မ run တော့ဘူး။ config ကိုပြင်ချင်တယ်ဆိုရင် packages/spatie/laravel-web-tinker/config/web-tinker.php မှာပြင်လို့ရတယ်။ Configuration option အသေးစိတ်ကိုတော့ရှင်းမပြတော့ဘူး ကိုယ့်ဘာသာကိုယ်ဘဲနည်းနည်းပါးပါးဖတ်ကြည့်လိုက်ရင်အဆင်ပြေမယ်ထင်ပါတယ်။

ပြီးသွားပြီဆိုရင် project folder ထဲကနေ php artisan serve run ပြီးတော့ localhost:8000/tinker မှာ ကျွန်တော်တို့ php artisan tinker မှာလိုဘဲ code တွေရေးကြည့်လို့ရပါပြီ။

Laravel Web Tinker UI

Laravel Web Tinker UI


Hey, I am Set Kyar Wa Lar. Software Engineer at Carro. Maintainer of Laravel Myanmar and creator of MyanmarDevJobs.