iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
自我挑戰組

Junior 後端工程師歷程系列 第 8

Day 08: Laravel 打造一組 API 系列 (4) - 自己建立超方便好用的全局函數吧!

  • 分享至 

  • xImage
  •  

今天會介紹如何定義出 Laravel 全局函數,類似偵錯常用的 dd 和 dump 等。在整個專案中都能快速呼叫。

開始之前先來暖個身吧!繼續把昨天最後一個路由完成~

刪除書籍 ( DELETE api/books/{id} )

BookController.php

public function destroy($id)
{
    Book::find($id)->delete();

    return response()->json(['刪除書籍成功'], 200);
}

帶入 id 後就能夠順利刪除囉!

OK~簡易的書店書本 CRUD 就先告一段落了~接下來要來分享一個小訣竅囉~ /images/emoticon/emoticon34.gif

Laravel 全局函數

Laravel 包含各種各樣的全局「輔助」PHP 函數,框架本身也大量地使用了這些功能,讓你可以在你的應用中自由的使用它們。下面舉一些例子:

我自己常用的全局函數:

auth ( ) : 返回一個認證實例。方便起見,你可以使用它來替代 Auth Facade:

$user = auth()->user();

還有偵錯時常用到的!

dd ( ) : 函數輸出給定的值並結束腳本運行
dump ( ) : 函數輸出給定的變量

跟 .env 欓有相關的:

env ( ) : 獲取環境變量的值

$env = env('APP_ENV');

回到今天主題,要如何自訂義全局函數呢? /images/emoticon/emoticon19.gif

Laravel 全局函數自己來

Step1. 創建包含自定義函數的 php 文件

這裡我習慣先建立一個目錄夾 app\Helpers,大概如下:

接著 test.php 內加入一個簡單的測試 function:

function test()
{
    return "測試全局函數";
}

Step2. 修改 composer.json 的 autoload 配置

找到 composer.json 的 autoload 项,在 files 中加入文件

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/test.php"
    ]
}

Step3. 更新 autoload

根目錄 Run

$  composer dump-autoload

看來是順利執行了!

來測試剛剛建立的全局函數

Tips: Laravel tinker 是很棒的命令列測試工具,是我開發中超常用的工具,推薦給大家!

輸入

php artisan tinker

呼叫 test()

太棒了!我們成功建立了全局函數,接下來會把全局函數應用到自定義 Json 回傳格式,讓我們再回傳 API 的格式時更方便。明天待續拉~~

/images/emoticon/emoticon29.gif


上一篇
Day 07: Laravel 打造一組 API 系列 (3) - 第一次 POST 方法與 PUT方法嘗試!
下一篇
Day 09: Laravel 打造一組 API 系列 (5) - Handler 與 API 錯誤回傳的小秘密
系列文
Junior 後端工程師歷程10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言