久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

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

下面由laravel教程欄目給大家介紹在Laravel中創(chuàng)建自己的PHP幫助函數(shù),希望對(duì)需要的朋友有所幫助!

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

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

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

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

Laravel 中的幫助函數(shù)

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

數(shù)組和對(duì)象

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

路徑

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

字符串

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

URL

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

雜項(xiàng)

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

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

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

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

你可以將你的幫助程序文件放在你的Laravel應(yīng)用程序的任何位置,將它放在你的應(yīng)用程序目錄下是標(biāo)準(zhǔn)的。
讓我們?cè)赼pp下創(chuàng)建一個(gè) Helpers 目錄并創(chuàng)建一個(gè) 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);     } }

如果你正在使用一個(gè)類(lèi)并且它的方法是你的助手,你可以用命名空間聲明來(lái)啟動(dòng)這個(gè)文件。

namespace AppHelpers;

如果你不使用命名空間聲明,則這些函數(shù)將變?yōu)槿挚捎茫闵踔量梢栽诓恢付Q(chēng)空間的情況下使用它們。 所有Laravel內(nèi)置的幫助函數(shù)都是在沒(méi)有命名空間的情況下定義的。 此外,助手類(lèi)也將在全局范圍內(nèi)提供。 因此,如果你想在不指定命名空間的情況下使用助手,只需刪除這一行。

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

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

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

使用幫助文件

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

  • 你可以使用 composer 自動(dòng)加載助手文件。然后,你可以在應(yīng)用程序的任何位置使用這些功能。
  • 你也可以使用Laravel服務(wù)提供者注冊(cè)此文件。 Laravel會(huì)將其與其他依賴(lài)關(guān)系一起加載。
  • 你也可以使用一個(gè)包含所有這些功能的軟件包。

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

通過(guò)Composer自動(dòng)加載

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

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

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

composer dump-autoload

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

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

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

php artisan make:provider HelperServiceProvider

將會(huì)提示運(yùn)行結(jié)果

Provider created successfully.

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

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

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

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

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

AppProvidersHelperServiceProvider::class,

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

'Helper' => AppHelpersHelper::class,

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

使用第三方包加載

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

composer require browner12/helpers

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

browner12helpersHelperServiceProvider::class,

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

php artisan make:helper Helper

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

