Laravel引入外部PHP文件教程

Laravel是一個(gè)MVC框架,有自己得文件夾結(jié)構(gòu),但有時(shí)候我們要用外部得文件,并且這些文件得結(jié)構(gòu)跟框架的結(jié)構(gòu)不太相同。我們會(huì)談到兩種情況,我們會(huì)有class文件或者只是一個(gè).php文件。

比如說我們看下下面的簡單的控制器文件:

namespace App\Http\Controllers;

class PagesController extends Controller
{
  /**
   * Display homepage.
   *
   * @return Response
   */
  public function getHome()
  {
    return view('pages.home');
  }

}

比如說我們產(chǎn)品的價(jià)格都從外面的一些文件來的,例如:

class PricesClass {
  public function getPrices() {
    return ['bronze' => 50, 'silver' => 100, 'gold' => 150];
  }
}

那么我們?nèi)绾我脒@個(gè)文件呢?我們可以有三種方法:

1.你可以把這個(gè)類放在app\folder文件夾里面的任意一個(gè)位置:

有的人會(huì)放在app\providers文件夾下面,但也可以放在如App\Libraries,
App\Classes 或 App\Services等文件夾下面。

例如,我們放在了App\Classes\PricesClass.php這個(gè)位置:

設(shè)置namespace,在文件頭部引入:

namespace App\Classes;

class PricesClass {
// 

在控制器里引入這個(gè)類文件, pagescontroller.php

namespace App\Http\Controllers;

use App\Classes\PricesClass;

class PagesController extends Controller
{
  /**
   * Display homepage.
   *
   * @return Response
   */
  public function getHome()
  {
    $pricesClass = new PricesClass();
    $prices = $pricesClass->getPrices();
    return view('pages.home', compact('prices'));
  }

}

2.第二種情況,可能文件里的不是一個(gè)類,而是一堆方法,這個(gè)時(shí)候我們該如何引入呢?例如:app/functions/prices.php

function getPrices() {
  return ['bronze' => 50, 'silver' => 100, 'gold' => 150];
}

我們可以這樣引入:

public function getHome()
{
  include(app_path() . '\functions\prices.php');
  $prices = getPrices();
  // ...

app_path()返回的是app文件夾路徑。

在composer.json文件里加一個(gè)files放到autoload里:

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/functions/prices.php"
        ]
    },

這樣的話你都不需要用include, require等方法,可以直接用這個(gè)方法。

3.另外一個(gè)方法是直接把這個(gè)文件夾自動(dòng)加載,也就是autoload。

例如,在composer.json里面:

"autoload": {
        "classmap": [
            "database",
            "app/functions"
        ],
    },
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容