特征是否应位于单独的文件中



假设这种情况:

interface IFoo
{
  public function Bar();
}
trait Foo
{
  public function Bar()
  {
    echo 'Bar';
  }
}
class FooBar implements IFoo
{
   use Foo;
}
$foobar = new FooBar();
$foobar->Bar(); //echos 'Bar';

我把类 FooBar 放在它自己的文件中,接口 IFoo 也放在它自己的文件中。

但是我应该如何处理特质福:

  • 在自己的文件中?(我的偏好)
  • 与推理面IFoo一起?
  • 当特征被赋予自己的文件时,自动加载将如何处理?

注意:NetBeans 将类 FooBar 的代码标记为无效。Netbeans 不会检测到 Foo 用于实现 IFoo 的特征。错误?

特征就像类一样自动加载。因此,如果你有一个符合PSR的加载器(其中命名空间是目录,文件名是类/接口/特征名称),那么一切都应该在它自己的文件中使用特征。

因此,要回答标题中的问题,如果您希望坚持标准,那么您应该使用 PSR 加载,所以是的,特征应该在单独的文件中。

就 netbeans 而言,我认为 7.2 是唯一支持 php 5.4 的版本(以及随之而来的特征),因此请确保您拥有 netbeans 7.2,并在项目设置中设置 php 5.4。

最新更新