Laravel命名空间


命名空间用于各种编程语言,以创建一组独立的变量,函数和类。程序可能包含各种功能,这可能会导致与现有功能发生冲突。命名空间在避免这种冲突方面起着关键作用。本章将为您提供有关Laravel中名称空间及其用法的详细知识。

命名空间的声明

命名空间可以被定义为一个元素类,其中每个元素对该相关类具有唯一的名称。它可能与其他类中的元素共享。

您可以声明一个名称空间,如下面的语法所示 -

use <namespace-name>;

请注意, use 关键字允许开发人员缩短命名空间。Laravel中使用的默认名称空间是 应用程序 ,但用户可以更改名称空间以与Web应用程序匹配。

您可以使用 artisan 命令创建用户定义的命名空间,如下所示 -

php artisan app:name CodingDict

在给出上述命令时,您可以观察输出,如以下屏幕截图所示 -

选择Git

命名空间一旦创建就可以包含可用于控制器和各种类的各种功能。下面显示了基于控制器和内核中名称空间创建的代码,其中包括 app / console / kernel.phpapp / Http / controller.php 文件 -

Kernel.php

<?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这样

<?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,DispatchesJobsValidatesRequests

使用关键字

命名空间发生在当前类的位置。正如我们的例子中所提到的,我们已经将CodingDict声明为我们的名称空间,并且它位于 app 文件夹中。声明的命名空间将是 App \ Tutorialpoint 。无论何时您想使用该类,都应该使用use关键字。

此处显示使用 use 关键字的语法-

use CodingDict\Http\Controllers\Controller;