搜尋
首頁php教程PHP开发Laravel中使用自己編寫類別庫的3種方法

雖然Composer使得我們可以重複使用許多現有的類別庫(例如packagist.org中的),但是我們仍然可能使用一些不相容composer的套件或類別庫。另外在某一專案中,我們也可能會建立某一類別庫,而且可能並沒有製作成為composer package 的打算。這時候我們可以透過以下方式來使用自己的特有類別庫。

增加可直接實例化的類別

有些需要直接在專案中使用的類,可以透過以下方式增加到Laravel中

1.建立類別庫檔案/libraries/class/Classapp/libraries .php
2.寫入檔案內容

<span style="font-size: 16px;"><?php<br/>class Message {<br/>    public static function display() {<br/>    }<br/>}<br/>?><br/></span>

在app/start/globals.php中增加類別導入路徑

<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/>    app_path().&#39;/commands&#39;,<br/>    app_path().&#39;/controllers&#39;,<br/>    app_path().&#39;/models&#39;,<br/>    app_path().&#39;/database/seeds&#39;,<br/>    app_path().&#39;/libaries/class&#39;, // 在这里增加<br/>));<br/>?><br/></span>

在composer.json中增加autoloadd目錄 -autoload來建立導入映射

2.使用自己導入的類別直接呼叫Message::display()即可


這種方法同樣也是增加隊列類的方法,很多人不知道Laravel中隊列處理類應該放在哪裡,其實按照上面的方法,在app目錄下創建一個queues目錄,然後讓其可以直接實例化即可

增加可直接調用的函數

有人喜歡用v()來代替var_dump (),想要在Laravel中這麼做也非常容易

1.建立一個函數檔app/libraries/function/helper.php

2.寫入檔案內容

<span style="font-size: 16px;">"autoload": {<br/>    "classmap": [<br/>        "app/commands",<br/>        "app/controllers",<br/>        "app/models",<br/>        "app/database/migrations",<br/>        "app/database/seeds",<br/>        "app/tests/TestCase.php",<br/>        "app/libraries/class"   //在这里增加<br/>    ]<br/>},<br/></span>

把檔案增加到composer導入清單中

<span style="font-size: 16px;"><?php <br/>function v($msg){<br/>    var_dump($msg);<br/>}<br/>?><br/></span>
或是在專案中顯示require這個檔案。打開app/start/global.php,在末尾增加:

<span style="font-size: 16px;">"autoload": {<br/>   "classmap": [<br/>       ...<br/>   ],<br/>   "files": [<br/>       "app/libraries/function/helper.php"<br/>   ],<br/>},<br/></span>
個人感覺這兩種方式都OK,如果想要控制這個檔案載入的時間,甚至可以在filter.php檔案中增加以下內容

<span style="font-size: 16px;">require app_path().&#39;/libraries/function/helper.php&#39;;<br/></span>
在專案中直接使用函數v('hello world');

增加稍微複雜的類別庫

有的時候一個類別庫不僅僅是一個檔案那麼簡單,因此下面的方式更適合有多個文件多個結構的類別庫。

建立psr0或psr4標準的目錄結構。

<span style="font-size: 16px;">App::before( function( $request ) {<br/>    require( "{$GLOBALS[&#39;app&#39;][&#39;path.base&#39;]}/app/libraries/function/helper.php" );<br/>});<br/></span>

Myapp/Search/Search.php中Search類別的命名空間為MyappSearch。

修改composer中autoload

libraries
    Myapp
        Search (note directory is capitalized)
            Search.php
            SearchFacade.php
            SearchServiceProvider.php
        AnotherLib

在專案中使用new MyappSearchSearch()來實例化某一類

總結

雖然Laravel沒有強制哪種方式最好,但是有一定的標準可以使得專案結構清晰,多人合作開發時省去很多交流成本。

更多Laravel中使用自己編寫類別庫的3種方法相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器