名称空间中允许使用PHP保留关键字?(公开,私有,默认)

MrM*_*MAG 2 php namespaces keyword phpstorm psr-4

PhpStorm突出显示以下命名空间是一个错误。

<?php

namespace App\Http\Controllers\Public;
Run Code Online (Sandbox Code Playgroud)

错误: Expected: identifier

一般来说。预留关键字publicfunction,)是否class不适合命名空间?

MrM*_*MAG 6

PHP手册暗示,如PHP 7.0.0的这些关键字都可以作为财产,常量和类,接口和性状的方法名称,除了同类不得用作常量名,其中还包括请求的关键字public

保留关键字列表,您不能将其用于命名空间:

__halt_compilerabstractandarrayasbreakcallablecasecatchclasscloneconstcontinuedeclaredefaultdiedoechoelseelseifemptyenddeclareendforendforeachendifendswitchendwhileevalexitextendsfinalforforeachfunctionglobalgotoifimplementsincludeinclude_onceinstanceofinsteadofinterfaceissetlistnamespaceneworprintprivateprotectedpublicrequirerequire_oncereturnstaticswitchthrowtraittryunsetusevarwhilexor

解决此问题的一种可能的解决方法是在单词中添加一个额外的字符使用单词的复数形式。另一个机会是在名称空间中上一层并将关键字用作前缀 PublicFooController(或后缀,如果您愿意的话)

我的意图是将我的Web应用程序划分为public(针对访客和访问者)和private(针对私人需求)区域。
我坚持不懈地尝试namespace App\Http\Controllers\Frontendnamespace App\Http\Controllers\Backend而不是尝试将单词publicprivate命名空间结合起来,即使我个人认为这些通常更适合我的需求,因为两者都有前端和后端。但是...无论如何,这使我摆脱了在我使用publicand 时以组织方式组织文件和名称空间的麻烦private