中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何在Laravel中創(chuàng)建自己的PHP幫助函數(shù)

小編給大家分享一下如何在Laravel中創(chuàng)建自己的PHP幫助函數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)主營湖口網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),湖口h5微信小程序開發(fā)搭建,湖口網(wǎng)站營銷推廣歡迎湖口等地區(qū)企業(yè)咨詢

php是什么語言

php,一個嵌套的縮寫名稱,是英文超級文本預(yù)處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用。

在Laravel中創(chuàng)建自己的PHP幫助函數(shù)

Laravel 為我們提供了許多內(nèi)置的幫助函數(shù),你可以在應(yīng)用程序中的任何位置調(diào)用它。它們使你可以方便地處理數(shù)組和對象,路徑,字符串,URL和其他類型的工作流。

盡管在 Laravel 核心中定義了許多幫助函數(shù),但你可以在 Laravel 中定義自己的幫助函數(shù)以避免重復(fù)相同的代碼。它確保你的應(yīng)用程序有更好的可維護性。

我們來看看如何創(chuàng)建自己的定制 Laravel 幫助函數(shù)

Laravel 中的幫助函數(shù)

Laravel 中有許多內(nèi)置的幫助程序可供你的應(yīng)用程序使用。它們根據(jù)它們提供的功能類型進(jìn)行分組。這是一個完整的內(nèi)置 Laravel 幫助文件。

數(shù)組和對象

在這個組中,助手提供了處理數(shù)組和對象的能力。 該組包含用于添加兩個數(shù)組的輔助函數(shù),將多維數(shù)組折疊成單個數(shù)組,返回數(shù)組的第一個元素,檢查數(shù)組中是否存在給定的項目或項目,并執(zhí)行許多其他類型的操作。

路徑

這組helper返回Laravel應(yīng)用程序中不同目錄的絕對路徑,例如 app,config,public,resource,storage和你的應(yīng)用程序的基本路徑。

字符串

該組中的助手使用字符串操作。 你可以將字符串轉(zhuǎn)換為駱駝大小寫,找到該類的基本名稱,運行 htmlspecialchars,將文本轉(zhuǎn)換為kebab大小寫,將文本轉(zhuǎn)換為大小寫,并執(zhí)行許多其他類型的字符串操作。

URL

助手的URLs組與生成URL一起工作。你可以為控制器操作生成URL,命名為route,以及指定路徑的完全限定URL。

雜項

這類幫助程序包含處理頁面狀態(tài),服務(wù)容器,認(rèn)證,緩存等功能。

在Laravel中創(chuàng)建幫助文件

在本節(jié)中,我們將通過創(chuàng)建Laravel幫助程序文件,該文件可以在Laravel應(yīng)用程序中全局使用。 你可以組織你的幫助程序文件的位置,但是,我更愿意將我的Laravel項目幫助程序文件保存在 app/Helpers/Helper.php 中。 在本教程中,我們將在我想要的位置創(chuàng)建一個幫助文件。

創(chuàng)建一個幫助文件

你可以將你的幫助程序文件放在你的Laravel應(yīng)用程序的任何位置,將它放在你的應(yīng)用程序目錄下是標(biāo)準(zhǔn)的。
讓我們在app下創(chuàng)建一個 Helpers 目錄并創(chuàng)建一個 Helper.php 文件。這些是該文件的以下內(nèi)容。

<?php

if (!function_exists('human_file_size')) {
    /**
     * Returns a human readable file size
     *
     * @param integer $bytes
     * Bytes contains the size of the bytes to convert
     *
     * @param integer $decimals
     * Number of decimal places to be returned
     *
     * @return string a string in human readable format
     *
     * */
    function human_file_size($bytes, $decimals = 2)
    {
        $sz = 'BKMGTPE';
        $factor = (int)floor((strlen($bytes) - 1) / 3);
        return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . $sz[$factor];

    }
}

if (!function_exists('in_arrayi')) {

    /**
     * Checks if a value exists in an array in a case-insensitive manner
     *
     * @param mixed $needle
     * The searched value
     *
     * @param $haystack
     * The array
     *
     * @param bool $strict [optional]
     * If set to true type of needle will also be matched
     *
     * @return bool true if needle is found in the array,
     * false otherwise
     */
    function in_arrayi($needle, $haystack, $strict = false)
    {
        return in_array(strtolower($needle), array_map('strtolower', $haystack), $strict);
    }
}

如果你正在使用一個類并且它的方法是你的助手,你可以用命名空間聲明來啟動這個文件。

namespace App\Helpers;

如果你不使用命名空間聲明,則這些函數(shù)將變?yōu)槿挚捎?,你甚至可以在不指定名稱空間的情況下使用它們。 所有Laravel內(nèi)置的幫助函數(shù)都是在沒有命名空間的情況下定義的。 此外,助手類也將在全局范圍內(nèi)提供。 因此,如果你想在不指定命名空間的情況下使用助手,只需刪除這一行。

定義這些函數(shù)時有一些注意事項。所有的Laravel助手文件函數(shù)都會被檢查以避免函數(shù)定義沖突。

if (!function_exists('human_file_size')) {
    function human_file_size($bytes, $decimals = 2)
    {
        // ...
    }
}

如果跳過此檢查,則每次重新定義具有相同定義的函數(shù)時都會發(fā)生沖突。你可以使用這個檢查,或者你也可以用你的函數(shù)名稱作為前綴來避免沖突。

