特征应该在单独的文件中吗?

时间:2012-09-19 08:04:44

标签: php

假设这种情况:

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:

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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