1

假设这种情况:

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 也在它自己的文件中。

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

  • 在自己的文件中?(我的偏好)
  • 连同inferface IFoo?
  • 当 trait 有自己的文件时,自动加载将如何处理呢?

注意:netbeans 将类 FooBar 的代码标记为无效。Netbeans 没有检测到特征 Foo 用于实现 IFoo。漏洞?

4

1 回答 1

4

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

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

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

于 2012-09-19T08:10:27.140 回答