介紹
Illuminate\Foundation\Application
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
說明
$app 是 laravel 框架的應用程式例項,作為一個容器管理工具,以後文章稱之為 「服務容器」。它是 laravel 的 「地基」。
相關文章
容器類 Container
契約類之 ApplicationContract
速查
namespace Illuminate\Foundation;
class Application extends Container implements ApplicationContract, HttpKernelInterface
{
//Laravel框架版本
const VERSION = '5.5.48';
//Laravel安裝的基本路徑
protected $basePath;
//應用程式名稱空間
protected $namespace;
//由開發人員定義的自定義資料庫路徑
protected $databasePath;
//由開發人員定義的自定義儲存路徑
protected $storagePath;
//由開發人員定義的自定義環境路徑
protected $environmentPath;
//要在引導期間載入的環境檔案
protected $environmentFile = '.env';
//所有已註冊的服務提供商
protected $serviceProviders = [];
//載入的服務提供者的名稱
protected $loadedProviders = [];
//遞延(defer)服務及其提供者
protected $deferredServices = [];
//指示應用程式以前是否已引導
protected $hasBeenBootstrapped = false;
//指示應用程式是否已“啟動(boot)”
protected $booted = false;
//啟動回撥的陣列
protected $bootingCallbacks = [];
//啟動的回撥的陣列
protected $bootedCallbacks = [];
//終止(terminat)回撥的陣列
protected $terminatingCallbacks = [];
//用於配置日誌(monolog元件)的自定義回撥
protected $monologConfigurator;
//建立一個新的照明應用程式例項
public function __construct($basePath = null){
if ($basePath) {
$this->setBasePath($basePath);
}
$this->registerBaseBindings();
$this->registerBaseServiceProviders();
$this->registerCoreContainerAliases();
}
//----------------ApplicationContract----------------
//獲取應用程式的版本號
public function version(){};
//獲取Laravel安裝的基本路徑
public function basePath($path = ''){};
//獲取或檢查當前應用程式環境
public function environment(){};
//確定我們是否在控制檯中執行
public function runningInConsole(){};
//嚮應用程式註冊服務提供者
public function register($provider, $options = [], $force = false){};
//註冊所有配置的提供程式
public function registerConfiguredProviders(){};
//註冊一個延遲的提供者和服務
public function registerDeferredProvider($provider, $service = null){};
//啟動應用程式的服務提供者
public function boot(){};
//註冊一個新的啟動監聽器
public function booting($callback){};
//註冊一個新的“啟動”監聽器
public function booted($callback){};
//獲取快取的services.php檔案的路徑
public function getCachedServicesPath(){};
//獲取快取的package .php檔案的路徑
public function getCachedPackagesPath(){};
//---------------HttpKernelInterface---------------
//處理傳入的HTTP請求
public function handle(SymfonyRequest $request, $type = self::MASTER_REQUEST, $catch = true){};
//---------------繼承 Container---------------
//從容器中解析給定的型別
public function make($abstract, array $parameters = []){};
//確定給定的抽象型別是否已被繫結
public function bound($abstract){};
//---------------其他----------------
//在容器中註冊核心(core)類別名
public function registerCoreContainerAliases(){};
//將基本繫結註冊到容器中
protected function registerBaseBindings(){};
//註冊所有基本服務提供者
protected function registerBaseServiceProviders(){};
//將給定的提供者標記為已註冊
protected function markAsRegistered($provider){};
//載入並引導所有剩餘(remaining)的延遲提供程式
public function loadDeferredProviders(){};
//載入延遲服務的提供者
public function loadDeferredProvider($service){};
//獲取註冊的服務提供者例項(如果它存在的話)
public function getProvider($provider){};
//獲取註冊的服務提供者例項(如果存在的話)
public function getProviders($provider){};
//從類名解析服務提供者例項
public function resolveProvider($provider){};
//獲取已載入的服務提供程式
public function getLoadedProviders(){};
//配置實時(real-time)facade名稱空間
public function provideFacades($namespace){};
//啟動給定的服務提供者
protected function bootProvider(ServiceProvider $provider){};
//確定應用程式是否已經啟動
public function isBooted(){};
//確定所提供的服務是否屬於遞延服務
public function isDeferredService($service){};
//設定應用程式的延遲服務
public function setDeferredServices(array $services){};
//將服務陣列新增到應用程式的延遲服務中
public function addDeferredServices(array $services){};
//獲取應用程式的延遲服務
public function getDeferredServices(){};
//獲取應用程式的延遲服務
public function getDeferredServices(){};
//確定是否快取了應用程式路由
public function routesAreCached(){};
//確定是否為應用程式禁用了中介軟體
public function shouldSkipMiddleware(){};
//確定應用程式之前是否已經引導過
public function hasBeenBootstrapped(){};
//執行給定的引導類(bootstrapper)陣列
public function bootstrapWith(array $bootstrappers){}
//繫結容器中的所有應用程式路徑
protected function bindPathsInContainer(){};
//為應用程式呼叫啟動回撥
protected function fireAppCallbacks(array $callbacks){};
//在載入環境後註冊要執行的回撥
public function afterLoadingEnvironment(Closure $callback){};
//在啟動程式之前註冊要執行的回撥
public function beforeBootstrapping($bootstrapper, Closure $callback){};
//註冊一個回撥以在載入程式之後執行
public function afterBootstrapping($bootstrapper, Closure $callback){};
//確定應用程式語言環境是否是給定的語言環境
public function isLocale($locale){};
//獲取當前應用程式語言環境
public function getLocale(){};
//設定當前應用程式語言環境
public function setLocale($locale){};
//獲取應用程式的自定義日誌(Monolog)配置器
public function getMonologConfigurator(){};
//確定應用程式是否有自定義日誌(Monolog)配置器
public function hasMonologConfigurator(){};
//定義一個回撥來配置日誌(Monolog)
public function configureMonologUsing(callable $callback){};
//獲取應用程式名稱空間
public function getNamespace(){};
//獲取應用程式“app”目錄的路徑
public function path($path = ''){};
//設定應用程式的基本路徑
public function setBasePath($basePath){};
//獲取路由快取檔案的路徑
public function getCachedRoutesPath(){};
//獲取配置快取檔案的路徑
public function getCachedConfigPath(){};
//獲取引導目錄的路徑
public function bootstrapPath($path = ''){};
//獲取應用程式配置檔案的路徑
public function configPath($path = ''){};
//獲取資料庫目錄的路徑
public function databasePath($path = ''){};
//設定資料庫目錄
public function useDatabasePath($path){};
//獲取語言檔案的路徑
public function langPath(){};
//獲取 public/ 網站目錄的路徑
public function publicPath(){};
//獲取到儲存目錄的路徑
public function storagePath(){};
//設定儲存目錄
public function useStoragePath($path){};
//獲取到resources目錄的路徑
public function resourcePath($path = ''){};
//確定應用程式是否在本地環境中
public function isLocal(){};
//檢測(detect)應用程式的當前環境
public function detectEnvironment(Closure $callback){};
//確定是否快取了應用程式配置
public function configurationIsCached(){};
//獲取環境檔案目錄的路徑
public function environmentPath(){};
//設定環境檔案的目錄
public function useEnvironmentPath($path){};
//設定要在引導期間載入的環境檔案
public function loadEnvironmentFrom($file){};
//獲取應用程式正在使用的環境檔案
public function environmentFile(){};
//獲取環境檔案的完全限定路徑
public function environmentFilePath(){};
//確定我們是否正在執行單元測試
public function runningUnitTests(){};
//重新整理所有繫結和已解析例項的容器
public function flush(){};
//終止應用程式
public function terminate(){};
//在應用程式中註冊一個終止回撥
public function terminating(Closure $callback){};
//使用給定的資料丟擲一個HttpException
public function abort($code, $message = '', array $headers = []){};
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結