非空PSR-4前缀必须以命名空间分隔符结尾

Mar*_*lln 81 composer-php psr-4

我正在尝试用Composer设置PSR-4,但我刚刚开始 A non-empty PSR-4 prefix must end with a namespace separator.

autoloadcomposer.json看起来像这样:

"autoload": {
    "psr-4": {
        "Acme\\models" : "app/models"
    }
},
Run Code Online (Sandbox Code Playgroud)

app/models 是空的.

我究竟做错了什么?我怎样才能解决这个问题?

Mar*_*lln 147

有人发表评论但删除了它.他提到我\\在结束时失踪了Acme\\models.Acme\\models\\将摆脱信息并按预期工作.

  • 使用这个答案之后,我还发现`composer validate`也能给你一个很好的指示. (16认同)
  • 是的,`PSR-4`需要尾随斜线.(因为它需要被转义,所以加倍) (6认同)
  • 我必须说这不仅是一个愚蠢的要求,[规范](http://www.php-fig.org/psr/psr-4/)也非常清楚地表明了这种情况.因此我在这里出现一个非常基本的问题. (3认同)

Mah*_*jah 7

正如其他人所说 PSR-4 requires the trailing slash

虽然我必须在 Windows 中转换/\\(在 Linux 上应该可以正常工作):

    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
Run Code Online (Sandbox Code Playgroud)