iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
0
Modern Web

每日文章推薦系列 第 13

Day 13 Laravel的學習

前置技能

  • php 語法
  • composer
  • html
  • css

所以最好是把我之前介紹的

  1. 現代 PHP|新的特點及良好習慣(Modern PHP: New Features and Good Practices)
  2. PHP The Right Way

以上兩個內容都先看完

我覺得才能理解Laravel為何要這麼設計

環境

vagrant

可以的話我覺得用官方給的homestead先起手

要學的東西只有vagrant 學習曲線會比較緩

因為他提供的就是最適合laravel的環境

可以玩一些他推薦的功能而不用特別再去對環境做處理

docker

如果有玩過docker也可以用laradock

我個人是用的很開心

前提是對docker有點經驗

雖然想直接玩docker我也是蠻推薦的

wagon

如果你用windows 又不想學上面兩樣東西

那我推薦用Laravel dojo提供的wagon

免安裝可攜的 LARAVEL 開發環境為了安裝 Laravel 的開發環境而傷腦筋嗎?wagon 整合了 cmder、git、UwAmp、composer 成一個免安裝且可攜的 Laravel 開發環境,您可以把它想像成 Winodws 版的小型 Homestead!降低您學習 Laravel 的入門門檻,若測試完不滿意,您還可以隨時刪除(不用解除安裝),完全沒付擔,現在就來體驗!

可以免安裝直接用

還內建cmder 會省下不少麻煩

重點功能

Eloquent

Laravel 提供了Eloquent這個orm工具

它內建了需多功能 還能對資料model做相關性的連結

基本上我覺得不理解Eloquent就可以乾脆不要用Laravel了XD

當你能熟練使用他以後 就能省下很多Sql的時間

但是還是要注意他轉換出來的Sql語法

有時候不小心還是會效率很差

Cache

現在為了避免資料一直重新抓取 最常用的技術就是做cache

laravel把Cache做了不錯的封裝

尤其Cache::remember真的是很好用XD

$value = Cache::remember('users', $minutes, function () {
    return DB::table('users')->get();
});

用以上語法就能確定抓到的資料可以cache幾分鐘

collections

如果最近有用過javascript的lodash或者underscore

應該會對裡面對於array的操作有印象

而collections可以讓你在php裡面用類似的語法去對陣列做處理

$collection = collect([1, 2, 3, 4, 5]);

$multiplied = $collection->map(function ($item, $key) {
    return $item * 2;
});

$multiplied->all();

也許你會想到php明明就有內建的處理函式 像是array_map之類的

但collections的好處是讓你可以把工作串聯處理

$collection = collect([1, 2, 3, 4, 5]);

$multiplied = $collection->map(function ($item, $key) {
    return $item * 2;
})->filter(function(($value, $key){
  return $value % 4 != 0
});

$multiplied->all();

在你要組合各種函式處理的時候就會很方便

所以在處理資料之前可以先看一下collections裡面有沒有用的到的函式

說不定可以省下很多的麻煩

個人最常用的是pluck

$collection = collect([
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
]);

$plucked = $collection->pluck('name');

$plucked->all();

// ['Desk', 'Chair']

$plucked = $collection->pluck('name', 'product_id');

$plucked->all();

// ['prod-100' => 'Desk', 'prod-200' => 'Chair']

migrations

migration是拿來管理資料庫結構的

可以記錄目前執行了那些工作

跟執行未執行的工作

讓資料庫的修改可以做為程式碼

留在流程裡面 也能做版本管理

強烈推薦使用migration來管理資料庫結構

到時候遇到要在本地端建立測試站

也能省下不少麻煩

總結

用一套工具要先了解他提供的那些東西

而提供那些東西的用意是為何

所以我覺得看完文件再來使用可以省下不少麻煩

這樣讓你遇到問題的時候才知道可以用那些工具下去嘗試

推薦內容

[如何高效地学习 Laravel 框架?

](https://laravel-china.org/articles/6928/how-to-learn-the-laravel-framework-efficiently)

今日分享文章

今天看的文章

https://github.com/fripig/article_log/issues/421


上一篇
Day 12 前置編譯器
下一篇
Day 14 Ansible
系列文
每日文章推薦30

尚未有邦友留言

立即登入留言