今天會介紹如何定義出 Laravel 全局函數,類似偵錯常用的 dd 和 dump 等。在整個專案中都能快速呼叫。
開始之前先來暖個身吧!繼續把昨天最後一個路由完成~
BookController.php
public function destroy($id)
{
Book::find($id)->delete();
return response()->json(['刪除書籍成功'], 200);
}
帶入 id 後就能夠順利刪除囉!
OK~簡易的書店書本 CRUD 就先告一段落了~接下來要來分享一個小訣竅囉~
Laravel 包含各種各樣的全局「輔助」PHP 函數,框架本身也大量地使用了這些功能,讓你可以在你的應用中自由的使用它們。下面舉一些例子:
我自己常用的全局函數:
auth ( ) : 返回一個認證實例。方便起見,你可以使用它來替代 Auth Facade:
$user = auth()->user();
還有偵錯時常用到的!
dd ( ) : 函數輸出給定的值並結束腳本運行
dump ( ) : 函數輸出給定的變量
跟 .env 欓有相關的:
env ( ) : 獲取環境變量的值
$env = env('APP_ENV');
回到今天主題,要如何自訂義全局函數呢?
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 的格式時更方便。明天待續拉~~