国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Laravel中使用自己編寫類庫的3種方法

2020-03-22 18:00:20
字體:
來源:轉載
供稿:網友
雖然Composer使得我們可以重用很多現有的類庫(例如packagist.org中的),但是我們仍然可能用到一些不兼容composer的包或者類庫。另外在某一項目中,我們也可能會創建某一類庫,而且可能并沒有制作成為composer package 的打算。這個時候我們可以通過以下方式來使用自己的特有類庫。 增加可直接實例化的類 有些需要直接在項目中使用的類,可以通過以下方式增加到Laravel中 1.創建類庫文件app/libraries/html' target='_blank'>class/myClass.php
2.寫入文件內容 復制代碼 代碼如下:
php
class Message {
public static function display() { }
}

在app/start/globals.php中增加類導入路徑 復制代碼 代碼如下:
php
ClassLoader::addDirectories(array( app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/libaries/class', // 在這里增加 ));

在composer.json中增加autoload目錄 復制代碼 代碼如下:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries/class" //在這里增加
]
},
1.執行composer dump-autoload來創建導入映射
2.使用自己導入的類直接調用Message::display()即可 這種方法同樣也是增加隊列類的方法,很多人不知道Laravel中隊列處理類應該放在哪里,其實按照上面的方法,在app目錄下創建一個queues目錄,然后讓其可以直接實例化即可 增加可直接調用的函數 有人喜歡用v()來代替var_dump(),想要在Laravel中這么做也非常容易 1.創建一個函數文件app/libraries/function/helper.php
2.寫入文件內容 復制代碼 代碼如下:
php
function v($msg){
var_dump($msg);
}

把文件增加到composer自動導入列表中 復制代碼 代碼如下:
"autoload": {
"classmap": [
...
],
"files": [
"app/libraries/function/helper.php"
],
},
或者在項目中顯示require這個文件。打開app/start/global.php,在末尾增加:
復制代碼 代碼如下:
require app_path().'/libraries/function/helper.php';
個人感覺這兩種方式都OK,如果想要控制這個文件加載的時間,甚至可以在filter.php文件中增加以下內容
復制代碼 代碼如下:
App::before( function( $request ) {
require( "{$GLOBALS['app']['path.base']}/app/libraries/function/helper.php" );
});
在項目中直接使用函數v('hello world'); 增加稍微復雜的類庫 有的時候一個類庫不僅僅是一個文件那么簡單,因此下面的方式更加適合有多個文件多個結構的類庫。 創建psr0或者psr4標準的目錄結構。
復制代碼 代碼如下:
libraries
Myapp
Search (note directory is capitalized)
Search.php
SearchFacade.php
SearchServiceProvider.php
AnotherLib
Myapp/Search/Search.php中Search類的命名空間為MyappSearch。 修改composer中autoload
復制代碼 代碼如下:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/libraries",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
,
"psr-0": {
"Myapp": "app/libraries"
}
},
在項目中使用new MyappSearchSearch()來實例化某一類 總結 雖然Laravel沒有強制哪種方式最好,但是有一定的標準可以使得項目結構清晰,多人合作開發時省去很多交流成本。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达尔| 溧水县| 西藏| 上饶市| 华坪县| 桃园市| 重庆市| 根河市| 鹿邑县| 密山市| 蓝田县| 伊金霍洛旗| 房山区| 龙井市| 水富县| 静乐县| 敦化市| 大名县| 腾冲县| 东辽县| 铅山县| 台南市| 阜康市| 衡山县| 汾阳市| 竹溪县| 贵港市| 昆山市| 奇台县| 龙州县| 万源市| 涿鹿县| 东台市| 涟源市| 漳浦县| 东辽县| 横山县| 河北省| 长泰县| 冀州市| 那坡县|