Helper 的具體使用

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

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

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
久久狠狠婷婷| 中文字幕色婷婷在线视频| 久久久久久自在自线| 久久97久久97精品免视看秋霞| 日本特黄久久久高潮| 日韩超碰人人爽人人做人人添| 伊人www22综合色| 日韩av中文字幕一区二区 | 日韩不卡一区| 国产精品yjizz视频网| 免费福利视频一区二区三区| 日韩大片在线观看| 国内精品麻豆美女在线播放视频| 美女视频黄 久久| 成人久久一区| 亚洲深夜福利在线观看| 国产亚洲欧美日韩在线观看一区二区| 国产精品一卡| 精品三级久久| 伊人久久大香伊蕉在人线观看热v| 日韩成人精品一区二区三区| 麻豆国产精品一区二区三区| 欧美黄色网页| 日韩高清一区在线| 欧美国产偷国产精品三区| 亚洲一区免费| 精品一区二区三区亚洲| 最新中文字幕在线播放| 婷婷成人在线| 欧美日韩一区二区国产| 日韩av首页| 91伊人久久| 免费视频一区三区| 久久超级碰碰| 亚洲图片久久| 少妇精品导航| 免费在线观看一区| 亚洲视频国产| 久久要要av| 久久亚州av| 日韩视频1区| 亚洲一区二区成人| 麻豆精品99| 亚洲三级国产| 99视频一区| 精品免费av在线| 成人高清一区| 色爱综合av| 日本不卡一二三区黄网| 欧美中文高清| 青青青免费在线视频| 精品久久影院| 中文在线资源| 99精品电影| 日韩中文字幕一区二区三区| 亚洲最新av| 国产精品66| 免费一级欧美片在线观看网站 | 国产欧美日韩免费观看| 日韩av一二三| 国产伦精品一区二区三区千人斩| 7777精品| 精品精品久久| 成人日韩精品| 伊人精品在线| 婷婷精品久久久久久久久久不卡| av亚洲免费| 亚洲精品美女91| 青青草91久久久久久久久| 欧美日一区二区在线观看| 免费在线观看一区| 国产aⅴ精品一区二区四区| 国产欧美日韩影院| 中文字幕高清在线播放| 欧美日韩国产在线观看网站| 国产精品videossex久久发布 | 日韩高清不卡| 欧美日韩国产高清| 日韩精品中文字幕吗一区二区 | 日韩一二三区在线观看| 精品国产亚洲日本| 一区二区三区四区在线观看国产日韩| 国内自拍视频一区二区三区| 不卡中文字幕| 国产精品tv| 99香蕉国产精品偷在线观看 | 亚洲1区在线观看| 六月丁香综合在线视频| 青青久久av| 免费看一区二区三区| 国产精品日本| 国产精品视区| 一区二区视频欧美| 激情综合激情| 欧美 日韩 国产一区二区在线视频| 免费在线观看一区| 91精品电影| 国产精品久久久久久久免费软件| 久久毛片亚洲| 在线观看亚洲精品福利片| 高清av一区| 国产suv精品一区二区四区视频| 午夜在线一区| 国内亚洲精品| 99久久久国产精品美女| 首页国产精品| 国产免费播放一区二区| 日韩一区二区三免费高清在线观看| 欧美xxxx中国| 日韩av中文字幕一区| 播放一区二区| 欧美aa国产视频| 欧美一区激情| 九色porny丨国产首页在线| 欧美色图一区| 中文国产一区| 日韩一区二区三区精品| 奇米777国产一区国产二区| 国产欧美日韩免费观看| 国产一区二区三区探花| 日韩在线观看不卡| 欧美一区成人| 欧美日韩午夜| 日韩精品91亚洲二区在线观看| 日韩va亚洲va欧美va久久| 日本 国产 欧美色综合| 久久亚洲精品中文字幕蜜潮电影| 精品国产乱码久久久久久1区2匹| 国产亚洲毛片| 日日夜夜免费精品视频| 国产一精品一av一免费爽爽| 欧美精品国产一区| 国产亚洲午夜| 国产成人精品三级高清久久91| 九色精品91| 久久国产乱子精品免费女| 国产精品原创| 国产视频一区二区在线播放| 日韩在线看片| 一区二区电影在线观看| 国产福利片在线观看| 蜜桃视频欧美| 国产成人精品亚洲线观看| 亚洲a成人v| 伊人久久视频| 婷婷综合五月| 人人精品人人爱| 欧美在线网站| 欧美xxxx中国| 天堂精品久久久久| 美女视频一区在线观看| 久久精品网址| 7m精品国产导航在线| 国产精品丝袜在线播放| 国产精品午夜av| 精品午夜视频| 丁香六月综合| 亚洲激精日韩激精欧美精品| 一区视频在线| 亚洲18在线| 欧美91在线|欧美| 99视频精品全国免费| 国产精品日本一区二区三区在线| 欧美高清不卡| 欧洲一区二区三区精品| 亚洲国产一区二区三区在线播放| 午夜久久美女| 亚洲毛片一区| 韩国女主播一区二区三区| 亚洲一级二级| 日韩成人在线看| 色婷婷亚洲mv天堂mv在影片| 欧美日韩国产一区二区三区不卡| 在线综合欧美| 国产精品黄色片| 欧美日韩中文一区二区| 亚洲精品高潮| 高清av一区| 亚洲三级毛片| www.51av欧美视频| 一区二区电影在线观看| 久久男人av| av不卡在线看| 精品美女视频 | 视频精品一区二区| 国产精品亚洲四区在线观看 | 国产一区二区三区自拍| 久久激情综合网| 欧美羞羞视频| 日本成人中文字幕| 日韩深夜视频| 亚洲一级大片| 日韩国产网站| 国产精品毛片久久久| 国精品一区二区三区| 国产欧美一区二区色老头| 婷婷综合亚洲| 激情黄产视频在线免费观看| 亚州av一区| 欧美/亚洲一区|