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;