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的也是它自己的文件。
但我應該怎麼辦與特質富:
- 在它自己的文件? (我的偏好)
- 加上IFoo的推斷嗎?
- 當特徵被賦予自己的文件時,自動加載如何處理?
注意:netbeans將FooBar類的代碼標記爲無效。 Netbeans沒有檢測到Foo被用來實現IFoo的特性。錯誤?
我有netbeans 7.2和項目設置爲php 5.4 – JvdBerg
這可能是一個錯誤。我在ubuntu上使用7.2,並沒有抱怨代碼,儘管對特性的支持可能會更好。例如,我在使用特質時沒有自動完成功能。 – Pinetree
如果查看功能聲明,您會看到從7.2開始,當您在IDE中鍵入特徵時,NetBeans無法自動解析特徵的命名空間:https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_traits NetBeans 8.0.x的情況似乎仍然如此。但是你應該將特徵放在單獨的文件中,因爲整個要點都在重複使用它們。 –