雖然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>
<span style="font-size: 16px;">"autoload": {<br/> "classmap": [<br/> ...<br/> ],<br/> "files": [<br/> "app/libraries/function/helper.php"<br/> ],<br/>},<br/></span>
<span style="font-size: 16px;">require app_path().'/libraries/function/helper.php';<br/></span>
<span style="font-size: 16px;">App::before( function( $request ) {<br/> require( "{$GLOBALS['app']['path.base']}/app/libraries/function/helper.php" );<br/>});<br/></span>
libraries Myapp Search (note directory is capitalized) Search.php SearchFacade.php SearchServiceProvider.php AnotherLib