PSR-1 标准中的命名空间条目?

Namespace entries in PSR-1 standard?

我正在寻找在 PHP 类 中编写遵循 PSR-1 标准的命名空间的正确方法(如果其中任何一个是正确的,请告诉我)。我环顾四周,但没有看到任何具体的东西。正确的使用方法是

Namespace Foo\Bar;

或者使用大括号是否正确,例如

Namespace Foo\Bar
{
    // ....
}

如果两者都正确,是否有特别的理由使用其中一个?我意识到这部分可能是基于意见的。

方括号中的命名空间 recommended method 用于在单个文件中定义多个命名空间。

如果文件中只有一个命名空间,则使用无括号的版本。

PSR-1 建议每个文件一个 class,因此您可能也应该将自己限制为每个文件一个命名空间。

表格Namespace and Class Names PSR-1 standrad:

Namespaces and classes MUST follow an "autoloading" PSR: [PSR-0, PSR-4].

This means each class is in a file by itself, and is in a namespace of at least one level: a top-level vendor name.

Code written for PHP 5.3 and after MUST use formal namespaces :

示例:

namespace Vendor\Model;

class Foo
{
}

这意味着 PSR-1 标准建议使用第一种形式,因为对于第二种形式(使用大括号),您可以在单个文件中拥有多个命名空间,这样您就不会遵循命名空间的 PSR-1 标准。