[Day 13] 简单的单元测试实作(七)-建立共用的函式

昨天有提到,
其实我们通常不会把函式直接写在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
https://ithelp.ithome.com.tw/upload/images/20210915/20105694e1x8azMpOI.png

这样子就可以做为全域函式,
在我们的程序当中被呼叫了。

参考资料:
在 Laravel 中新增全域函式 (helper)


<<:  DAY 2- 编码跟加密-凯萨密码

>>:  Day 02创建LINE Messageing API频道

DAY23: 自定义模块

在DAY21: NPM模块管理工具有提到Nodejs主要有内置模块(包含核心模块)、npm第三方模块...

<Day30>动手做 Demo App(下)

使用 room 来建立Database abstract class AppDatabase: Ro...

[Golang]Go语言的关键字少,共25个

break、switch、case、default、func、interface、defer、 go...

firefox ftp enable 功能开启

FireFox 网址列输入 about:config 搜寻 ftp network.ftp.enab...

DAY05 - API串接常见问题 - CORS - 概念篇 (2)

昨天,我们知道为什麽会看到CORS的错误讯息,也知道从web server发出request透过浏览...