昨天有提到,
其實我們通常不會把函式直接寫在web.php當中,
其實我們回傳的這個資料,
如果要透過網頁取得,
有點類似API的感覺
而通常像閏年判斷這種需求,
應該是會寫一個函式來處理,
所以我們今天就把閏年判斷寫成一個函式
而說到Laravel的函式,
可以參考一下 官方文件
中文版看起來很久沒有更新了,
或是也可以用Helpers關鍵字去搜尋英文版
Laravel有提供很多現成的函式給我們使用,
這些函式都放在這個目錄底下:vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
但是我們通常不會去改套件裡面的內容,
如果我們要自己寫函式的話,
我們最好是寫在自己的專案裡面,
如果要自己寫專案的話有兩種方式,
一種是直接修改 public/index.php
在 require __DIR__.'/../vendor/autoload.php';
之外再加入 require __DIR__.'/../app/helpers.php';
這樣我們就可以使用了,
但是這樣會有一個問題,
有些函式可能不是常常用到,
如果每一頁都載入一大堆函式可能會影響效能,
所以通常會建議用第二種方式
第二種方式是修改composer.json
檔案,
在autoload裡面加入內容,
這樣子Laravel會幫我們判斷有沒有需要載入檔案
"autoload": {
"files": [
"app/Helpers/helpers.php"
],
}
然後我們在app資料夾底下建一個Helpers資料夾,
然後底下再建一個helpers.php檔案,
檔案內容如下
<?php
function GetLeapYear($year)
{
if($year % 400 == 0)
return true;
if($year % 100 == 0)
return false;
if($year % 4 == 0)
return true;
return false;
}
?>
接下來要執行
composer dump-autoload
這樣子就可以做為全域函式,
在我們的程式當中被呼叫了。
參考資料:
在 Laravel 中新增全域函式 (helper)