PHP ~ Laravel Framework ගැන

P_Namal

Active member
  • Oct 19, 2007
    862
    224
    43
    සුබ අලුත් අවුරුද්දක් වේවා එහෙනම් කට්ටියටම.

    අපි අන්තිමට Laravel install කරගෙන ඉවර වුනානේ. දැන් ඒක run කරගමු. Vagrant වලින් කරනවා නම් කෙලිම්ම ip එක ගහන්න තියෙන්නේ. එහෙම කරනවා නම් default root path එක Laravel installation directory එකේ public directory එකට දෙන්න ඕන.

    locally WAMP / LAMP වගේ එකක් use කරනවා නම් virtual host එකක් හදල public folder එකට path එක සෙට් කරන්න.

    Virtual host වැඩ කරන්න නම් apache vhosts module එක enable කරලා ඉන්න ඕන. url එක hosts file එකේ දාන්නත් ඕනි.

    උඹල හරියට හදාගත්ත නම් url එක ගැහුවම මේ වගේ screen එකක් එන්න ඕන. (එහෙම නැත්තම් ඉතිරි ටිකත් කරගෙන යන්න.)

    Screen-Shot-2016-08-23-at-8.28.58-PM-300x161.png


    තව පොඩි වැඩ ටිකක් තියෙනවා.

    Root එකේ තියෙනවා Storage කියල directory එකක්. ඔකේ ඇතුලේ තමයි cache files , log files එහෙම වදින්නේ. ඒ නිසා ඔය folder එකට write permissions දෙන්න ඕනි. උබල ඉන්නේ Unix machine එකක නම් තමයි මේක ගොඩක් වෙලාවට අවශ්‍ය වෙන්නේ.

    sudo chmod -R 777 Storage/

    ඔය command එකෙන් Storage folder එකට අවශ්‍ය permissions ලැබෙනවා.

    තව මේකේ default එනවා .env.example කියල file එකක්. මේ file එක rename කරන්න ඕනි .env කියල.

    .env file එක ගැන පොඩ්ඩක් කියල ඉන්නම්. මේ file එකෙන් මුලිකව කියන්නේ project එක install කරලා තියෙන environment එකේ තොරතුරු. උද: Database details. Project එක තියෙන්නේ locally නම් මෙතන එන්නේ localhost එකේ details. Live server එකකට host කරාම එන්නේ ඒ server එකට අදාල details. ඒ නිසා මේ file එක කිසිම වෙලාවක commit කරන්නේ නෑ. gitignore file එකට දාල තියන්න ඕනි commit වෙන්නේ නැති වෙන්න. එතකොට server එකට දැම්මම එකේ අලුත් .env file එකක් හදල අදාල details දාන්න ඕන.

    install කිරිල්ල නම් ඔච්චරයි basic ටික. :):)

    ඊළඟට බලමු Routing...

     
    • Like
    Reactions: thedigit2s

    හෙනයා

    Well-known member
  • May 23, 2014
    16,809
    16,948
    113
    Kottawa
    අඩෝ මේ ටික වෙනම thread ටිකකට දාපන් බන්.. :cool::cool: මෙහෙම දැම්මම හොයාගන්න අමාරුයි.. :(:(
     

    miyuru4u

    Well-known member
  • Jan 18, 2007
    31,893
    10,487
    113
    In the eyes of my girl
    එල එල.ඔය අනිත් උන් වගෙ Thread 3ක් 4කින් නවත්න්නෙ නැතුව දිගටම කරගෙන යමු
     

    P_Namal

    Active member
  • Oct 19, 2007
    862
    224
    43
    Laravel නෙවෙයි මොන framework එකකින් code කරත්, framework නැතුව නිකම්ම code කරත්, වෙන Programming Language එකකින් code කරත් අපේ code එක හොදට organized වුනේ නැත්තන් project එක ලොකු වෙන්න ලොකු වෙන්න maintain කරගන්න බැරි තත්වෙට එනවා. හැබැයි මුල ඉඳම්ම ඕනවට වඩා organize කර කර ඉන්න ගියත් අපිට වෙලාවට වැඩේ කරගන්න බැරි වෙනවා. ඒ නිසා ඔක්කොම balance කරගෙන යනවා නම් හොදයි. code එක refactor කර කරම develop කරන එක තමයි හොදම දේ. දිගටම කරගෙන යද්දී මම උදාහරණ ත් එක්ක දාන්නම් code එක organize කරගන්න විදි.

    දැන් බලමු Routing.

    මුලිකව අපි දන්නවා browser එකේ ඉදන් server එකට requests යවන ප්‍රධාන විදි 2ක් තියෙනවා කියල.

    1) GET
    2) POST

    තව PUT , PATCH , DELETE, OPTIONS කියලත් විදි තියෙනවා.

    ඇත්තටම GET එක තමයි ගොඩක්ම පාවිච්චි වෙන request method එක. Browser එකේ URL tab එකේ ගහන සියලුම url, server එකට යන්නේ GET request එකක් විදියට.

    get-method.jpg


    ඉතින් මේ domain name එක විතරක් ගැහුවම සාමාන්‍යයෙන් මුලින්ම load වෙන්නේ server එකෙන් දීල තියෙන default file එක. ගොඩක් වෙලාවට මේක index.html හෝ index.php තමයි තියෙන්නේ. Frameworks වලින් මේ default file එකට එන request එක framework එකේ එතුලට යවල අපිට එක තැනක් දෙනවා (තවත් file එකක් ) මේ request එකට මොකක්ද වෙන්න ඕනි කියල අපිට තීරණය කරන්න. අන්න ඒ තැන තමයි Routes කියන්නේ. හරියට නිකන් වාහනයක සුක්කානම වගේ. මෙතැනදී අපිට පුළුවන් අදාල request එකට permission තියෙනවද, මොන page එකද load කරන්න ඕනි, database එකෙන් අරන් data පෙන්නනවද, වගේ ගොඩක් දේවල්.

    Laravel 5.3 වල මේක තියෙන්නේ routes folder එක එතුලේ. එකෙත් web.php file එකේ තමයි සාමාන්‍ය වෙබ් request handle කරන්නේ.

    අපි කලින් කතා කරපු domain name එක විතරක් ගැහුවම එන request එක root request එක කියල හදුන්වන්න පුළුවන්.

    PHP:
    Route::get('/', function () {
         return 'Laravel 5.3 routing';
    });

    මේ තමයි root එකට එන requests handle කරන basic ම විදිය. මේකෙන් කියන්නේ root request එක ආවම "Laravel 5.3 routing " කියන text එක පෙන්නන්න කියල.

    Screen%2BShot%2B2017-01-11%2Bat%2B7.46.44%2BAM.png


    GET request එකට විතරක් නෙවෙයි POST, PUT, PATCH, DELETE, OPTIONS වලටත් මේ විදියටම handle කරගන්න පුළුවන්.

    PHP:
    Route::post ('/', function () {
         return 'Laravel 5.3 routing';
     });

    අපිට Route Parameters යවන්න ඕන නම් මේ විදියට.

    PHP:
    Route::get('post/{version}', function($version){
          return 'Laravel '. $version .' routing';
    })

    තව ඉතින් Routes handle කරන එක එක විදි තියෙනවා. Laravel වලටම unique routings තියෙනවා. Laravel experience එක වැඩි වෙද්දී තමයි මේවගේ නියම ප්‍රයෝජනය ගන්න තේරෙන්නේ. මොකද අපි මුලිම්ම පටන් අරන් කාලයක් යනකන් කරන්නේ ගොඩක් common විදියට. Internet එකෙන් බලල ඒවගේ තියෙන විදියටත් කරනවා. ඒ උනාට internet එකේ search karata ගොඩක් advanced patterns අපිට බොහෝ විට තේරෙන්නේ නැ. ගොඩක් උදාහරණ තියෙන්නේ basic examples. ඒ නිසා ගොඩක් වේලාවට experience එකත් එක්ක තමයි අපේ code එකේ quality එක වැඩි වෙන්නේ. මුලදී code duplicate වෙන එක normal. ඒ වගේ Laravel routing ගත්තම හෙන advanced routing තියෙනවා.

    උදාහරණයක් ගත්තොත් අපේ common flow එක තමයි URL එක බලල controller එකක් හරහා Database එකේ තියෙන data view එකකින් පෙන්නන එක. Laravel routing වලින් පුළුවන් ඒ කිසිම controller එකක් වත් DB query යක් වත් නැතුව DB එකෙන් data අරන් පෙන්නන්න route එකෙන් විතරක්.

    ඉතින් මේ වගේ දේවල් මුල ඉදම්ම කරලා වැඩකුත් නැ. මොකද මේවගෙන් වෙන technical benifit එක හොදට තේරෙන්න ඕන. එකට ඉතින් වැරදියට කර කර experience එක ගන්න ඕන. :P :P
     

    BLACKLIST_MEMBER

    Well-known member
  • Feb 9, 2008
    37,854
    14,812
    113
    127.0.0.1
    laravel හොඳ framework එකක්. නමුත් කාටවත් කියන්න බැහැ මේක තමයි PHP වල best ම framework එක කියල. ඒක ඒ ඒ යට අදාළ විදිහට වෙනස් වෙනව.

    හරි උබ ගොඩක් මේක ගැන experience තියෙනවනම් මට පොඩි help එකක් දීපං,
    coding help එකක් නෙමෙයි, Dev environment සම්බන්දව පොඩි help එකක්.

    laravel Intellij IDE එක එක්ක config කරගෙන මම work කරන්නේ.
    මගේ pc එක dev apps, ඔය wamp වගේ ජරාව වල් වලින් බොග වෙන හින්ද හැම මගුලම docker micro containers ඇතුලේ රන් කරන්නේ.
    PHP interpreter එක තියෙන්නේ docker container එකක් ඇතුලේ
    IDE එක support කරනවා docker වලට.

    එකම අවුල node package manager එක (npm) රන් කරලා gulp එක build කරගන්න දඟලපු එක, elixir පාවිච්චි කරන්න ඕන නිසා.
    මේකට මම docker container එකක npm රන් කළා volume එකක් mount කරලා host machine එකේ working directory එක දාල. (windows වලට node දැම්ම දගලලා එපා උනාම, ඒ දාල npm install ගැහුවම python ඉන්ස්ටෝල් කරන්න, ඇහුව. ඒ පාර ඒ මගුල දැම්ම. ඊටපස්සේ ආයේ fail උනා visual studio express දාන්න උනා, ආයේ රෙද්ද්ද .net අහනවා. එක බැලුවම ඒ මගුලේ bug එකක්) පස්සේ මල පැනල ආපහු ඔක්කොම uninstall කරා.
    ඊටපස්සේ කලින් වගේ docker container එකක කොහොමහරි npm install එක රන් කරලා gulp build කරා.

    node විතරක් යන්තන් දාගෙන දැන් රන් කලත් gulp tasks රන් කරන්න ක්‍රමයක් නැහැ, IDE එක එකට support නැහැ වගේ gulp docker ඇතුලේ දුවන්න.
    unit testing වලට තමා gulp වැඩිපුර ඕන. :dull: දැන් කරන්නේ අතින්ම unit test එක රන් කරනවා අමුතුම ක්‍රමයකට. :rofl: හැබැයි IDE එක support නැති හින්ද වැඩේ ටිකක් slow වෙනව, shortcuts වැඩ කරන්නේ නැහැ හරියට.
    මොකක් හරි ජිල්මාට් idea එකක් දීපං
     
    Last edited:

    roba "chama"

    Well-known member
  • Jan 8, 2012
    1,078
    433
    83
    colombo
    laravel supirii..math me dawswala api ekak gahanawa android app ekakata....karagena yaddi asai habai java danagattata php melodeyak dannathuwa thama wadeta atha gahuwe.....