使用幫助文件

現(xiàn)在,就我們的幫助文件而言,就是這樣。讓我們看看如何在Laravel應(yīng)用程序中使用助手文件。

  • 你可以使用 composer 自動加載助手文件。然后,你可以在應(yīng)用程序的任何位置使用這些功能。

  • 你也可以使用Laravel服務(wù)提供者注冊此文件。 Laravel會將其與其他依賴關(guān)系一起加載。

  • 你也可以使用一個包含所有這些功能的軟件包。

讓我們看看如何使用所有這些方法。

通過Composer自動加載

第一個非常簡單直接。 只需轉(zhuǎn)到位于Laravel項目中的 composer.json 文件,你將看到自動加載 key。 Composer 有一個key files(你想自動加載的文件路徑數(shù)組),你可以在自動 `autoload 中使用它。 如:

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

更改composer.json文件并向文件數(shù)組添加新路徑后,需要重新生成自動加載文件。只需從Laravel項目目錄中的終端運行此命令即可。

composer dump-autoload

現(xiàn)在,你的幫助程序文件將自動加載到你的Laravel項目中。

通過服務(wù)提供者加載

讓我們來看看如何使用服務(wù)提供者來自動加載助手文件。轉(zhuǎn)至應(yīng)用程序根目錄中的命令行并運行以下命令以創(chuàng)建新的服務(wù)提供者。

php artisan make:provider HelperServiceProvider

將會提示運行結(jié)果

Provider created successfully.

一旦服務(wù)提供者成功創(chuàng)建,打開該文件。在注冊方法中添加你的助手文件。

public function register()
{
    $file = app_path('Helpers/Helper.php');
    if (file_exists($file)) {
        require_once($file);
    }
}

在注冊方法中,我們包含了我們的依賴關(guān)系。 在大型項目中,你可能在目錄中有多個幫助程序文件,并且你想要全部這些文件。 你可以更改注冊方法,如下所示,你的服務(wù)提供商將加載Helpers目錄中的所有文件。

public function register()
{
    foreach (glob(app_path() . '/Helpers/*.php') as $file) {
        require_once($file);
    }
}

它將需要 app/Helpers 目錄中的所有文件。
現(xiàn)在我們的服務(wù)提供者已經(jīng)完成,我們需要注冊我們的服務(wù)提供者,所以,Laravel會在引導(dǎo)期間加載它。 為此,請轉(zhuǎn)至 config/app.php 并在結(jié)尾處的 providers 數(shù)組中添加以下行。

App\Providers\HelperServiceProvider::class,

如果你的幫助文件涉及到一個擁有這些幫助方法的類,并且你已經(jīng)指定了命名空間,那么你可以通過定義一個別名來毫不費力地使用它們。 您可以通過在 config/app.php 文件中的別名數(shù)組末尾添加以下內(nèi)容輕松完成此操作。

'Helper' => App\Helpers\Helper::class,

通過將這添加到別名數(shù)組中,你將能夠使用Helper關(guān)鍵字調(diào)用助手。這就是為服務(wù)提供者創(chuàng)建你的幫手。

使用第三方包加載

你也可以使用第三方package: Laravel helpers package(https://github.com/browner12/helpers/)。你可以通過在控制臺中從你的應(yīng)用程序的根目錄運行此命令來通過編寫器安裝它。

composer require browner12/helpers

config/app.php 中的 providers 數(shù)組中添加以下行

browner12\helpers\HelperServiceProvider::class,

如果你正在使用Laravel的自動包發(fā)現(xiàn)功能,則可以跳過此步驟。 完成必要的步驟之后,你可以使用此命令創(chuàng)建助手文件。

php artisan make:helper Helper

它將在 App\Helpers 中創(chuàng)建一個 Helper.php 文件,你可以輕松添加所有幫助程序功能。

Helper 的具體使用

現(xiàn)在我們的函數(shù)在Helper文件中定義,沒有定義名稱空間,我們可以很容易地使用它們。 只需在 routes/web.php 中找到你的路由文件,并將此功能用于首頁。 例如,這是完整的 routes/web.php 文件:

<?php

Route::get('/', function () {
    return human_file_size(1024*1024);
});

它將簡單地返回作為參數(shù)傳遞的字節(jié)數(shù)的可讀大小。你可以從任何地方控制器或視圖調(diào)用這些函數(shù)。

以上是“如何在Laravel中創(chuàng)建自己的PHP幫助函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:如何在Laravel中創(chuàng)建自己的PHP幫助函數(shù)
地址分享:http://www.rwnh.cn/article6/gspjig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、定制開發(fā)、微信公眾號、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
察哈| 三门峡市| 白朗县| 静安区| 遂溪县| 尖扎县| 濮阳市| 乐平市| 永吉县| 色达县| 广水市| 乐陵市| 咸阳市| 新干县| 黄梅县| 武陟县| 遂宁市| 弥勒县| 文水县| 乌兰察布市| 深圳市| 宝清县| 吴堡县| 平遥县| 元氏县| 布拖县| 碌曲县| 吕梁市| 富民县| 镇康县| 德格县| 策勒县| 辽阳市| 社会| 龙里县| 全州县| 琼海市| 洛阳市| 吴旗县| 高雄市| 如东县|