Это просто лучшая практика. Вы можете использовать все, что приводит к полному имени класса, в виде строки, как все они действительны:
protected $middleware = [
\App\Http\Middleware\CheckForMaintenanceMode::class,
и
use App\Http\Middleware\CheckForMaintenanceMode;
//...
protected $middleware = [
CheckForMaintenanceMode::class,
и
protected $middleware = [
'\App\Http\Middleware\CheckForMaintenanceMode',
НО. С последним, поскольку мы используем строку, рефакторинг сложнее с помощью встроенных в IDE инструментов рефакторинга. Предположим, что вы хотите переименовать CheckForMaintenanceMode
в MaintenanceMode
, среды IDE будут правильно переименовываться в первых 2 случаях, но не в более поздних (трудно определить, является ли строка ссылкой на класс или ... просто строкой)
Итак, ответ таков: лучше всего ссылаться на полные имена классов, используя ::class