雖然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().'/commands',<br/> app_path().'/controllers',<br/> app_path().'/models',<br/> app_path().'/database/seeds',<br/> app_path().'/libaries/class', // 在这里增加<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().'/libraries/function/helper.php';<br/></span>在專案中直接使用函數v('hello world'); 增加稍微複雜的類別庫有的時候一個類別庫不僅僅是一個檔案那麼簡單,因此下面的方式更適合有多個文件多個結構的類別庫。 建立psr0或psr4標準的目錄結構。
<span style="font-size: 16px;">App::before( function( $request ) {<br/> require( "{$GLOBALS['app']['path.base']}/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中文網!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

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

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

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器