首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Laravel 擴展自定義類與函數的兩種最佳實踐方案

     編輯:PHP 綜合知識

Laravel 專案常需引入自定義類別或輔助函數,本文介紹兩種標準載入方式,並分析優缺點助你選擇最適合專案的方案。

方案一:自定義類別(PSR-4 自動載入)

步驟 1:建立類別檔案

app/libraries/class/MyTest.php


步驟 2:註冊命名空間目錄

// app/start/global.php
ClassLoader::addDirectories(array(
    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/libraries/class', // 新增此行
));

步驟 3:服務容器解析使用

class HomeController extends BaseController {
    public function index() {
        $obj = App::make('mytest'); // 小寫類名
        echo $obj->test();
    }
}

方案二:自定義輔助函數

建立函數檔案

app/libraries/function/helper.php


載入方式 A:全域前置過濾器(推薦)

// app/filters.php
App::before(function($request) {
    require app_path().'/libraries/function/helper.php';
});

載入方式 B:Composer 自動載入

// app/bootstrap/autoload.php
require __DIR__.'/../app/functions.php'; // 或指定檔案

方案比較與建議

維度ClassLoader 註冊目錄filters.php requireComposer autoload
適用對象類別函數函數/類別
載入時機按需解析每請求執行專案啟動
效能最佳(懶加載)略有開銷最佳(編譯優化)
維護性需手動管理目錄集中管理標準化、推薦

最佳實踐建議

  • 類別:優先使用 app/libraries + ClassLoader,或直接放入 app/services 等既有 PSR-4 目錄
  • 函數:建議採用 Composer autoload files 方式,在 composer.json 設定:
"autoload": {
    "files": ["app/helpers.php"]
}

執行 composer dump-autoload 後全專案自動可用,無需額外 require,效能最佳且符合現代 PHP 規範。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved