Laravel 5.4 中不允许使用 namespace() 启动路由分组吗? [复制]

2024-04-25

使用 Laravel 5.4,确实在有关路由分组的文档中,并且给出了一个示例命名空间 https://laravel.com/docs/5.4/routing#route-group-namespaces:

Route::namespace('Admin')->group(function () {
   // Controllers Within The "App\Http\Controllers\Admin" Namespace
});

根据文档,这是可以的,但是在安装 Laravel 5.4.30 后,我发现执行上述操作会引发以下错误:

PHP Parse error:  syntax error, unexpected 'namespace' (T_NAMESPACE) in /Applications/MAMP/htdocs/my_app/routes/web.php on line

尽管我在之前使用其他路由方法做了解决方法,如下所示:

Route::prefix('')->namespace('Admin')->group(function () {
   // Controllers Within The "App\Http\Controllers\Admin" Namespace
});

Yet, 这是 Laravel 中的错误还是我不怀疑是我的代码中的问题?.

如果需要提供更多解释,我很乐意这样做。

更新:正如@Adweb建议的,可以使用group(['namespace' => 'Admin'])...但我真的仍然热衷于根据我得到的错误可能是什么问题.

这是我的 PHP 版本:

PHP 5.6.30 (cli) (built: Mar 11 2017 09:56:27) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

简而言之,这是一个 PHP 问题,并且是 Laravel 的一个没有详细记录的东西(这只能在 PHP 7 中工作,但不能在 5.x 中工作)。你这边不是问题,放心吧~


从 PHP 5.3 开始,添加了命名空间,因此不能用作函数名称。

根据http://docs.php.net/manual/en/migration53.inknown.php http://docs.php.net/manual/en/migration53.incompatible.php:

以下关键字现已保留,不得在 函数、类等名称。

  • goto
  • 名称空间

有关 PHP 中命名空间关键字的更多信息,请查看http://php.net/manual/en/language.namespaces.nsconstants.php http://php.net/manual/en/language.namespaces.nsconstants.php.

(至于为什么Route::prefix('')->namespace('Admin')有效,这可能是 PHP 解析器的问题,但一般来说 PHP 5.x 被设计为不支持这种方法命名)


该代码实际上从 PHP 7 开始就运行良好。根据http://php.net/manual/en/reserved.keywords.php http://php.net/manual/en/reserved.keywords.php:

这些词在 PHP 中具有特殊含义。其中一些代表事物 有些看起来像函数,有些看起来像常量,等等 - 但是 它们实际上不是:它们是语言构造。您不能使用任何 以下单词作为常量、类名、函数或方法 名称。使用它们作为变量名通常是可以的,但可能会导致 困惑。

从 PHP 7.0.0 开始,这些关键字被允许作为属性、常量和 类、接口和特征的方法名称,但类可以 不能用作常量名称。

命名空间就是这些关键字之一。从 PHP 7 开始,它们可以用作方法名称。所以如果你真的想使用Laravel的这种方法,你需要升级到PHP 7。

或者,您可以使用其他方式来使用此功能,而不使用名称空间方法,如您的问题和其他答案中所述。

希望这能解决您的担忧。 ^_^

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5.4 中不允许使用 namespace() 启动路由分组吗? [复制] 的相关文章

  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • PHP:读取所有传入 HTTP 请求的类 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • 邮件::队列不工作

    我无法在 laravel 5 4 中对电子邮件进行排队 在之前的 Laravel 5 3 项目中 一切都运行良好 发送仍然有效 Mail send email blank title gt nice content gt message f
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