Laravel 命名空間
命名空間用于各種編程語言,以創建一組獨立的變量,函數和類。程序可能包含各種功能,這可能會導致與現有功能發生沖突。命名空間在避免這種沖突方面起著關鍵作用。本章將為您提供有關Laravel中名稱空間及其用法的詳細知識。
命名空間的聲明
命名空間可以被定義為一個元素類,其中每個元素對該相關類具有唯一的名稱。它可能與其他類中的元素共享。
您可以聲明一個名稱空間,如下面的語法所示 -
use <namespace-name>;</namespace-name>
請注意, use 關鍵字允許開發人員縮短命名空間。Laravel中使用的默認名稱空間是 應用程序 ,但用戶可以更改名稱空間以與Web應用程序匹配。
您可以使用 artisan 命令創建用戶定義的命名空間,如下所示 -
php artisan app:name CodingDict
在給出上述命令時,您可以觀察輸出,如以下屏幕截圖所示 -
命名空間一旦創建就可以包含可用于控制器和各種類的各種功能。下面顯示了基于控制器和內核中名稱空間創建的代碼,其中包括 app / console / kernel.php 和 app / Http / controller.php 文件 -
Kernel.php
namespace CodingDict\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel{ /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ // ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule){ // $schedule--->command('inspire') // ->hourly(); } /** * Register the Closure based commands for the application. * * @return void */ protected function commands(){ require base_path('routes/console.php'); } }
請注意,日程和命令等功能有助于調度 Cron 作業和其他功能的方法。
Controller.php這樣
namespace CodingDict\Http\Controllers; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; class Controller extends BaseController{ use AuthorizesRequests, DispatchesJobs, ValidatesRequests; }
控制者充當模型和視圖之間的中介。對于我們創建的稱為 CodingDict 的命名空間,它們將用于控制器 controller.php的 核心文件中。命名空間使用 Http \ Controllers 正確初始化。
命名空間一旦創建,就會使用上面代碼中提到的各種其他命名空間,如 AuthorizesRequests,DispatchesJobs 和 ValidatesRequests 。
使用關鍵字
命名空間發生在當前類的位置。正如我們的例子中所提到的,我們已經將CodingDict聲明為我們的名稱空間,并且它位于 app 文件夾中。聲明的命名空間將是 App \ Tutorialpoint 。無論何時您想使用該類,都應該使用use關鍵字。
此處顯示使用 use 關鍵字的語法-
use CodingDict\Http\Controllers\Controller;